玩转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;
}
演示视频
作者: vearne
文章标题: 玩转Arduino(2)-按钮控制小灯
发表时间: 2024年10月20日
文章链接: https://vearne.cc/archives/40174
版权说明: CC BY-NC-ND 4.0 DEED