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