Я делаю таймер с 3 кнопками и 16x2 ЖК-экраном на Arduino.Очевидно, я хочу нажать один раз кнопку пуска, чтобы таймер отсчитывал до тех пор, пока не будет нажата кнопка остановки.У меня есть кнопка сброса, что он подключен к контакту сброса, поэтому я не написал код для него.
Я уже был на уроке 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 сохранит состояние кнопки и будет считать до тех пор, пока не будет нажата кнопка остановки.Когда кнопка останова нажата, она должна отображать время (текущий счет), когда она была нажата.Вместо этого кнопку Старт нужно нажать дважды, чтобы считать одну секундуЯ даже не могу добраться до логики кнопки остановки.