#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的状态来判断按键是否按下,如果按下,则执行相应的操作。 |