028_디지털LED_점등실습Blink 💡

아두이노 첫 번째 불빛을 밝히다! 디지털 출력의 기초와 Blink 예제 분석
pinMode(), digitalWrite(), delay()의 문법 구조와 $220\Omega$ 저항을 직렬 연결한 LED 회로 구성을 실습합니다.

디지털 LED 점등 타이틀


1. 👧 도로시의 호기심: “작은 꼬마전구에 불을 켤 수 있을까?”

아두이노와 브레드보드를 앞에 둔 도로시가 눈을 반짝이며 지니를 바라봅니다!

👧 도로시: “교수님, 지니야! 브레드보드에 꽂힌 저 작은 빨간색 꼬마전구에 내 힘으로 불을 켤 수 있을까요? 반짝반짝 크리스마스트리처럼 만들고 싶어요!”
👨‍🏫 이호진 교수님: “물론입니다, 도로시! 우리가 아두이노에게 ‘13번 핀에 5V 전기를 뿜어내어 불을 켜줘!’ 하고 코드로 명령하면 된답니다.”
🐱 조수 지니: “그게 바로 모든 소프트웨어의 첫인사인 ‘Hello, World!’이자, 아두이노의 첫걸음 Blink랍니다, 냐옹!”
🐶 토토: “왈왈! (빨간 불빛 보고 싶다 멍!)”

LED 점등 프로젝트 구상

[!NOTE] 디지털 신호(Digital Signal)의 기본
컴퓨터는 켜짐(HIGH, 5V, 참, 1)과 꺼짐(LOW, 0V, 거짓, 0)이라는 오직 2가지 상태만을 제어합니다. LED를 1초마다 켜고 끄는 실습은 모든 임베디드 소프트웨어의 “Hello, World!”입니다.


2. 🔴 1단계: LED의 극성과 아두이노 13번 핀

LED는 전류가 한쪽으로만 흐르는 다이오드이므로 극성을 정확히 맞추어야 합니다.

LED 극성과 아두이노 핀 확인

  • 긴 다리 (애노드, +): 전기가 유입되는 입구 ➡️ 아두이노 디지털 13번 핀에 연결
  • 짧은 다리 (캐소드, -): 전기가 빠져나가는 출구 ➡️ 아두이노 GND 핀에 연결
  • 극성을 거꾸로 꽂으면 전류가 차단되어 불이 들어오지 않으므로 다리 길이를 반드시 확인합니다.

3. 🛡️ 2단계: 저항(Resistor)은 LED를 지키는 튼튼한 방패!

LED를 보호하고 적정 전류를 유지하기 위해 직렬 저항을 반드시 배치합니다.

저항 방패를 든 지니

👧 도로시: “지니야! 저 알록달록 색띠가 그려진 작은 부품은 뭐야? 꼭 꽂아야 해?”
🐱 조수 지니: “그 친구는 ‘저항(Resistor)’이란다! 전기가 폭포수처럼 너무 많이 쏟아지면 여린 LED가 ‘퍽!’ 하고 타버려. 저항이 댐처럼 전기를 알맞게 막아주어 LED를 안전하게 보호해 주는 거란다!”

  • 권장 저항값: $220\Omega \sim 330\Omega$ (색띠: 빨강-빨강-갈색-금색)
  • 저항은 극성이 없으므로 어느 방향으로 꽂아도 무방합니다.

4. 🔌 3단계: 브레드보드 회로 결선도

아두이노 13번 핀과 브레드보드 부품들을 폐회로로 결선합니다.

LED 브레드보드 결선도

📌 배선 순서

  1. 아두이노 디지털 13번 핀 ➡️ 점퍼선 ➡️ 브레드보드의 저항 한쪽 다리 연결
  2. 저항의 반대쪽 다리 ➡️ 같은 세로줄에 LED 긴 다리(+) 연결
  3. LED 짧은 다리(-) ➡️ 점퍼선 ➡️ 아두이노 GND 핀 연결

1초마다 불이 켜지고 꺼지는 가장 기초적인 아두이노 스케치입니다.

첫 코딩 작성

// 02.2-1 디지털 LED 점등 예제
void setup() {
  // 13번 핀을 전기를 밖으로 뿜어내는 '출력(OUTPUT)' 문으로 설정!
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH); // 13번 핀에 5V 전기를 공급 (불 켜짐 💡)
  delay(1000);            // 1초(1000 밀리초) 동안 불을 켠 채 대기

  digitalWrite(13, LOW);  // 13번 핀 전기를 차단 (불 꺼짐 🌑)
  delay(1000);            // 1초 동안 어두운 채로 대기
}

6. 🚪 5단계: 출입문 방향 설정 - pinMode()

하드웨어 핀의 동작 모드를 결정하는 핵심 함수입니다.

pinMode(13, OUTPUT); // 13번 핀을 전기를 공급하는 출력 모드로 설정
  • pinMode(pin, mode) 문법 구조:
    • pin: 제어하려는 핀 번호 (예: 13)
    • mode: 문의 성격 (OUTPUT: 밖으로 전압 공급 / INPUT: 외부 전압 감지)
  • setup() 함수 안에서 단 한 번만 선언해 주면 프로그램이 끝날 때까지 유지됩니다.

7. ⚡ 6단계: 디지털 전압 스위칭 - digitalWrite()

디지털 출력 핀의 전압을 0V와 5V로 즉각 전환합니다.

digitalWrite(13, HIGH); // 13번 핀에 5V 공급 (LED 켜짐)
digitalWrite(13, LOW);  // 13번 핀 0V(GND) 차단 (LED 꺼짐)
  • digitalWrite(13, HIGH);: 13번 핀에 5V 전압을 공급하여 LED에 순방향 전류가 흐릅니다 (1, 켜짐).
  • digitalWrite(13, LOW);: 13번 핀을 0V(GND 전위)로 떨어뜨려 전류를 차단합니다 (0, 꺼짐).

8. ⏳ 7단계: 시간 지연 주문 - delay(1000);

아두이노의 초고속 연산을 잠시 멈추고 사람의 눈으로 상태 변화를 관찰할 수 있게 해줍니다.

delay(1000); // 1초(1000ms) 동안 현재 상태를 그대로 유지하며 대기
  • 단위: 밀리초(ms, 1/1000초) ➡️ 1000ms = 1초
  • 아두이노는 1초에 1,600만 번 클록이 뛰므로, delay()가 없다면 1초에 수십만 번 깜빡여 사람 눈에는 계속 켜져 있는 것처럼 보입니다.
  • delay(200)으로 변경하면 훨씬 박진감 넘치게 깜빡입니다.

9. 🔄 8단계: 두 개의 방 - setup()과 loop()

모든 아두이노 프로그램의 근간이 되는 2대 메인 구조입니다.

void setup() {
  // 시작 시 딱 1회 초기화
}

void loop() {
  // 전원이 꺼질 때까지 무한 반복
}
  • setup() (준비 운동 방):
    • 전원이 켜지거나 리셋 버튼을 누를 때 단 한 번만 실행
    • 핀 모드 설정, 시리얼 통신 시작, 라이브러리 초기화 담당
  • loop() (무한 반복 방):
    • setup()이 끝난 후 위에서 아래로 코드를 실행하며, 끝에 도달하면 다시 첫 줄로 돌아가 영원히 무한 반복

10. 🚀 9단계: 코드를 아두이노 보드로 업로드!

작성한 C++ 소스코드를 기계어로 번역하여 아두이노 플래시 메모리에 굽는 과정입니다.

  1. 아두이노 IDE 상단의 [→ (업로드)] 버튼 클릭
  2. 소스코드가 컴파일(Compile)되어 기계어 바이너리로 변환됨
  3. 아두이노 보드의 TX/RX LED가 빠르게 깜빡이며 USB 케이블을 통해 코드가 전송됨
  4. 하단 메시지 창에 “업로드 완료 (Done uploading)” 가 뜨면 즉시 코드 실행 시작!

11. 🌟 10단계: 실물 보드 점등 확인 및 동작 테스트

실제 브레드보드에서 LED가 규칙적으로 1초 주기로 깜빡이는지 확인합니다.

실제 회로 점등 성공

  • 불이 들어오지 않을 경우:
    • LED의 긴 다리와 짧은 다리가 반대로 꽂히지 않았는지 점검
    • 저항 다리가 브레드보드 구멍에 헐겁지 않게 꽂혔는지 확인
    • 아두이노 13번 핀과 GND 핀에 정확히 꽂혔는지 확인

🌟 첫 점등 성공 축하! 🏆

축하합니다! 직접 작성한 코드로 물리적인 세계의 전기를 다스리는 첫 기적을 이루었습니다.

첫 점등 성공 축하

📋 핵심 요약 체크리스트

  • LED 극성 연결: 긴 다리를 13번 핀에, 짧은 다리를 GND에 결선했습니다.
  • 보호 저항: $220\Omega$ 저항으로 LED 과전류 소손을 방지했습니다.
  • 기본 3대 함수: pinMode(), digitalWrite(), delay()의 문법과 동작을 완벽히 이해했습니다.

👧 도로시: “와아아아!! 교수님, 지니야, 토토야! 진짜 빨간 불빛이 1초마다 반짝반짝 숨을 쉬어요!”
👨‍🏫 이호진 교수님: “축하합니다, 도로시! 네가 작성한 C++ 코드가 물리적 세계의 전기를 직접 제어한 위대한 첫걸음입니다.”
🐱 조수 지니: “다음 시간에는 LED를 여러 개 연결해서 멋진 ‘알록달록 신호등 오케스트라’를 만들어봐요, 냐옹!”
🐶 토토: “멍멍! (다중 LED 신호등으로 출발하자 멍!)”

서브목차