Debunce
const int buttonPin = 7; //声明按钮的针脚 button按钮,按键 pin 针脚
const int ledPin = 13; // 声明Led发光二极管的针脚pin ,13号是arduino的内置针脚
int buttonState = 0; //声明按钮button的状态state ,0代表没有按下,1代表按下
int presstime = 0; //声明一个变量,用来记录按键的按下的次数
int beforeState = 0; //声明一个变量,用来记录按钮前一次的状态
void setup() {
pinMode(ledPin, OUTPUT); //声明针脚ledPin也就是 13,为输出
pinMode(buttonPin, INPUT); //声明针脚buttonPin也就是 7,为输入
Serial.begin(9600); //开启串口监控(序列铺)
}
void loop() {
buttonState = digitalRead(buttonPin); //digitalRead()读取 buttonPin按钮针脚的状态
if (buttonState==1 and beforeState==0) { //如果buttonState当前按钮状态为1 and 并且,beforeState之前按钮状态为0
presstime=presstime+1; //按钮次数+1
Serial.print("按钮按下去了"); //打印"按钮按下去了"不换行
Serial.print(presstime); //打印presstime不换行
Serial.println("次"); //打印"次"换行
delay(20); //延时20ms毫秒,防止按钮bunce粘连
}
beforeState=buttonState; //本次循环结束之前,把按钮状态记录到beforeState,下次读取时,就是上一次按钮的状态了
delay(1);
}