我正在 Arduino 上制作一个带有 3 个按钮和 16x2 LCD 屏幕的计时器。显然,我想按一下我的开始按钮,让计时器开始计时,直到按下停止按钮。我有一个重置按钮,它连接到重置引脚,所以我没有为它编写代码。
我已经去过 ladayada.com 关于按钮状态的教程,我严格按照说明进行操作。我仍然得到错误的结果。
signed short minutes, seconds;
char timeline[16];
int startPin = 7;
int stopPin = 6;
int buttonState1;
int buttonState2;
int oldState;
int currentState;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
pinMode(startPin,INPUT_PULLUP);
pinMode(stopPin,INPUT_PULLUP);
buttonState1 = digitalRead(startPin);
buttonState2 = digitalRead(stopPin);
void loop() {
currentState = digitalRead(startPin);
if(currentState!= buttonState1){
if(currentState==LOW){
lcd.setCursor(0, 1);
sprintf(timeline,"%0.2d mins %0.2d secs", minutes, seconds);
lcd.print(timeline);
delay(1000);
seconds++;
if (seconds == 60){
seconds = 0;
minutes ++; }
}
}
if(buttonState2==LOW){
delay(500);
sprintf(timeline,"%0.2d mins %0.2d secs", minutes, seconds);
}
buttonState1 = currentState;
}
我希望 Arduino 保存按钮的状态并计数,直到按下停止按钮。按下停止按钮时,应显示按下时的时间(当前计数)。相反,必须按两次“开始”按钮才能计数一秒。我什至无法理解停止按钮的逻辑。