개발하는 기획자

반응형

안녕하십니까. 한동안 키트가 없어서 따로 포스팅을 할 수가 없어 라이브러리를 추가하는 방법이나 삭제하는 방법들을 올리면서 포스팅을 했는데요. 

 

드디어 이사하는 짐을 다 가지고 와서 키트를 꺼냈습니다!!! (짝짝짝)

 

먼저 예제 코드를 불러와 아두이노 UNO R3 보드 위에 있는 LED가 깜빡이는 코드를 업로드해서 실제로 확인해봤는데요. 보드 위 LED가 아니라 외부에 LED를 추가해 제어하는 것을 간단하게 해보겠습니다.

 

 


 

1. 아두이노 LED 제어


먼저 아두이노를 이용해 외부 LED를 연결하고 제어하기 위해서 키트에서 필요한 준비물을 꺼내보면 다음처럼

 1) 아두이노 UNO * 1개

 2) 빵판(브레드보드) * 1개

 3) 연결 케이블 * 1개

 4) LED(아무 색이나) * 1개

 5) 저항 220옴 * 1개

 6) 점퍼선(전선) * 1개

 

를 준비하면 간단하게 LED를 연결해서 확인할 수 있다.

 

간단하게 LED를 켜기 위한 회로는 

다음과 같이 간단하게 전류가 (+)로 시작해 저항을 거쳐 LED를 타고 (-)로 흐를 수 있게 회로를 구성해주면 자동으로 LED에 불이 켜지게 되어있다.(더 자세한 설명은 나중에 따로 포스팅할 기회가 있으면 할 수 있도록 하겠습니다.)

 

 

LED는 기본적으로 연결을 할 수 있는 다리가 2개가 있는데, 2개 다리 길이가 서로 다릅니다.

다리길이가 다른 이유는 연결되는 극성(+인지, -인지)를 나타내기 위해서인데 긴 다리가 (+)와 연결이 되고 짧은 다리가 (-)와 연결 되어야 합니다.

 

이제 빵판을 이용해서 다음 그림처럼 회로를 연결하는 해보면

220옴 저항을 거쳐 LED로 전류가 흘러들어가게 되어서 아래 영상처럼 동작을 하는데요.

 

별다른 코드 업로드 없이 이전에 테스트한 [Blink] 예제가 업로드 된 보드를 이용해서 13번 PIN을 이용해서 회로를 연결시켜 보면, 이전 예제 코드를 실행시켰을때와 같이 보드 위 LED와 외부에 연결했던 LED가 같이 깜빡이는것을 확인할 수 있습니다.

 

이 부분은 코드를 보면서 설명을 간단히 드리면, 먼저 아두이노 개발 프로그램에서 코드는 크게 3가지 부분으로 쪼갤 수 있는데요.

그림과 같이 제일 위에 주황색 부분의 박스에는 간단한 코드에 대한 설명이 들어가는 공간과 추가로 라이브러리 파일들 또는 변수를 선언하는 '전처리' 기능을 가진 부분이고, 파란색 박스의 경우 아두이노 보드에서 어떤 숫자의 핀을 사용하는지 해당 핀은 출력/입력 중 어떤 역할을 가지는지에 대해 초기 '설정'을 하는 부분입니다.

실제로 코드가 반복해서 동작하는 부분은 '메인 루프(반복)' 부 인데, 해당 영역에 코드를 추가하는 경우 보드를 실행하게 되면(전원을 켜면) 계속해서 반복하게 되는 부분입니다.

 

이제 [Blink] 예제의 설정 부분의 코드를 확인해보면

'pinMode(LED_BUILTIN, OUTPUT)' 이라 되어 있는데, 해석하면 LED_BUILTIN 이란 핀을 출력(OUTPUT) 상태로 사용하겠다. 라는 의미입니다. 여기서 LED_BUILTIN은 아두이노에서 보드위에 올라가있는 LED를 나타내는데 UNO R3 보드에서는 13번 PIN과 연결이 되어있습니다. 그래서 영상과 같이 아두이노 보드 위의 LED와 위부에 연결해준 LED가 동시에 깜빡이는 것을 확인할 수 있습니다.

 

그리고 보드의 전원이 들어오고 나서 계속해서 반복되는 메인 루프에서는 

LED_BUILTIN 핀인 13번핀을 (+)로 동작 시키기 위해 HIGH 상태로 설정하고 1초 동안 기다리고(Delay) 난 뒤 (-)로 동작 시키기 위해 LOW 상태로 설정하고 1초 동안 기다리는 동작을 반복해 1초동안 LED를 켜고 끄면서 깜빡이는 동작을 무한으로 하게 만드는 코드입니다.

 

 

 

그렇다면 코드를 조금만 변경시켜 응용해보면,

기존 LED_BUILTIN 이라 적힌 부분을 12로 고쳐서 보드로 업로드한 뒤 업로드가 완료되면 13번에 연결된 LED의 불이 꺼지는 모습을 확인할 수 있습니다. 그럼 여기서 13번 핀을 12번으로 이동시켜주면 다음 영상과 같이 됩니다.

 

 

 

 


 

 

다음 포스팅에서는 코드 함수를 이용해 추가적인 LED 제어와 버튼을 이용해 외부 신호를 아두이노에서 입력받아 동작하는 부분을 차례로 포스팅 진행할 수 있도록 하겠습니다.

 

감사합니다. 다들 좋은 하루 되세요.

반응형

이 글을 공유합시다

facebook twitter googleplus kakaostory naver
-->