앞선 글을 통해 ESP32보드의 주요 사양과 pinmap을 자세히 소개한 바 있었다. (https://blog.naver.com/mythee1/223272166849)
그래서 오래전 만들었던 라즈베리 파이 피코에서 사용하던 신호등 프로그램을 그대로 가져다가 ESP32 보드에서 적용해 보기로 했다. 물론 이를 위해서는 ESP32개발 보드에 마이크로 파이썬 개발 환경을 먼저 갖추어야 하는데, 이에 대해서는 이전 글에 (https://blog.naver.com/mythee1/223271251974) 자세히 설명해 두었으므로, 해당 글을 참조하기 바란다.
개발 보드를 이용하여 처음 코딩을 하다 보면, LED를 깜빡이는 신호등 같은 의제들을 가장 기본적으로 다루게 된다. 아마도 LED를 켜는 것이 곧 디지털 출력을 의미하기에, 또한 LED를 켤 수 있다면 릴레이 등을 이용하여 무수히 많은 장치를 제어할 수 있는 것을 의미하기 때문일 듯하다.
때문에 기존에 Thonny IDE에서 라즈베리 파이 피코 보드용으로 만들어 두었던 신호등 코드를 그대로 가져다 ESP32보드에 적용해 보기로 했다. 물론 Thonny IDE를 그대로 사용한다.
다만, 배선 연결이 편리하도록, 보드 끝에 위치한 4개의 핀들(GP3, GP1, GP22, GP23)을 디지털 출력용으로 사용하도록 핀의 번호만 변경하였다. (참고 : ESP32 개발보드에서는 디지탈 출력용도로 GP0~GP5, GP12~19, GP21-GP23, GP32-GP33 핀들을 사용할 수 있다.)
코드는 다음과 같이 간단하다.
import machine
import time
led0=machine.Pin(3, machine.Pin.OUT)
led1=machine.Pin(1, machine.Pin.OUT)
led2=machine.Pin(22, machine.Pin.OUT)
led3=machine.Pin(23, machine.Pin.OUT)
while True:
led0.value(1)
time.sleep(1)
led0.value(0)
led1.value(1)
time.sleep(0.5)
led1.value(0)
led2.value(1)
time.sleep(0.5)
led2.value(0)
led3.value(1)
time.sleep(0.5)
led3.value(0)
time.sleep(0.5)
동작하는 모습은 다음과 같다.

