ESP32 LED 스트립

이 튜토리얼에서는 ESP32를 프로그래밍하여 LED 스트립이 빛을 발산하도록 제어하는 방법을 배우게 됩니다.

LED 스트립은 릴레이 또는 MOSFET 모듈로 구동할 수 있습니다. 릴레이는 조명을 켜고 끄기만 합니다. MOSFET 모듈은 켜고 끄는 것은 물론, 스트립의 밝기를 원하는 대로 조절할 수도 있습니다. 두 가지 방법을 모두 사용하는 방법을 배워 보겠습니다.

준비물

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow 쿠팡 | 아마존
1×(또는) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide 쿠팡 | 아마존
1×(또는) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide 아마존
1×(또는) ESP32 Uno-form board 아마존
1×(또는) ESP32 S3 Uno-form board 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×릴레이 아마존
1×(또는) MOSFET Module (AOD4184, LR7843 or FR120N) 아마존
1×12V 1-color LED 스트립 아마존
1×12V RGB LED 스트립 아마존
1×12V 전원 어댑터 아마존
1×DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(또는) 24V 1-color LED 스트립 아마존
1×(또는) 24V RGB LED 스트립 아마존
1×(또는) 24V Power Adapter 아마존
1×(옵션) 5V Power Adapter for ESP32 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) Breakout Expansion Board for ESP32 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

LED 스트립에 대하여

LED 스트립, 또한 LED 테이프 또는 LED 리본으로 알려져 있는 것은 표면에 장착된 LED가 빛을 발하는 유연한 회로 보드입니다. 이 스트립들은 다양하게 사용되며 여러 응용 분야에서 장식용 조명으로 흔히 사용됩니다. LED 스트립은 다양한 색상으로 제공되며 주로 분위기 조명, 악센트 조명 또는 장식적 조명 효과를 제공하는 데 사용됩니다.

LED 스트립은 두 가지 주요 유형으로 나뉩니다:

  • 주소 지정 가능 LED 스트립: 이 유형에서는 스트립 상의 각 개별 LED의 색상과 밝기를 독립적으로 제어할 수 있습니다. 이 기능은 각 LED에 특정 주소가 할당되어 있기 때문입니다.
  • 주소 불가능 LED 스트립: 반면에, 주소 불가능 LED 스트립은 색상과 밝기를 제어할 수 있지만, 이 제어는 스트립 상의 모든 LED에 균일하게 적용됩니다.

이 튜토리얼은 Non-Addressable LED 스트립에 중점을 둘 것입니다. Addressable LED 스트립에 대해서는 다음 튜토리얼을 참조해 주세요:

비주소 지정 LED 스트립 핀 배치

Non-Addressable LED Strip은 두 가지 주요 유형이 있습니다:

  • Non-Addressable 1-color LED strip: 제조사가 정한 단 하나의 색상만 있는 LED 스트립
  • Non-Addressable RGB LED strip: 모든 색상 가능한 LED 스트립

비주소 지정 1색 LED 스트립은 일반적으로 두 개의 핀을 가지고 있습니다:

  • 12V/24V 핀: 12V 또는 24V DC 전원 공급 장치의 양극에 연결해야 합니다.
  • GND 핀: 12V 또는 24V DC 전원 공급 장치의 음극에 연결해야 합니다.

비주소 지정형 RGB LED 스트립은 보통 네 개의 핀을 가지고 있습니다:

  • 12V/24V 핀: 12V 또는 24V DC 전원 공급 장치의 양극에 연결해야 합니다.
  • R 핀: 이 핀은 빨간색을 제어하는 데 사용됩니다. 전원 공급 장치의 음극에 이 핀을 연결하면 빨간색이 활성화됩니다.
  • G 핀: 이 핀은 초록색을 제어하는 데 사용됩니다. 전원 공급 장치의 음극에 이 핀을 연결하면 초록색이 활성화됩니다.
  • B 핀: 이 핀은 파란색을 제어하는 데 사용됩니다. 전원 공급 장치의 음극에 이 핀을 연결하면 파란색이 활성화됩니다.
ESP32 non-addressaBLE LED strip 사용법 핀아웃

릴레이 대신 MOSFET 모듈을 사용하려면 먼저 ESP32 - MOSFET 모듈 튜토리얼을 읽어보세요. 모듈의 핀과 12V 부하를 켜고 끄는 방법을 설명합니다.

LED 스트립용 릴레이와 MOSFET 모듈 비교

릴레이 MOSFET 모듈
조명 제어 켜기/끄기 켜기/끄기 및 밝기(PWM 디밍)
소음 딸깍 소리가 남 소리 없음
전환 느림 (밀리초) 매우 빠르며 눈에 보이는 깜박임 없음
수명 접점이 시간이 지나면서 마모됨 움직이는 부품 없음
부하 종류 AC 또는 DC 조명 DC 스트립만 가능
스트립 전압 정격 범위 내에서 자유 약 6V 이상 (12V와 24V 스트립 모두 사용 가능)
절연 예, 코일과 접점 예, PC817 포토커플러
적합한 경우 단순한 켜기/끄기 조명 디밍, 페이드 효과, 잦은 전환

12V 또는 24V 스트립에는 보통 MOSFET 모듈이 더 좋은 선택입니다. 조명을 부드럽게 페이드시킬 수 있기 때문입니다. RGB 스트립은 세 개의 색상 채널(R, G, B)이 있으므로, 릴레이가 세 개 필요한 것과 같이 색상마다 하나씩 MOSFET 모듈이 세 개 필요합니다.

우리는 ESP32로 두 가지 유형을 하나씩 제어하는 방법을 배울 것입니다.

비주소 지정 가능한 단색 LED 스트립 제어 방법

12V LED 스트립이 12V 전원 공급 장치에 의해 구동되면 빛을 발합니다. 12V LED 스트립을 제어하기 위해, ESP32와 12V LED 스트립 사이에 릴레이를 사용해야 합니다. ESP32는 릴레이를 통해 12V LED 스트립을 제어할 수 있습니다. 릴레이에 대해, 포함하여 그들의 핀 배치, 기능성, 프로그래밍에 익숙하지 않으십니까? ESP32 - 릴레이에서 릴레이에 대해 배워보세요.

배선도.

ESP32와 주소 지정이 불가능한 단색 LED 스트립 간의 배선도.

ESP32 12v LED strip 연결 배선도

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

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

ESP32와 비주소 지정 RGB LED 스트립 간의 배선도.

ESP32 12v LED strip 연결 배선도

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

ESP32 코드

주소 지정이 불가능한 1색 LED 스트립 제어를 위한 ESP32 코드.

아래 코드는 LED 스트립을 5초 동안 켜고 5초 동안 끕니다.

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-led-strip */ #define LED_STRIP_PIN 16 // ESP32 핀 GPIO16이 릴레이를 통해 LED 스트립을 제어합니다 void setup() { Serial.begin(9600); // ESP32 핀을 디지털 출력 핀으로 초기화합니다 pinMode(LED_STRIP_PIN, OUTPUT); } // loop 함수는 계속해서 영원히 반복 실행됩니다 void loop() { Serial.println("The LED strip is turned on"); digitalWrite(LED_STRIP_PIN, HIGH); delay(5000); Serial.println("The LED strip is turned off"); digitalWrite(LED_STRIP_PIN, LOW); delay(5000); }

주소 지정이 불가능한 RGB LED 스트립 제어를 위한 ESP32 코드.

아래 코드는 RGB LED 스트립의 색상을 반복적으로 제어합니다(빨간색, 초록색, 파란색, 노란색, 자주색, 청록색 및 흰색).

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-led-strip */ #define BLUE_PIN 23 // ESP32 핀 GPIO23이 릴레이 1을 통해 LED 스트립의 파란색 핀에 연결됩니다 #define RED_PIN 22 // ESP32 핀 GPIO22가 릴레이 2를 통해 LED 스트립의 빨간색 핀에 연결됩니다 #define GREEN_PIN 21 // ESP32 핀 GPIO21이 릴레이 3을 통해 LED 스트립의 초록색 핀에 연결됩니다 void setup() { Serial.begin(9600); // ESP32 핀을 디지털 출력 핀으로 초기화합니다 pinMode(BLUE_PIN, OUTPUT); pinMode(RED_PIN, OUTPUT); pinMode(GREEN_PIN, OUTPUT); } // loop 함수는 계속해서 반복 실행됩니다 void loop() { Serial.println("The LED strip is turned red"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned green"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned blue"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned yellow"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned magenta"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned cyan"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned white"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, HIGH); delay(2000); }

사용 방법

  • ESP32를 처음 사용하는 경우, ESP32 - 소프트웨어 설치을 참조하세요.
  • 위 이미지와 같이 배선하세요.
  • USB Type-C 케이블을 이용해 ESP32 보드를 PC에 연결하세요.
  • PC에서 Arduino IDE를 엽니다.
  • 올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택하세요.
  • ESP32를 USB 케이블을 통해 PC에 연결하세요
  • Arduino IDE를 열고, 올바른 보드와 포트를 선택하세요
  • 위 코드를 복사하고 Arduino IDE로 엽니다
  • Arduino IDE에서 Upload 버튼을 클릭해 코드를 ESP32로 업로드하세요
  • LED 스트립의 상태를 확인하세요

코드 설명

위의 아두이노 코드 주석 라인에서 설명을 찾을 수 있습니다.

주의해 주세요. 비주소 지정형 LED 스트립의 밝기와 다른 색상을 제어하기 위해서는 릴레이 대신 L298N 드라이버를 사용해야 합니다.

MOSFET 모듈로 LED 스트립 밝기를 조절하는 방법

MOSFET 모듈은 단색 LED 스트립의 밝기를 제어하는 또 다른 쉬운 방법입니다. ESP32가 PWM 신호를 보내면 스트립이 더 밝아지거나 어두워집니다.

ESP32, MOSFET 모듈, 단색 LED 스트립 간의 배선도

ESP32 LED strip mosfet module 연결 배선도

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

  • ESP32의 GPIO18은 모듈의 PWM 핀에, ESP32의 GND는 모듈의 GND 핀에 연결합니다.
  • 스트립의 12V 핀과 12V 어댑터의 + 선은 둘 다 + 단자에 연결합니다.
  • 스트립의 GND 핀은 LOAD 단자에 연결합니다.
  • 12V 어댑터의 − 선은 − 단자에 연결합니다.

LED 스트립에는 코일이 없으므로 플라이백 다이오드가 필요하지 않습니다.

LED 스트립 밝기 조절을 위한 ESP32 코드

스트립이 2초 동안 최대 밝기로 빛난 뒤, 2초 동안 꺼집니다. 그다음 10% 단위로 10%에서 100%까지 밝아졌다가 다시 어두워집니다.

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-led-strip */ const int MOSFET_PIN = 18; // ESP32 GPIO18 connected to the PWM pin of the MOSFET module void setup() { Serial.begin(9600); pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0); // start with the load OFF } void setLoad(int percent) { int duty = map(percent, 0, 100, 0, 255); // convert 0-100% to 0-255 analogWrite(MOSFET_PIN, duty); Serial.print("Load power: "); Serial.print(percent); Serial.println("%"); } void loop() { // turn the load fully ON, then fully OFF Serial.println("Load: ON"); setLoad(100); delay(2000); Serial.println("Load: OFF"); setLoad(0); delay(2000); // increase the power step by step (PWM) for (int percent = 10; percent <= 100; percent += 10) { setLoad(percent); delay(500); } // decrease the power step by step (PWM) for (int percent = 90; percent >= 0; percent -= 10) { setLoad(percent); delay(500); } delay(1000); }

사용 방법

  • 위의 릴레이 사용 방법과 같이 ESP32와 Arduino IDE를 준비하세요.
  • 스트립, 모듈, 12V 어댑터를 그림과 같이 배선하고, 지금은 어댑터를 꽂지 마세요.
  • 코드를 ESP32에 업로드하세요.
  • 12V 어댑터를 꽂으세요.
  • Serial Monitor를 열고 9600 보드레이트를 선택하세요.
  • 스트립이 밝아졌다 어두워지는 것을 보고, Serial Monitor에서 밝기 수준을 확인하세요.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Load: ON Load power: 100% Load: OFF Load power: 0% Load power: 10% Load power: 20% Load power: 30% Load power: 40% Load power: 50% Load power: 60% Load power: 70% Load power: 80% Load power: 90% Load power: 100% Load power: 90% Load power: 80% Load power: 70% Load power: 60% Load power: 50% Load power: 40% Load power: 30% Load power: 20% Load power: 10% Load power: 0%
Ln 11, Col 1
ESP32 Dev Module on COM15
2

팁: MOSFET 모듈은 약 6V 이상의 스트립 전원이 필요하며 DC에서만 작동합니다. AC 조명에는 릴레이를 사용하세요.

동영상

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

댓글