ESP32 마이크로파이썬 RGB LED

이 가이드는 ESP32와 MicroPython을 사용하여 RGB LED를 제어하는 방법을 보여줍니다. 다음 내용을 다룹니다:

ESP32 마이크로파이썬 rgb LED

준비물

1×ESP32 ESP-WROOM-32 개발 모듈 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×RGB LED 모듈 쿠팡 | 아마존
1×(또는) RGB LED 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

RGB LED에 대하여

RGB LED는 빨강, 초록, 파랑 세 가지 기본 색상을 조합하여 모든 색상을 만들어낼 수 있습니다. 하나의 장치 안에 빨강, 초록, 파랑 LED가 각각 하나씩 탑재되어 있습니다.

핀아웃

RGB LED는 네 개의 핀이 있습니다.

  • 공통(캐소드) 핀을 GND(0V)에 연결합니다.
  • R(빨강) 핀이 빨간색을 관리합니다.
  • G(녹색) 핀이 녹색을 관리합니다.
  • B(파랑) 핀이 파란색을 관리합니다.
rgb LED 핀아웃

ESP32에 RGB LED를 연결하려면 전류를 조절하는 저항을 사용하는 것이 좋지만, 이로 인해 과정이 복잡해집니다. 그러나 이미 이러한 저항이 포함된 RGB LED 모듈을 사용할 수 있습니다.

RGB LED 모듈에도 네 개의 핀이 있습니다.

  • 공통(캐소드) 핀을 GND (0V)에 연결합니다.
  • R (레드) 핀이 빨간색을 제어합니다.
  • G (그린) 핀이 초록색을 제어합니다.
  • B (블루) 핀이 파란색을 제어합니다.
rgb LED 모듈 핀아웃

※ 주의:

이 가이드는 공통 캐소드인 RGB LED 사용 방법을 보여줍니다. 이는 캐소드가 공통 핀임을 의미합니다. 일부 RGB LED는 공통 핀이 애노드일 수 있습니다.

작동 원리

물리학에서 색은 빨강(R), 초록(G), 파랑(B)의 세 가지 값으로 구성됩니다. 이 값들은 0부터 255까지의 범위를 가집니다.

세 가지 서로 다른 값을 혼합하여 만들어진 색상은 16,777,216가지입니다.

R, G, B 핀에 PWM 신호(듀티 비트 범위: 0에서 255)를 전송함으로써 RGB LED가 어떤 색상이든 표시하도록 할 수 있습니다. R, G, B 핀에 전달되는 PWM 듀티 사이클은 각각 빨간색(R), 초록색(G), 파란색(B)의 색상 값에 해당합니다.

선연결

ESP32 마이크로파이썬 rgb LED 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

RGB LED의 공통 핀에 하나의 저항만 연결하지 마십시오. 도면에 표시된 대로 나머지 각 핀에 하나씩, 총 세 개의 서로 다른 저항을 연결해야 합니다. RGB 패키지의 LED는 특성이 다르기 때문에 동일한 전류를 사용하지 않습니다. 이 차이로 인해 LED의 밝기가 고르지 않게 빛날 수 있으며, 공통 핀에 하나의 저항만 사용하면 LED가 손상될 수도 있습니다.

ESP32 마이크로파이썬 rgb LED 모듈 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

RGB LED 제어 방법

RGB LED를 #00979D와 같은 특정 색상으로 단계별로 변경하는 방법을 배워봅시다.

  • 선호하는 색상을 선택하고 해당 색상 코드를 확인하세요.
    • 이 색상 코드 선택기를 사용하세요: color picker.
    • 사진에서 색상 코드를 추출하려면 이 도구를 사용해 보세요: Colors From Image.
  • 이 변환기를 사용하여 색상 코드를 RGB 형식으로 변경하세요: RGB converter. 이 숫자에 주의하세요: R = 0, G = 151, B = 157.
rgb LED 색상 선택기
  • ESP32 핀이 R(빨강), G(녹색), B(파랑) 핀에 연결되는 핀을 정의합니다. 예를 들어:
PIN_RED = 23 # ESP32 핀 GPIO23이 LED의 빨간 핀에 연결됨 PIN_GREEN = 22 # ESP32 핀 GPIO22가 LED의 초록 핀에 연결됨 PIN_BLUE = 21 # ESP32 핀 GPIO21이 LED의 파란 핀에 연결됨
  • ESP32 핀들을 출력 모드로 설정합니다.
red = PWM(Pin(PIN_RED)) green = PWM(Pin(PIN_GREEN)) blue = PWM(Pin(PIN_BLUE))
  • PWM 주파수를 1000 Hz로 설정
red.freq(1000) green.freq(1000) blue.freq(1000)
  • PWM 듀티 사이클 설정
red.duty_u16(int(0 * 65535 / 255)) # 빨강: 0 green.duty_u16(int(151 * 65535 / 255)) # 초록: 151 blue.duty_u16(int(157 * 65535 / 255)) # 파랑: 157

ESP32 - RGB LED 예제 코드

아래 코드는 LED의 색상을 다음 순서대로 변경합니다:

  • #00C9CC (빨강 = 0, 초록 = 201, 파랑 = 204)
  • #F7788A (빨강 = 247, 초록 = 120, 파랑 = 138)
  • #34A853 (빨강 = 52, 초록 = 168, 파랑 = 83)
/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-rgb-led */ from machine import Pin, PWM from time import sleep # Define the GPIO pins for the RGB LED PIN_RED = 23 # ESP32 pin GPIO23 connected to the LED's red pin PIN_GREEN = 22 # ESP32 pin GPIO22 connected to the LED's green pin PIN_BLUE = 21 # ESP32 pin GPIO21 connected to the LED's blue pin # Initialize the pins as PWM outputs red = PWM(Pin(PIN_RED)) green = PWM(Pin(PIN_GREEN)) blue = PWM(Pin(PIN_BLUE)) # Set the PWM frequency to 1000 Hz (you can adjust this as needed) red.freq(1000) green.freq(1000) blue.freq(1000) def setColor(r, g, b): # Set the duty cycle for each color channel red.duty_u16(int(r * 65535 / 255)) green.duty_u16(int(g * 65535 / 255)) blue.duty_u16(int(b * 65535 / 255)) while True: # Set RGB color to teal setColor(0, 201, 204) sleep(1) # Wait for 1 second # Set RGB color to soft red setColor(247, 120, 138) sleep(1) # Wait for 1 second # Set RGB color to green setColor(52, 168, 83) sleep(1) # Wait for 1 second