#define PIN_RELAY 14 //定义控制继电器的引脚
#define PIN_BUTTON 21 //定义读取按键的引脚
void setup() {
pinMode(PIN_RELAY, OUTPUT); //设置控制继电器的引脚为输出模式
pinMode(PIN_BUTTON, INPUT); //设置读取按键的引脚为输入模式
digitalWrite(PIN_RELAY, HIGH); //控制继电器引脚输出高电平(继电器低电平时,继电器工作,常开端闭合,常闭端断开)
}
void loop() {
if (digitalRead(PIN_BUTTON) == LOW) { //如果检测到按键按下
delay(20); //延时20ms跳过抖动期
if (digitalRead(PIN_BUTTON) == LOW) { //再次判断按键是否有被按下
reverseGPIO(PIN_RELAY); //控制继电器引脚输出与当前电平相反的电平
}
while (digitalRead(PIN_BUTTON) == LOW); //等待手指松开
delay(20); //延时20ms跳过抖动期
while (digitalRead(PIN_BUTTON) == LOW); //再次判断手指是否松开
}
}
void reverseGPIO(int pin) {
digitalWrite(pin, ! digitalRead(pin)); //读取引脚电平,并设置输出相反电平
}