티스토리 뷰

Arduino

아두이노에 LED가 깜빡깜빡!

생각많은 소심남 2012. 1. 16. 11:44
무슨 일이든 하는 것에 있어서 아주 쉬운 것부터 따라가보라고 하지요.
그래서 제어중 가장 쉬운 LED 제어부터 해보고자 합니다.
준비물은 위와 같이

 
아두이노와 LED 하나입니다.
지금 사진상으로 보면 LED의 다리 모양이 다른 것을 확인할 수 있습니다.

 
긴쪽에 애노드라 하여 아두이노 상의 13이라고 표시되어 있는 구멍에 넣습니다.
짧은 쪽은 캐소드이며 이 부분을 GND에 꽂습니다.
그럼 전류는 +에서 -로 흐르기 때문에 전류가 흐르면서 불이 켜지게 됩니다.

일단 꽂은 결과는 다음과 같습니다.

 
이제는 지난 시간에 설치한 아두이노 컴파일러를 활용할 차례입니다.
프로그램을 켜고 다음과 같이 칩니다.


프로그램 특성상 한글이 타이핑이 안되므로 하나씩 설명하겠습니다.

우선 맨처음 줄은 LED를 13포트에 연결한 것을 전역으로 정의한 상태입니다.
그래서 어느줄에서든 LED를 부르면 그 부분은 13과 연결한 상태가 되는 거지요.

Setup() 함수는 이 펌웨어가 실행되는 동안 한번만 수행될 것에 대한 내용을 정의하는 곳입니다.
지금은 LED가 꽂혀있는 13포트를 출력으로 써야 빛이 날것이기에 이에 대한 세팅을 한겁니다.

Loop() 함수는 펌웨어가 실행되면서 반복적으로 수행되는 것에 대한 내용이 담겨져 있습니다.
위와 같이 정의한건 LED가 꽂혀있는 13포트에 HIGH 신호와 LOW 신호를 주기적으로 주겠다는 의미입니다.

알아둬야 할 것은 안에 Delay() 함수가 있는데 이는 작동을 지연시키는 역할을 합니다. 기본단위는 밀리초 (ms)입니다. 따라서 위에서 정의한 것처럼 delay(1000)이라고 하면 1000ms = 1s이기에 1초동안 이전 동작에 대해 지연시키는 역할을 하는 겁니다.

이제 구문은 다 짰으므로 이게 제대로 짜졌는지 확인 (Verify)를 해봐야 합니다.
위의 체크 버튼을 누르면 다음과 같이 뜹니다. 

 
만약 문법이 하나라도 틀리면
 


몇번째 줄에 오류가 났다는 것까지 친절하게 설명을 해줍니다.
그럼 이제 아두이노상에 올려야 합니다.(Upload)

 


역시 정상적으로 마치면 Done Upload라는 멘트와 함께 결과물을 얻을 수 있습니다.

 
일단 켜는 것까지는 해봤으니 조금더 응용해볼까요? 
 



지금은 LED를 세개 써서 신호등처럼 표현하고 싶었습니다.
물론 위에서 배운것만 가지고도 충분히 할 수 있습니다.

다만 유의해야 할 점이 있습니다. 지금 LED의 밝기가 너무 밝다고 생각하지 않나요?
당장 보는데는 이~뻐 보일지는 모르겠지만, 사람의눈으로도 좀 밝다고 생각하는 경우에는 LED에 과전류가 흐르는 겁니다. 물론 당장 잠시간의 실험때는 상관없지만 지속적으로 켜놓는다면 분명 LED의 특성은 망가질 겁니다.

따라서 이를 방지하기 위해서  LED의 애노드나 캐소드 쪽에 저항을 달아줘야 합니다.

 
보통은 330옴을 달아주는 게 밝기가 적당합니다.

여기까지가 아두이노를 활용한 간단한 LED제어 였습니다. 

댓글