ESP32 마이크로파이썬 페이드 LED

이 튜토리얼은 ESP32와 MicroPython을 사용하여 LED의 밝기를 점진적으로 조절하는 방법을 설명합니다. 자세히는 다음과 같이 배웁니다:

ESP32 마이크로파이썬 페이드 LED

준비물

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

LED에 관하여

핀아웃

LED에는 두 개의 금속 핀이 있습니다.

  • 음극(-) 핀: 접지(0V)에 연결합니다.
  • 양극(+) 핀: LED의 상태를 제어하는 데 사용합니다.
LED 핀아웃

작동 원리

음극(캐소드라고도 함)을 접지(GND)에 연결한 후:

  • 만약 LED의 양극에 GND(접지)를 연결하면 LED가 꺼집니다.
  • 만약 LED의 양극에 VCC(전원)를 연결하면 LED가 켜집니다.
  • LED의 양극에 펄스 폭 변조(PWM) 신호를 사용하여 밝기를 조절할 수 있습니다. PWM 값은 0에서 255 사이입니다. PWM 값이 높을수록 LED는 더 밝게, 낮을수록 덜 밝게 빛납니다.
  • PWM 값이 0이면, LED는 GND에 연결한 것처럼 꺼집니다.

만약 PWM 값이 255라면, LED는 VCC에 직접 연결되어 있는 것과 같이 완전히 켜집니다.

LED 작동 원리

※ 주의:

대부분의 LED의 경우, 양극(아노드)에서 전원 공급 장치로 저항을 연결해야 합니다. 저항의 값은 LED의 요구 사항에 따라 달라집니다.

ESP32 - 페이드 LED

ESP32로 LED의 밝기를 조절하려면 PWM 신호를 생성하는 핀을 사용하세요. 먼저, LED의 양극(+)을 ESP32의 핀에 연결합니다. 그런 다음, LED의 음극(-)을 그라운드(GND)에 연결합니다. 이후, 선택한 ESP32 핀을 PWM 신호를 출력하도록 설정합니다.

선연결

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

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

ESP32 MicroPython 코드

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-fade-led */ from machine import Pin, PWM from time import sleep # Define pin LED_PIN = 18 # The ESP32 pin GPIO18 connected to the LED # Initialize PWM on the LED pin led = PWM(Pin(LED_PIN)) led.freq(1000) # Set the PWM frequency to 1kHz # Variables to control the LED brightness brightness = 0 # How bright the LED is fade_step = 5 # How many points to fade the LED by # Main loop while True: # Set the brightness of the LED led.duty_u16(int(brightness * 4095 / 255)) # Convert 0-255 range to 0-4095 # Change the brightness for next time through the loop brightness = brightness + fade_step # Reverse the direction of the fading at the ends of the fade if brightness <= 0 or brightness >= 255: fade_step = -fade_step # Wait for 30 milliseconds to see the dimming effect sleep(0.03)

자세한 사용 방법

다음은 Thonny IDE를 사용하여 ESP32에서 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침입니다:

  • 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
  • ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
  • MicroPython을 사용하는 ESP32를 처음 사용하는 경우, 단계별 안내가 포함된 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하세요.
  • 제공된 다이어그램에 따라 ESP32 보드를 LED에 연결하세요.
  • USB 케이블을 사용하여 ESP32 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Thonny IDE를 실행하세요.
  • Thonny IDE에서 Tools Options로 이동하세요.
  • Interpreter 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)을 선택하세요.
  • 올바른 포트가 선택되었는지 확인하세요. Thonny IDE가 보통 자동으로 포트를 감지하지만, 경우에 따라 수동으로 선택해야 할 수도 있습니다 (예: Windows의 COM12 또는 Linux의 /dev/ttyACM0).
  • 제공된 MicroPython 코드를 복사하여 Thonny 에디터에 붙여넣으세요.
  • 코드를 ESP32에 저장하려면:
    • Save 버튼을 클릭하거나 Ctrl+S를 누르세요.
    • 저장 대화 상자에서 MicroPython device를 선택하세요.
    • 파일 이름을 main.py로 지정하세요.
  • 녹색의 Run 버튼을 클릭하거나 F5 키를 눌러 스크립트를 실행하세요.
  • LED의 반응을 관찰하세요.

코드 설명

설명은 ESP32 MicroPython 코드 상단의 주석에 있습니다.

※ 주의:

예제에서는 조명의 밝기를 서서히 조정하기 위해 sleep()이라는 함수를 사용했습니다. 그러나 이 함수는 밝기 변화가 덜 부드럽게 이루어지고 프로그램의 다른 부분을 멈추게 만듭니다. 다음으로, DIYables의 LED 라이브러리를 사용하여 프로그램의 나머지 부분은 계속 실행되도록 하면서 조명을 부드럽게 페이드하는 방법을 배울 것입니다.

LED를 서서히 켜고 끄는 방법

DIYables가 만든 LED 라이브러리로 LED의 페이드 인/아웃을 매우 쉽게 구현할 수 있습니다. 밝기 수준과 페이드 속도를 조절할 수 있습니다.

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-fade-led */ from DIYables_MicroPython_LED import LED, CTRL_ANODE, LED_IDLE led = LED(18, CTRL_ANODE) # create an LED object that attaches to pin GPIO18 is_faded_in = False while True: led.loop() # MUST call the led.loop() function in loop() if led.get_state() == LED_IDLE: if not is_faded_in: print("FADING IN") led.fade(0, 255, 3000) # fade in from 0 to 255 in 3000ms, fade immediately # led.fade(0, 255, 3000, 1000) # fade in from 0 to 255 in 3000ms, fade after 1 second is_faded_in = True else: print("FADING OUT") led.fade(255, 0, 3000) # fade out from 255 to 0 in 3000ms, fade immediately # led.fade(255, 0, 3000, 1000) # fade out from 255 to 0 in 3000ms, fade after 1 second is_faded_in = False

자세한 사용 방법

  • Thonny IDE에서, 도구 패키지 관리로 이동합니다.
  • “DIYables-MicroPython-LED”를 검색하여 DIYables의 LED 라이브러리를 찾습니다.
  • DIYables-MicroPython-LED를 클릭한 후, ESP32 보드에 LED 라이브러리를 설치하려면 Install 버튼을 클릭합니다.
ESP32 마이크로파이썬 LED 라이브러리
  • 제공된 MicroPython 코드를 복사하여 Thonny의 편집기에 붙여넣습니다.
  • ESP32에 코드를 저장하려면:
    • Save 버튼을 클릭하거나 Ctrl+S를 누릅니다.
    • 저장 대화상자에서 MicroPython device를 선택합니다.
    • 파일 이름을 main.py로 지정합니다.
  • 녹색 Run 버튼을 클릭하거나 (또는 F5 키를 눌러) 스크립트를 실행합니다.
  • LED 상태를 확인합니다.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.