Title
아두이노 강좌
2017.02.20 21:59

[아두이노 강좌] 01. LED 깜빡이기

조회 수 153 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

본 게시물에서는 아두이노를 프로그래밍하여 아두이노 상의 LED를 깜빡거리게 하는 내용을 설명합니다.

 

목적


  • 아두이노를 Uno 와 아두이노 상의 LED를 깜빡 거리게 할수있다
  • 프로그래밍을 배울수있다.

준비물


uno ch340g.jpgArduino Uno R3 usb 케이블.jpgUSB 케이블 b타입

 

 

 

보드상의 L표시 LED


아두이노는 양쪽 사이드에 일렬의 커넥터를 가지고 있어 다른 디바이스를 연결하거나 쉴드등을 연결할 수 있습니다. 하지만 아두이노 보드상에도 LED를 하나 가지고 있어 스케치에서 제어를 할 수 있는데 LED옆에 L이라고 표시가 되어 있어 흔히 L LED라고 부릅니다. (아래에 동그라미로 표기된 부분 참조)

 

1.jpg

 

'Blink' 예제 로딩하기


 

아두이노에 USB케이블을 연결하여 전원을 공급하면 아두이노의 LED가 이미 깜빡이는 것을 볼 수 있을 수 있습니다. 이것은 보통 아두이노를 생산할때 미리 blink 스케치를 인스톨하였기 때문에 그렇습니다.

여기서는 blink 예제에서 LED가 깜빡이는 속도 등을 조절하여 다시 아두이노를 재 프로그래밍 하여보도록 하겠습니다.

아두이노 IDE를 www.arduino.cc에서 다운받아 셋업하고, 올바른 시리얼 포트를 찾아 아두이노를 컴퓨터와 통신가능한 상태로 만듭니다. 이 통신연결을 이용하여 아두이노에 프로그래밍을 하겠습니다.

아두이노 IDE는 사용가능한 많은 예제 스케치들을 포함하고 있습니다. Blink 스케치는 IDE의 메뉴 File --> Examples --> 0.1 Basics에서 찾을 수 있습니다.

 

2.jpg

스케치 윈도우가 열리면 적절하게 화면 크기를 조절하여 스케치 전체가 보일 수 있게 하시는 것이 좋습니다.3.jpg

 

Blink 스케치 복사본 저장하기


 

아두이노 IDE에 포함된 예제 스케치 파일들은 읽기만 가능합니다. 수정을 하려면 다른 파일 형태로 저장을 하여 주어야 합니다. IDE에서 Save As 옵션을 선택하여 'MyBlink'라는 이름으로 저장합니다.4.jpg

저장을 하게 되면 sketchbook에서 MyBlink를 확인 할 수 있습니다. 차후에 다시 스케치 코드를 살펴보려면 File --> Sketchbook 메뉴에서 스케치를 로드 할 수 있습니다.5.jpg

 

보드에 스케치 업로드 하기


아두이노 보드를 USB 케이블을 이용하여 컴퓨터에 연결하고 Board Type과 Serial Port가 올바르게 설정되어 있는지 확인합니다.

아두이노 IDE의 하단을 보면 현재 셋팅되어 있는 환경이 나타납니다.6.jpg

 

아래의 그림과 같이 생신 Upload버튼을 클릭합니다.

 

7.jpg

 

IDE의 하단의 상태영역을 보면, 프로그레스바와 메세지가 나타나는 것을 볼수 있습니다. 스케치를 컴파일한다고 나타나 있네요.

8.jpg

컴파일이 끝나니 상태영역에 Uploading이라는 메세지가 나타났습니다. 컴파일된 스케치가 아두이노로 전송이 되고 있는 상태입니다. 아두이노상의 LED가 깜빡거립니다.9.jpg

상태가 Done으로 변경되었습니다.

10.jpg

 

그리고 업로딩한 스케치가 전체 32,256 바이트에서 1,084 바이트를 사용하고 있다고 말해주고 있습니다. 만약 컴파일중에 아래와 같은 에러 메세지가 나타난다면 아마도 보드가 컴퓨터와 연결되지 않아서 나타나거나 드라이버가 설치되지 않거나 잘못된 시리얼 포트가 선택되어 나타나는 문제입니다.11.jpg

업로드가 끝나면 리셋되고 LED가 깜빡이기 시작합니다.

 

Blink 스케치 코드는 어떻게 동작하는가?


아래는 blink 스케치 코드입니다.

 

  1. /*
  2. Blink
  3. Turns on an LED on for one second, then off for one second, repeatedly.
  4.  
  5. This example code is in the public domain.
  6. */
  7.  
  8. // Pin 13 has an LED connected on most Arduino boards.
  9. // give it a name:
  10. int led = 13;
  11.  
  12. // the setup routine runs once when you press reset:
  13. void setup() {
  14. // initialize the digital pin as an output.
  15. pinMode(led, OUTPUT);
  16. }
  17.  
  18. // the loop routine runs over and over again forever:
  19. void loop() {
  20. digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
  21. delay(1000); // wait for a second
  22. digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
  23. delay(1000); // wait for a second
  24. }

첫번째 코드는 보는 바와 같이 아래와 같습니다.

  1. int led = 13;

 

코드에 코멘트로도 설명이 되어 있지만 led라는 변수를 선언하여 이름을 부여하고 led가 붙어 있는 13핀을 의미하는 숫자 13이 할당되었습니다.

다음으로는 setup 함수가 나와 있는데 이 함수는 아두이노가 리셋되고 한번만 실행이 되는 함수입니다. 그렇게 때문에 대부분 초기화 관련 루틴을 넣어 사용하는 함수 입니다.

  1. void setup() {
  2. // initialize the digital pin as an output.
  3. pinMode(led, OUTPUT);
  4. }

모든 아두이노 스케치는 반드시 setup 함수를 가지고 있어야 합니다. 여기에서는 LED핀을 출력모드로 설정하라는 코드가 포함되어 있습니다.

모든 스케치에 setup함수가 포함되어야 하는 것처럼 loop함수도 반드시 포함되어 있어야 합니다. setup함수가 리셋후 한번만 실행되는 것과는 달리 loop함수는 계속 반복 됩니다.

  1. void loop() {
  2. digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
  3. delay(1000); // wait for a second
  4. digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
  5. delay(1000); // wait for a second
  6. }

loop 함수안에는 LED핀을 켜는(HIGH) 명령이 있으며, 1초동안 딜레이 후 LED핀을 끄는 명령을 담고 있으며, 끈 후에도 역시 1초동안 딜레이를 주는 명령으로 작성되어 습니다.

 

깜빡이는 속도변경하기


LED가 깜빡이는 속도를 변경시키려면 무엇을 변경해야 할까요? delay함수의 파라메터값인 1000을 변경하면 LED가 깜빡이는 속도를 변경할 수 있습니다.

만약 1000을 500으로 변경한 후 컴파일하여 업로딩한다면 LED가 이전 보다 두배 빨리 깜빡이는 것을 볼 수 있습니다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
311 아두이노 강좌 [아두이노 강좌] 03. RGB LED 색깔 변경하기 file 귀욤둥이 2017.02.21 219
310 아두이노 강좌 [아두이노 강좌] 02. LED 밝기 변경하기 file 귀욤둥이 2017.02.21 180
» 아두이노 강좌 [아두이노 강좌] 01. LED 깜빡이기 file 귀욤둥이 2017.02.20 153
308 아두이노 강좌 아두이노란 무엇 일까요??? file 귀욤둥이 2017.02.20 106
307 아두이노 예제 Wire Library - SFR Ranger Reader file 귀욤둥이 2017.02.08 139
306 아두이노 예제 Wire Library - Master Writer/Slave receiver file 귀욤둥이 2017.02.07 99
305 아두이노 예제 Wire Library - Master Reader/Slave Writer file 귀욤둥이 2017.02.07 88
304 아두이노 예제 Wire Library - Digital Potentiometer file 귀욤둥이 2017.02.07 115
303 아두이노 예제 WiFi Shield 101 Library - WiFi Send Receive UDP String file 귀욤둥이 2017.02.07 87
302 아두이노 예제 WiFi Shield 101 Library - WiFi Web Server file 귀욤둥이 2017.02.07 95
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 33 Next
/ 33