아두이노 냠냠

09 LED 3개 차례로 깜박이기

낭만독타 2020. 10. 21. 13:16

1. 이번 시간은


이번 시간 : LED 3개 차례로 깜박이기

 

 


2. 부품 배치

3.1 배치도

아두이노(아래쪽)와 브레드보드가 있습니다. 브레드보드에 부품들이 있고 점퍼케이블로 아두이노가 연결되어 있습니다. 

LED 3개, 저항 300Ω(330Ω) 3개, 점퍼케이블 7개

 

 


3.2 부품 세부 배치

3.2.1 LED 배치

LED는 전기 에너지를 빛 에너지로 변환한 발광 다이오드입니다.
긴 다리에 +전극을, 짧은 다리에 -전극을 연결하면 됩니다. 아래 그림에서는 긴다리는 오른쪽에 있고 짧은 다리는 왼쪽에 있으며 두 다리는 다른 단자띠에 꽂혀 있습니다.


3.2.2 전기 저항 배치

전기 저항은 전기의 전류가 적당히 흐를 수 있도록 조절하는 전기 부품입니다.

아래 그림에서 전기 저항이 없고 전류가 지나치게 흐를 경우 LED에 고장이 발생할 수 있습니다. LED의 긴다리(+전극)의 단자띠에 저항을 연결하였습니다.


3.2.3 아두이노 핀과 저항 연결

점퍼케이블(점퍼와이어, 점퍼선)는 전기가 흐를 수 있도록 연결해주는 부품입니다.점퍼케이블로 아두이노의 12번, 10번, 8번핀과 브레드보드의 저항 한쪽의 단자띠와 연결합니다.
이렇게 함으로써 아두이노의 핀에서 저항을 거쳐 LED의 긴다리로 연결되고 짧은 다리까지 연결되었습니다.


3.2.4 단자띠와 버스띠 연결

점퍼케이블로 LED의 짧은 다리(-전극)의  단자띠와 버스띠를 연결합니다.
다음에 버스띠에 아두이노의 GND핀이 연결할 것이기 때문입니다.


3.2.5 버스띠와 아두이노의 GND핀 연결

점퍼케이블로 아두이노 GND핀과 버스띠를 연결합니다.
드디어 아두이노의 핀 - 저항 - LED - GND로 모두 연결되었습니다. 전류가 신호(ON, OFF)를 가지고 핀에서 저항을 지나 신호에 따라 LED 불을 켜(꺼)고 GND로 흐릅니다.

 

 


4. 코드

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
26
int green = 12;        //초록색 LED를 12번으로
int yellow = 10;       //노란색 LED를 10번으로
int red = 8;           //빨간색 LED를 8번으로
 
void setup() {
  pinMode(green, OUTPUT);     //12번을 출력으로 설정
  pinMode(yellow, OUTPUT);    //10번을 출력으로 설정
  pinMode(red, OUTPUT);       // 8번을 출력으로 설정
}
 
void loop() {
  digitalWrite(green, HIGH);      //초록불 켜기
  digitalWrite(yellow, LOW);      //노란불 끄기
  digitalWrite(red, LOW);         //빨간불 끄기
  delay(1000);                    //1초 대기
      
  digitalWrite(green, LOW);       //초록불 끄기
  digitalWrite(yellow, HIGH);     //노란불만 켜기
  digitalWrite(red, LOW);         //빨간불 끄기
  delay(1000);                    //1초 대기
      
  digitalWrite(green, LOW);       //초록불 끄기
  digitalWrite(yellow, LOW);      //노란불 끄기
  digitalWrite(red, HIGH);        //빨간불만 켜기
  delay(1000);                    //1초 대기
}
cs

 

4.1 변수 선언

  • int green = 12;        //초록색 LED를 12번으로
  • int yellow = 10;      //노란색 LED를 10번으로
  • int red = 8;            //빨간색 LED를 8번으로

초록된 LED가 12번 핀으로 연결됨으로 기억하기 좋게 이름은 green으로 하고 정수 변수 12로 사용하겠다고 선언 했습니다. 이제 green이라고 쓰면 12를 뜻하는겁니다.

같은 원리로 yellow는 10, red는 8입니다. 


4.2 setup() 함수의 코드

  • pinMode(green, OUTPUT);     //12번을 출력으로 설정
  • pinMode(yellow, OUTPUT);    //10번을 출력으로 설정
  • pinMode(red, OUTPUT);       // 8번을 출력으로 설정

green이 12이므로 12번핀을 출력으로 사용합니다. 지금은 12번핀과 초록색 LED가 연결되어 있습니다.

yellow가 10이므로 10번핀을 출력으로 사용합니다. 지금은 10번핀과 노란색 LED가 연결되어 있습니다.

red가 8이므로 8번핀을 출력으로 사용합니다. 지금은 8번핀과 빨간색 LED가 연결되어 있습니다.


4.3 loop() 함수의 코드

  • digitalWrite(green, HIGH);      //초록불 켜기
  • digitalWrite(yellow, LOW);      //노란불 끄기
  • digitalWrite(red, LOW);         //빨간불 끄기
  • delay(1000);                        //1초 대기

12번핀을 HIGH시키면 LED에 불이 켜지고 10번핀을 LOW시키면 불이 꺼지고 8핀을 LOW시키면 불이 꺼지는데 그 상태로 1초간 있습니다.


  • digitalWrite(green, LOW);       //초록불 끄기
  • digitalWrite(yellow, HIGH);     //노란불만 켜기
  • digitalWrite(red, LOW);         //빨간불 끄기
  • delay(1000);                        //1초 대기

12번핀을 LOW시키면 LED에 불이 꺼지고 10번핀을 HIGH시키면 불이 커지고 8핀을 LOW시키면 불이 꺼지는데 그 상태로 1초간 있습니다.


  • digitalWrite(green, LOW);       //초록불 끄기
  • digitalWrite(yellow, LOW);      //노란불 끄기
  • digitalWrite(red, HIGH);        //빨간불만 켜기
  • delay(1000);                        //1초 대기

12번핀을 LOW시키면 LED에 불이 꺼지고 10번핀을 LOW시키면 불이 꺼지고 8핀을 HIGH시키면 불이 켜지는데 그 상태로 1초간 있습니다.

 

 


5. 다음 시간에는

수고하셨습니다.

 


** 동영상 **