아두이노에 내장되어 있는 LED를 깜빡여보자.
※ 아두이노 Sketch는 설치되어 있다고 가정한다.(https://downloads.arduino.cc/arduino-1.8.19-windows.exe) 그리고 사용할 아두이노는 Uno Board 이다.
컴퓨터와 아두이노를 연결하고 시리얼 포트도 맞춰주자.
Sketch에서 '파일 - 예제 - 01.Basics - Blink'를 선택하고 업로드를 해보자.
그러면 위와 같이 L 부분에 불빛이 1초 간격으로 깜빡깜빡할 것이다.
코드를 한 번 살펴보자!
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
- setup 함수는 아두이노가 제일 처음이자 마지막으로 실행하는 함수이다.
- loop 함수는 계속 반복 실행하는 함수이다.
- pinMode 함수는 주어진 핀 번호를 입력으로 사용할지, 출력으로 사용할지 등 모드를 정해주는 함수이다.
- digitalWrite 함수는 주어진 핀 번호에 HIGH(1) 또는 LOW(0) 신호를 줄 수 있다.
- delay 함수는 다음 함수를 실행하기 까지 지연을 주는 함수이다. 단위는 ms이다.
그러면 위의 코드를 분석해보자면, LED_BUILTIN(상수)의 핀 모드는 출력으로 주고, 1초(1000ms)마다 내장 LED가 깜빡이게 한다고 볼 수 있다.
그렇다면, 이번에는 외부 LED를 깜빡여보자.
* LED는 긴 발이 양극(+), 짧은 발이 음극(-)이다.
* LED는 5V 전압을 바로 받으면 타버린다. 그러므로 1K옴짜리 저항을 꽂아줘야 한다. 양극에 꼽든, 음극에 꼽든 상관없다.
GND는 LED의 음극(-)에, 13번 핀은 LED 양극(+)에 저항을 연결한채로 연결하면 된다.
아까 전 코드를 그대로 사용했다. 단, delay 함수의 시간을 0.1초(100ms)로 지정하여 더 빠르게 깜빡거린다.
※ 의문. 핀 번호를 LED_BUILTIN이라고 지정했는데, 왜? 13번 핀에도 작용할까?
실제로 13번 핀을 제외한 12번, 11번 등에 꽂으면 작동을 하지 않는다. 이에 대한 답은 Blink 주석을 보면 된다.
우노 보드의 경우, LED_BUILTIN 핀은 digital Pin 13번으로 지정되어 있다고 나온다.