Chapter 3. 기초 코딩: 단계별로 내장 LED 제어하기

하드웨어 개발의 "Hello World"는 LED를 깜빡이는 것입니다. RP2350 기반의 Pico 2 보드를 제어하는 기초 문법을 3가지 단계로 차근차근 알아봅시다.

3.1 "LED" 핀의 비밀

구형 Pico는 내장 LED를 제어할 때 25번 핀을 지정해야 했지만, 새롭게 업그레이드된 Pico 2(RP2350)는 펌웨어에서 예약한 "LED"라는 문자열 키워드를 사용하여 직관적으로 제어합니다.

LED 제어

하드웨어 프로그래밍의 첫걸음, LED 제어하기

LED 켜기 (ON) 0.5초 대기 LED 끄기 (OFF) 0.5초 대기 무한 반복 (while True)

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 실행 및 저장

  1. Thonny 상단의 초록색 재생(Run) 버튼을 눌러 테스트합니다.
  2. 코드가 잘 작동한다면 [파일] -> [다른 이름으로 저장]을 누릅니다.
  3. 저장 위치를 물어보면 Raspberry Pi Pico를 선택합니다.
  4. 파일 이름을 반드시 main.py로 저장하세요.

💡 왜 main.py인가요?

Pico 보드에 전원(USB 또는 배터리)이 연결되자마자 컴퓨터 도움 없이 자동으로 실행되는 파일명이 바로 main.py입니다. 나중에 작품을 독립적으로 구동시키기 위한 필수 단계입니다.