'오른쪽으로 가시오.’ 반짝반짝 도로표시 만들기

LED를 이용해 도로표시를 만들어 볼까요?

2015.10.26
동영상 설명


■ 무엇을 만들까요?


여러분들은 차가 지나다니는 길의 공사 현장 주변에서[그림 1]과 같은 방향 표시기를 본 적이 있을 겁니다. 


 
[그림 1. LED 방향 표시기]


이 방향 표시기는 LED를 여러 개 모아서 만든 것인데요. 사람들에게 LED 화살표 방향으로 이동하라는 메시지를 알려주는 역할을 합니다. 


이번 시간에는 엔트리 아두이노와 LED로 방향 표시기 장치를 만들어 보겠습니다. 그리고 이 장치를 엔트리 코드로 작동 시켜서 공사 현장의 LED 표시기처럼 화살표 모양을 만들어 보겠습니다.


 

[그림 2. 엔트리 아두이노로 만드는 LED 방향 표시기]



■ 준비물


 

 아두이노(UNO), 1개

 

 USB 케이블, 1개

 

 브레드 보드, 1개

 

 전선, 20개 정도

 

 LED (5mm), 8개

 

 저항 220 옴, 8개





■ 만들어 봅시다!


[1] LED 란?

LED(Light Emitting Diode)는 우리 말로는 “발광 다이오드”입니다. “발광(Light Emitting)”은 빛을 발생시킨다는 의미이고, “다이오드(Diode)”는 전류를 한쪽 방향으로만 흘리게 해 주는 반도체 부품입니다. 따라서, LED는 전류를 한쪽 방향으로만 흘리게 해 주면서 빛을 발생시키는 반도체 부품입니다. 

[그림 3. LED (출처:Pixabay)]


10여 년 전만 해도 생소한 기술 이었던 LED가 이제는 환경문제와 에너지 절감의 필요성이 대두 되면서 전 세계적으로 친환경 기술인 LED를 많이 사용하고 있습니다. LED의 가장 큰 특징은 “저전력, 고효율, 긴 수명” 입니다. LED는 기존 백열등 대비 1/5 수준의 전력만 소비 하고, 15배 이상의 긴 수명을 가지고 있습니다. 그래서 기존 조명 대비 전기요금이 많이 절감될 수 있습니다.



[2] LED 제어와 반복문


우리가 이번 시간에 다룰 LED는 [그림 5] 과 같은 LED입니다. 이 LED는 5mm 타입입니다. 뒤에 붙는 숫자는 LED의 크기를 나타내는 것으로서 3mm LED는 조금 더 작은 것입니다. 아두이노로 LED 제어를 시작할 때 보통 LED 5mm를 많이 씁니다. 시중에 나와있는 다양한 아두이노 키트에도 LED 5mm가 많이 들어가 있습니다. 그 만큼 대중적인 형태의 LED 입니다.

[그림 4. LED 5mm]


그런데 이 LED는 +, - 극성이 있어서 약간의 주의를 필요로 합니다. LED의 극성을 눈으로 구분하는 방법 3가지를 [그림 5]에 표시해 두었습니다.


[그림 5. LED 극성을 구분하는 3가지 방법]



LED에 직접 전류를 흘려 봐서 +, - 극성을 알아 낼 수도 있겠지만, 그 전에 눈으로 파악하는 것이 가장 좋겠지요. 간혹 LED의 양쪽 다리의 길이가 같은 것도 있습니다. 그럴 때는 ① 또는 ②번의 방법으로 LED의 극성을 파악하시면 됩니다. 세 가지 방법 중에 한 가지만 따져 봐서 극성을 파악하면 됩니다.


STEP 1 
 


[그림 6] 처럼 LED 하나와 220옴 저항 하나를 아두이노 2번 핀에 연결 합니다. 혹시 이런 질문이있을 수 있습니다. 왜 아두이노의 2번핀에 연결하며, 또 220옴 저항, GND는 무엇입니까?

거기에 대한 답은 조금 있다가 아래 전기 회로도를 보면서 하도록 하고 우선은 LED 하나를 켜 보겠습니다.


[그림 6. LED 하나와 아두이노의 연결]


STEP 2 
 


회로 연결을 다 했다면 엔트리 코드를 [그림 7]에 나와 있는 것처럼 만들어 봅니다. 무한 반복 블록 안에서 디지털 2번 켜기를 한다는 코드 입니다. 어렵지 않은 코드 입니다.



[그림 7. 아두이노 2번 핀에 연결된 LED 켜기 엔트리 코드]


STEP 3 
 


이제 “시작하기”를 클릭해서 [그림 8]처럼 LED가 켜지는 지 확인 합니다. 


[그림 8. LED 켜진 모습]

STEP 4 
 


이제 LED의 개수를 더 늘려 봅시다. [그림 9] 처럼 LED 6개, 220옴 저항 6개를 아두이노에 연결해 줍니다.


[그림 9. LED 6개 제어 회로도]


STEP 5 
 


엔트리 코드는 간단 합니다. 키보드의 1번 키를 누르면 아두이노의 2번 ~ 7번 핀에 5 V 전압을 출력시켜서 LED를 하나씩 켜는 동작 입니다. 키보드의 2번 키를 누르면 거꾸로 7번 핀에서 시작하여 LED를 하나씩 끄는 동작 입니다. 영어로 이런 동작을 “Shift(시프트)” 라고 합니다. 


[그림 10. LED 시프트 엔트리 코드]


STEP 6 
 


그런데, [그림 11]의 엔트리 코드의 수는 반복문을 사용하여 줄일 수 있습니다. [그림 10] 처럼 “반복횟수”라는 변수를 만들고 반복문 블록을 사용하여 코드를 만들면 “디지털 x번 켜기”와 “1초 기다리기” 블록을 하나씩만 사용하게 되므로 코드의 수가 줄어 듭니다.



[그림 11. 반복문을 사용하여 LED 시프트 하기]


  

[그림 11 - 2. 두 개의 코드 합치기 ]


이처럼 반복문을 사용하면 코드의 수가 줄어 들고 나중에 코드의 수정도 쉽게 할 수 있는 장점이 있습니다. 따라서 [그림 11]의 코드 보다는 [그림 11-2]의 반복문 코드가 더 효율적인 코드 입니다.


STEP 7 
 


이제는 LED를 [그림12] 처럼 화살표 모양으로 배치한 다음 앞서 실습한 LED 시프트 코드를 적용해 보겠습니다. 동영상의 도로공사 LED 시프트 동영상처럼 LED점멸을 화살표 모양으로 나타나게 하기 위해서 입니다.


  [그림 12. LED를 화살표 모양으로 배치하기 ]

STEP 8 
 


LED 시프트 점멸 코드를 그대로 사용합니다. 한 가지 다른 점은, [그림 13]처럼 한쪽 방향으로 LED를 하나씩 켜다가 반대 방향으로 하나씩 끄지 않고 [그림 14] 처럼 전체를 껐다 켰다 하는 동작을 5번 정도 반복하게 합니다. 동영상에서도 보았듯이 LED 화살표 표시기의 불이 켜지다가 전체가 점멸하는 모습을 똑같이 흉내 내본 겁니다.

  

[그림 13. LED 시프트 코드를 화살표 LED에 적용]



[그림 14. 화살표 LED의 전체 점멸 코드]


여기까지의 엔트리 코드가 마지막 입니다. 오늘은 LED 하나를 켜는 것부터 시작해서 LED 6개를 일자로 하나씩 점멸하는 코드, LED8개를 화살표 모양으로 배치한 뒤 하나씩 켜다가 전체를 점멸하는 코드를 엔트리로 만들어 봤습니다. 이제 LED를 켜고 끄는 동작은 쉽게 하실 수 있으시겠죠?


여러 분들에게 LED제어 프로젝트로서 도전해 볼 만한 영상을 준비했습니다. 다음의 LED 제어 동영상을 보시고 똑같이 만들어 보시길 바랍니다. 엔트리 코드는 쉽지 않지만 공책에 연필로 써가면서 잘 생각해 보시길 바랍니다. 감사합니다.



■ 관련자료