#include <Wire.h>
#define TM1650_ADDRESS 0x24
byte displayData[4] = {0}; // 存儲顯示的數據
void setup() {
Wire.begin(); // 初始化I2C通信
TM1650_init(); // 初始化TM1650顯示模塊
pinMode(2, INPUT_PULLUP); // 設置引腳2為輸入,并啟用上拉電阻
}
void loop() {
// 更新顯示數據
displayData[0] = 1; // 第一位顯示1
displayData[1] = 2; // 第二位顯示2
displayData[2] = 3; // 第三位顯示3
displayData[3] = 4; // 第四位顯示4
TM1650_display(); // 顯示數據
// 檢測按鍵狀態
if (digitalRead(2) == LOW) {
// 按鍵按下
delay(50); // 延遲一段時間以消除按鍵抖動
if (digitalRead(2) == LOW) {
// 確認按鍵按下
// 執行相應的操作
}
}
}
// 初始化TM1650顯示模塊
void TM1650_init() {
Wire.beginTransmission(TM1650_ADDRESS);
Wire.write(0x48); // 發送初始化命令
Wire.endTransmission();
}
// 顯示數據
void TM1650_display() {
Wire.beginTransmission(TM1650_ADDRESS);
Wire.write(0x34); // 發送顯示命令
for (int i = 0; i < 4; i++) {
Wire.write(displayData[i]); // 發送每一位的數據
}
Wire.endTransmission();
}
代碼使用了Arduino的Wire庫來進行I2C通信。在setup()函數中,我們初始化了I2C通信和TM1650顯示模塊,并且設置了引腳2為輸入,并啟用上拉電阻。在loop()函數中,我們更新了顯示數據,并調用TM1650_display()函數來顯示數據。然后,我們通過檢測引腳2的狀態來判斷按鍵是否按下,如果按下,則執行相應的操作。 |