玩转Arduino(2)-按钮控制小灯
思路 按钮按下输出为低电平,按钮抬起时为高电平。 萌叔希望达到的效果是按一下按钮,小灯亮起,再按一次,小灯熄灭 需要捕获电位从 低电位 -> 高电位 的这个变化 代码 #define legPinIn 10 #define legPinOut 5 bool isLightOn = false; int preMode = HIGH; int currMode = HIGH; void setup() { Serial.begin(9600); pinMode(legPinIn, INPUT); pinMode(legPinOut, OUTPUT); } void loop() { isLightOn = getLightState(); if (isLightOn) { digitalWrite(legPinOut, HIGH); } else { digitalWrite(legPinOut, LOW); } delay(100); } bool getLightState() { if (digitalRead(legPinIn) != currMode) { preMode = currMode; currMode = digitalRead(legPinIn); if (preMode == LOW && currMode == HIGH) { isLightOn = !isLightOn; Serial.print("isLightOn: "); Serial.println(isLightOn); } } return isLightOn; } 演示视频 B站 ...