회로의 SW는 풀다운 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int led = 13;
int sw = 7;
int swRead = 0 ;
int cnt=0;
void setup() {                
  pinMode(led, OUTPUT);
  pinMode(sw, INPUT);  
}
void loop() {
  swRead=digitalRead(sw);
  if(swRead==HIGH) cnt= 1-cnt;
  
  if(cnt==1)    digitalWrite(led,HIGH);  
  else digitalWrite(led,LOW);
}

7번 핀에 입력되는 풀다운 SW, 입력확인되면 출력되는 LED

체터링으로 인한 입력오류





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
int led = 13;
int sw = 7;
int swRead = 0 ;
int cnt=0;
int Old_swRead=0;
void setup() {                
  pinMode(led, OUTPUT);
  pinMode(sw, INPUT);  
}
void loop() {
  swRead=digitalRead(sw);
  if( (Old_swRead==0) && (swRead==1) ){
    cnt=1-cnt;
    delay(10);
  }
  Old_swRead=swRead;
  
  if(cnt==1)    digitalWrite(led,HIGH);  
  else digitalWrite(led,LOW);
}


입력 체터링으로 인한 다중입력 해결을 위한 소프트웨어적 해결



'Study > Arduino' 카테고리의 다른 글

4-Digit Display header file  (0) 2014.09.15
Grove-LCD RGB Backlight header file  (0) 2014.09.15
Arduino LED Control  (0) 2014.09.02
Arduino PWM Control  (0) 2014.08.30
아두이노 명령어  (0) 2014.08.30
Posted by 차희빈

차희빈

달력