아두이노 우노에는 실습용 LED가 실장되어 있는데 이것은 13번 핀과 연결되어 있다. 아래 그림과 같이 아두이노마크 근처에 위치하고 있다.(빨간 원 안)
[그림 1] 아두이노 우노의 내장 LED
이것을 이용하여 깜박이는 예제는 아두이노 IDE에 미리 탑재되어서 제공되는데 다음과 같이 예제파일을 선택하여 읽어들일 수 있다.
[그림 2] Blink 예제 읽어들이기
소스코드는 다음과 같다. (주석문은 삭제하였다.)
int led = 13;void setup() {pinMode(led, OUTPUT);}void loop() {// turn the LED on (HIGH is the voltage level)digitalWrite(led, HIGH);delay(1000); // wait for a second// turn the LED off by making the voltage LOW digitalWrite(led, LOW);delay(1000); // wait for a second} |
이 예제의 구조를 살펴보면 먼저 눈에 띄는 것이 있는데 setup() 함수와 loop() 함수이다. 이 두 함수는 아두이노 프로그램의 전체적인 구조를 잡아주는 역할을 한다.
⁎ setup() 함수
• 아두이노 프로그램이 실행될 때 맨 처음에 단 한 번 호출되어 수행된다.
• 따라서 여기에 각종 장치를 초기화하거나 초기값을 설정하는 코드가 오게 된다.
⁎ loop() 함수
• setup()함수 실행 후 수행되면 계속 반복 수행된다.
• 아두이노에 연결된 장치들을 구동시키는 코드가 위치한다.
setup()함수 내에서 pinMode()함수를 사용하는데 이 함수는 핀을 입력(INPUT) 혹은 출력(OUTPUT)으로 사용할 지를 설정하는 함수이다. 첫 번째 인자로 핀의 번호가 두 번째 인자로 INPUT, 혹은 OUTPUT이라는 상수를 넘겨주면 된다. pinMode(led, OUTPUT) 은 led(13번)을 출력(OUTPUT)으로 사용하겠다고 설정하는 것이다.
⁎ pinMode(pinNumber, INPUT/OUTPUT) 함수
• pinNumber 핀을 입력(INPUT) 혹은 출력(OUTPUT)으로 사용할 지를 지정한다.
• pinNumber는 우노의 경우 0,1,2, … 13, A0, A1, ...A6 중 하나이다.
loop()함수에서는 digitalWrite()함수를 사용했는데 이 함수는 핀으로 출력값을 내보내는 작업을 수행한다. 첫 번째 인자로 핀 번호를 받고 두 번째 인자로 HIGH 혹은 LOW 상수를 받는다. digitalWrite(led, HIGH) 명령은 led 핀에 HIGH 신호를 내보내므로 LED가 켜지게 된다. 반대로 digitalWrite(led, LOW) 명령은 led 핀에 LOW 신호를 내보내므로 LED가 꺼지게 된다.
⁎ digitalWrite(pinNumber, HIGH/LOW) 함수
• pinNumber 핀이 출력일 경우에 사용한다.
• 1값을 내보낼지 (HIGH) 0값을 내보낼지(LOW)를 지정한다.
delay()함수는 입력된 시간만큼 아무 일도 안하고 멈춰있는 동작을 수행한다. delay(1000)은 1000ms 동안 지연시키는 것이다. 입력받는 숫자는 ms 단위이다.
⁎ delay(time) 함수
• time ms 만큼 지연 (아무런 일도 안 하고 멈춰있음)한다.
이 함수의 입력 인자가 밀리세컨드(ms) 단위임을 유의해야 한다.
'하드웨어 > 아두이노' 카테고리의 다른 글
아두이노 디지털 포트를 이용한 터치 센서 실험 (0) | 2015.05.21 |
---|---|
아두이노 디지털 포트를 이용한 부저 실험 (2) | 2015.05.21 |
아두이노 디지털 포트의 개념 (1) | 2015.05.21 |
아두이노의 기본 개발 환경 (0) | 2015.05.21 |
아두이노 우노 R3 개요 및 기능 설명 (0) | 2015.05.21 |