아두이노를 버튼으로 제어하기
아두이노

아두이노를 버튼으로 제어하기

반응형

아두이노에 버튼을 연결하는 것은 가장 기초적인 부분이지만 연결하는 방법이 가끔은 헷갈릴때가 있다. 우선 아래의 코드를 고려해보자

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int trig = 5;
 
int msg3;
 
void setup() {
 
Serial.begin(9600);
 
  pinMode(trig, INPUT);
 
}
 
void loop() {
  int trig = digitalRead(5);
 
  if(trig==0){
    msg3 = 0;
    }
  else{
    msg3 = 1;
    }
 
Serial.print(msg3);
 
}
cs

 

만약 이 상태에서 버튼을 아래와 같이 연결했다면 버튼을 누르면 확실이 버튼을 누른것으로 인식한다. 그 이유는 디지털핀 5번과 GND가 연결되었기 때문에 LOW의 상태로 인식된다.

 

 

하지만 스위치가 열려있는 상태에서는 디지털 핀 5가 HIGH인지 LOW인지 정확히 알기 어려운 상태가 된다. (플로팅 상태라고 한다) 실제로 시리얼 모니터로 확인해보면 0과 1을 반복해서 출력한다. 이 현상을 해결하기 위해서는 아래와 같이 회로를 꾸미면 된다.

 

 

저항은 클수록 좋지만 수백옴 이상이면 별 상관이 없다.

반응형
    # 테스트용