아두이노 스위치 입력 한번만 받기

2019. 7. 8. 16:12드론

풀업 회로지만, 인버터 입력이 적용되어서 결과적으로 HIGH가 출력되는 스위치 회로

 

int pinSwitch = 13;
int pinLed = 12;
int ledStatus = LOW;
int flag = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(pinSwitch, INPUT);
pinMode(pinLed, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if(digitalRead(pinSwitch)) {
if(flag == 0) {
delay(20);
ledStatus = (ledStatus == LOW) ? HIGH : LOW;
digitalWrite(pinLed, ledStatus);
Serial.println("pushed");
flag = 1;
delay(20);
}
}
else {
flag = 0;
Serial.println("pulled");
}
}
view raw switch.c hosted with ❤ by GitHub