콘텐츠로 이동

Chapter 3: LED 깜빡이기 - 나의 첫 하드웨어 제어

🎯 이 장에서 배우는 것

  • [ ] 피코2의 내장 LED를 코드로 켜고 끌 수 있다
  • [ ] GPIO 핀의 개념을 이해한다
  • [ ] 무한 반복문으로 LED를 깜빡이게 할 수 있다

⏱️ 예상 학습 시간: 약 50분


📚 핵심 개념

개념: GPIO (General Purpose Input/Output)

비유로 시작할게요!

GPIO는 마치 "집의 현관문" 같아요. 문을 통해 사람이 드나들듯, GPIO 핀을 통해 피코와 외부 장치가 신호를 주고받아요.

정확한 정의: - GPIO = 범용 입출력 핀 - 피코가 외부 세상과 소통하는 통로 - 전기 신호를 내보내거나(출력) 받아들일 수(입력) 있음

flowchart LR A[🧠 피코2] -->|GPIO 핀| B[💡 LED] style A fill:#e3f2fd,stroke:#1976d2 style B fill:#fff9c4,stroke:#f9a825

💡 기억하세요: 피코2의 내장 LED는 GPIO 25번 핀에 연결되어 있어요!


🔨 따라하기

Step 1: LED 켜기

코드:

from machine import Pin

led = Pin(25, Pin.OUT)  # 25번 핀을 출력 모드로 설정
led.value(1)            # LED 켜기 (1 = 켜짐)

실행 결과:

(피코2의 초록색 LED가 켜집니다!)

체크포인트: 피코 보드의 LED가 켜졌나요?


Step 2: LED 깜빡이기

코드:

from machine import Pin
import time

led = Pin(25, Pin.OUT)

while True:           # 무한 반복
    led.value(1)      # 켜기
    time.sleep(0.5)   # 0.5초 대기
    led.value(0)      # 끄기
    time.sleep(0.5)   # 0.5초 대기

실행 결과:

(LED가 0.5초 간격으로 깜빡깜빡!)

🎉 축하해요! 코드로 하드웨어를 제어하는 첫 경험이에요!


📝 전체 코드

from machine import Pin
import time

led = Pin(25, Pin.OUT)

while True:
    led.value(1)
    time.sleep(0.5)
    led.value(0)
    time.sleep(0.5)

⚠️ 주의할 점

while True는 무한 반복이에요! - 프로그램을 멈추려면 Thonny의 빨간 정지 버튼(■)을 클릭하세요


✅ 점검하기

  1. GPIO 핀은 어떤 역할을 하나요?
정답 확인 피코가 외부 장치와 신호를 주고받는 통로예요.
  1. time.sleep(0.5)time.sleep(2)로 바꾸면 어떻게 될까요?
정답 확인 LED가 2초 간격으로 천천히 깜빡여요!

🚀 다음 장 미리보기

다음 장에서는 외부 LED를 브레드보드에 연결해서 제어해볼 거예요. 회로를 직접 만드는 재미를 느껴보세요!