이제 본격적으로 MicroPython을 사용해서 GPIO제어를 해보도록 할 것입니다. 음 우선 본 포스팅을 보는 분들은 회로 연결은 기본적으로 할 수 있다고 생각하고 ~ 회로는 별도로 그리진 않도록 할 것입니다.
2023.03.20 - [메이커 이야기/ESP32] - ESP32 MicroPython 기초 문법 : Python편
GPIO(General Purpose Input/Output)는 디지털 신호를 입력하거나 출력하는 기능을 제공하는 핀입니다. 이를 이용하여 다양한 외부 장치를 제어할 수 있습니다. GPIO는 주로 마이크로컨트롤러나 마이크로프로세서에서 사용되며, LED, 스위치, 모터, 센서 등 다양한 외부 장치와 연결하여 사용됩니다.
GPIO가 사실 아두이노나 라즈베리파이나 모든 제어에서 기본이죠.
1. GPIO 회로 연결
회로는 간단히 LED를 GPIO4번에 연결해주었습니다.
2. GPIO 코드 작성
from machine import Pin import time #핀 번호 지정 led_red_pin = 4 # LED핀 모드 설정 red_led =Pin(led_red_pin, Pin.OUT) #LED를 깜빡이는 코드 작성 while True: red_led.value(1) time.sleep(0.5) red_led.value(0) time.sleep(0.5) |
위 코드에 대해 간단히 설명을 하자면,
from machine import Pin |
MicroPython에서 하드웨어 기능을 사용하기 위해 machine 모듈에서 Pin 클래스를 불러옵니다. Pin 클래스는 디지털 핀을 제어하는 기능을 제공합니다.
led_red_pin = 4 |
led_red_pin 변수에 LED 핀 번호를 할당합니다. 4번 핀은 LED가 연결된 핀입니다.
red_led = Pin(led_red_pin, Pin.OUT) |
Pin 클래스를 사용하여 LED 핀을 초기화합니다. Pin 클래스의 첫 번째 인수로 핀 번호를, 두 번째 인수로 핀 모드를 지정합니다. 여기서는 Pin.OUT을 사용하여 LED 핀을 출력 모드로 설정합니다.
red_led.value(1) |
LED 핀의 출력 값을 1로 설정합니다. 이는 LED를 켜는 것과 동일합니다.
time.sleep(0.5) |
time 모듈의 sleep() 함수를 사용하여 0.5초 동안 프로그램을 일시 중지합니다. 이는 LED가 켜진 상태를 유지하는 것과 동일합니다.
red_led.value(0) |
LED 핀의 출력 값을 0으로 설정합니다. 이는 LED를 끄는 것과 동일합니다.
while True: |
루프를 사용하여 LED를 계속해서 깜빡이게 합니다. 따라서 이 코드를 실행하면 LED가 0.5초 간격으로 켜졌다 꺼졌다를 무한 반복하게 됩니다.
다음편에는 Button을 사용해서 LED를 제어하는 것을 한번 해보도록 하겠습니다.
2023.03.14 - [메이커 이야기/ESP32] - ESP32 MicroPython 시작하기
2023.03.16 - [메이커 이야기/ESP32] - ESP32 MicroPython 개발환경 구성하기 : Thonny
2023.03.20 - [메이커 이야기/ESP32] - ESP32 MicroPython 기초 문법 : Python편
'메이커 이야기 > ESP32' 카테고리의 다른 글
ESP32 MicroPython ADC편 : 아날로그 센서 값 (0) | 2023.03.26 |
---|---|
ESP32 MicroPython GPIO제어(2) : 버튼 제어편 (0) | 2023.03.21 |
ESP32 MicroPython 기초 문법 : Python편 (0) | 2023.03.20 |
ESP32 MicroPython 개발환경 구성하기 : Thonny (0) | 2023.03.16 |
ESP32 마이크로파이썬 MicroPython 시작하기 (0) | 2023.03.14 |