[DIY] 작성중 - [더미천국] 아두이노 기초편4 입니다. (이대로 따라하면 고수된다)
이제 스위치 입력에 대하여 알아 보기로 합시다.
Microprocessor는 출력보다 입력을 다루는게 훨씬 어렵습니다.
스위치는도 그중 하나입니다.
일단 인터럽트를 알아야 합니다.
보통 교재에는
A = digitalRead(Switch);
라고 써 있는데 실제로 구현헤 보면
매우 빠르게 돌아가는 루푸로 구성된 경우에는 몇번씩 읽는 오류가 나고
느리게 돌아가는 코드에서는 상태를 읽기 못하는 문제가 생깁니다.
가령 ( Fast code Example : Code Example)
// Fast code example
#define Port_LED 13
#define Port_Switch 3
bool portStatus;// Past Switch status H/L
bool Ledstatus;// toggle this bit as switch Push
void setup(){
// set ports In and Output
pinMode(Port_LED,OUTPUT);
pinMode(Port_Switch,INPUT_PULLUP); // Low as Switch Press
}
//
void loop(){
if((digitalRead(Port_Switch)==LOW)&&(portStatus==HIGH)){
Ledstatus=!Ledstatus;
portStatus=LOW;
digitalWrite(Port_LED,Ledstatus);
}
}
은 Switch가 오래되면 LED toggle이 불안한 경우가 생길 수 있다.
이를 일부 Mebedded systtem책에는 스위츠이 콘덴서 붙이는 경우가 많은데 이 역시
고장을 조장하는 화로이다.