کدی که باید تست کنی اینه :
کد:
#include <Bounce2.h>
#include <Timer.h>
int tm, i, z;
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0;
const int buttonPin = 16; // previous state of the button
Timer t;
Bounce debouncer = Bounce();
void setup() {
pinMode(22, INPUT); //define pinMode
pinMode(23, INPUT);
pinMode(16, INPUT);
debouncer.attach(16);
debouncer.interval(5);
Serial.begin(9600);
delay(2000);
tm = 0;
}
void loop() {
Serial.print("press9 up,10 down");
Serial.print(tm);
delay (1000);
if (digitalRead(22) == LOW) {
tm++;
while (digitalRead(22) == HIGH);
Serial.println(tm);
}
if (digitalRead(23) == LOW)
{ tm--;
while (digitalRead(23) == HIGH);
Serial.println(tm);
}
if (tm < 0) {
tm = 0;
}
if (digitalRead( 16) == LOW) {
Serial.print("you are ready...");
delay(10);
tm = tm * 60 * 1000;
for (i = 3; i > 0; i--) {
Seial.print(i);
delay(1000);
}
while (1) {
t.update();
t.after(tm, resultTap);
debouncer.update();
// read the pushbutton input pin:
buttonState = debouncer.read();
Serial.print("number of button pushes: ");
if (buttonState != lastButtonState) {
if (buttonState == LOW) {
buttonPushCounter++;
Serial.println(buttonPushCounter);
}
delay(50);
}
lastButtonState = buttonState;
}
}
}
void resultTap() {
t.stop(z);//timer stop
Serial.print("number of result: ");//showing number of push
Serial.println(buttonPushCounter);
//delay(5000);
}
به یه چیز هم دقت کن
خود تابع loop به صورت حلقه همیشگی تکرار میشه بنابراین while(1) اولیت اضافی بود