Chapter 3. 기초 코딩: 단계별로 내장 LED 제어하기
하드웨어 개발의 "Hello World"는 LED를 깜빡이는 것입니다. RP2350 기반의 Pico 2 보드를 제어하는 기초 문법을 3가지 단계로 차근차근 알아봅시다.
3.1 "LED" 핀의 비밀
구형 Pico는 내장 LED를 제어할 때 25번 핀을 지정해야 했지만, 새롭게 업그레이드된 Pico 2(RP2350)는 펌웨어에서 예약한 "LED"라는 문자열 키워드를 사용하여 직관적으로 제어합니다.
하드웨어 프로그래밍의 첫걸음, LED 제어하기
Blink 코드의 작동 논리: 켜기 → 기다리기 → 끄기 → 기다리기의 무한 반복
3.2 단계별 소스 코드 작성
Thonny 편집창에 아래의 코드들을 차례대로 입력하고 실행하며 원리를 이해해 보세요.
[1단계] LED 직접 켜고 끄기 (기초 익히기)
on()과 off() 메서드를 사용해 직접 LED의 전원을 통제하는 가장 직관적인 방법입니다.
from machine import Pin
import time
# 내장 LED를 출력(OUT) 모드로 설정
led = Pin("LED", Pin.OUT)
print("1단계: LED 제어 테스트를 시작합니다.")
# 1. LED 켜기
led.on()
print("LED 켜짐")
time.sleep(1.5) # 1.5초 동안 유지
# 2. LED 끄기
led.off()
print("LED 꺼짐")
[2단계] 토글(Toggle) 기능으로 스마트하게 바꾸기
toggle() 메서드는 "현재 상태가 켜져 있으면 끄고, 꺼져 있으면 켜는" 반전 기능입니다. 코드가 훨씬 간결해집니다.
from machine import Pin
import time
led = Pin("LED", Pin.OUT)
print("2단계: 토글 기능 테스트를 시작합니다.")
# 처음에 꺼져 있었다면 -> 토글되어 켜짐
led.toggle()
print("LED 상태 반전 (켜짐)")
time.sleep(1.0)
# 현재 켜져 있으므로 -> 토글되어 꺼짐
led.toggle()
print("LED 상태 반전 (꺼짐)")
[3단계] 무한 루프와 결합하여 자동으로 깜빡이기 (Blink 완성형)
2단계에서 배운 토글 기능에 while True: 무한 반복문을 결합하면, 보드가 스스로 0.5초마다 깜빡이는 자동 블링크 코드가 완성됩니다.
from machine import Pin
import time
# Pico 2용 내장 LED 설정
led = Pin("LED", Pin.OUT)
print("3단계: 최종 보드 테스트(Blink)를 시작합니다!")
# 아래의 코드를 무한히 반복합니다.
while True:
led.toggle() # LED 상태 반전 (켜져있으면 끄고, 꺼져있으면 켬)
print("LED 상태 변경")
time.sleep(0.5) # 0.5초 대기 (이 값을 줄이면 더 빨리 깜빡입니다)
3.3 실행 및 저장
- Thonny 상단의 초록색 재생(Run) 버튼을 눌러 테스트합니다.
- 코드가 잘 작동한다면 [파일] -> [다른 이름으로 저장]을 누릅니다.
- 저장 위치를 물어보면 Raspberry Pi Pico를 선택합니다.
- 파일 이름을 반드시
main.py로 저장하세요.
💡 왜 main.py인가요?
Pico 보드에 전원(USB 또는 배터리)이 연결되자마자 컴퓨터 도움 없이 자동으로 실행되는 파일명이 바로 main.py입니다. 나중에 작품을 독립적으로 구동시키기 위한 필수 단계입니다.