반응형

이번에는 LED와 스위치를 가지고 LED Flip Flop을 구현하는 방법을 알아보도록 하겠습니다.



위 사진에서는 LED가 잘 보이지 않는데 스위치를 누르면 LED점등 위치가 바뀌는 것을 Flip Flop이라고 할 수 있겠습니다.

아두이노를 처음 접할 때 LED를 ON, OFF하는 것과 기초가 되는 스위치의 사용 방법이 결합된 것이라고 볼 수 있습니다.

어려워 보이지만 스위치의 동작 원리만 알면 쉬운 것이니 따라해보시면 좋습니다.


부품목록


 부품명

수량 

아두이노 보드 

1 

점프선 

여러개 

LED 다이오드 

2개 

저항 220Ω

4개 

4핀 스위치 

1개 


브레드보드 레이아웃



연결

LED 빨강 

LED 초록 

스위치

12 

* LED 색상은 마음대로 하셔도 됩니다.


위의 핀번호에 센서를 연결해 주시면 됩니다. 스위치를 설명을 드리면 아래사진처럼 A와 D가 서로 연결되어있고 B와 C가 서로 연결이 되어 있습니다. 



버튼을 누르게 되면 A에서 보내는 신호는 B C D 어디에든 도달할 수 있게 됩니다. 이번 실험에서는 A에 5V를 걸어주고 D에 220Ω 저항을 달아서 전기가 12번 핀으로 빠져나갈 수 있도록 합니다. 여기에 저항을 달아준 이유는 스위치를 눌렀을 때 저항이 없는 B와 C으로 전기가 빠져나가고 D에는 저항이 있기에 전기가 흐르지 않게 하기 위함입니다.





소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int pin = 12;
int led1 = 7;
int led2 = 8;
 
void setup() {
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  
  pinMode(pin,INPUT);
}
 
void loop() {
  
  if(digitalRead(pin) == HIGH){
    digitalWrite(led1,HIGH);
    digitalWrite(led2,LOW);
  } else{    
    digitalWrite(led2,HIGH);
    digitalWrite(led1,LOW);
  }
 
}
cs


소스코드 설명

led핀을 7,8번으로 설정을 하였고 OUTPUT모드입니다. 스위치는 12번 핀으로 HIGH, LOW값을 판단할 수 있습니다. 

loop에서 조건문을 통하여 들어온 값이 HIGH면 led1 ON, led2 OFF로 설정하고 LOW면 led1 OFF, led2 ON으로 설정을 하게 됩니다. 


앞에서 설명했듯 소스가 어려운 것이 아니라 스위치의 동작을 이해하는 것이 목적입니다. 5V를 넣어줄 때 저항을 달아주는 이유는 옴의 법칙을 생각해보시면 될 것 같습니다. V = IR


반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기