아두이노 나노 ESP32 - WS2812B LED 스트립 | Arduino Nano ESP32 - WS2812B LED Strip

이 튜토리얼에서는 아두이노 나노 ESP32를 사용하여 WS2812B RGB LED 스트립을 제어하는 방법을 배우려고 합니다. 단 하나의 아두이노 나노 ESP32 핀으로:

준비물

1×Arduino Nano ESP32 Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×WS2812B RGB LED Strip Amazon
1×1000uF Capacitor Amazon
1×470Ω resistor Amazon
1×5V Power Adapter Amazon
1×(Optional) DC Power Jack 쿠팡 | Amazon
1×Jumper Wires Amazon
1×Breadboard 쿠팡 | Amazon
1×(Recommended) Screw Terminal Adapter for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

WS2812B RGB LED 스트립 정보

핀배열

WS2812B RGB LED 스트립에는 세 개의 핀이 있습니다:

  • GND 핀: GND(0V)에 연결되어야 합니다.
  • VCC 핀: 외부 전원 공급 장치의 5V에 연결되어야 합니다.
  • Din 핀: 제어 신호를 수신하는 핀입니다. Arduino Nano ESP32 핀에 연결되어야 합니다.
WS2812B Pinout

※ NOTE THAT:

LED 스트립에 인쇄된 라벨을 항상 사용하세요. 제조업체에 따라 핀의 배열이 다를 수 있습니다.

선연결

Arduino Nano ESP32 WS2812B RGB LED strip Wiring Diagram

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

WS2812B RGB LED 스트립 프로그래밍 방법

아두이노 나노 ESP32를 처음 사용하는 경우, 아두이노 IDE에서 아두이노 나노 ESP32 환경 설정 방법을 참조하세요.

WS2812B LED 스트립을 제어하는 데 사용할 수 있는 라이브러리는 두 가지가 있습니다:

  • Adafruit NeoPixel 라이브러리.
  • FastLED 라이브러리.

이 튜토리얼에서는 Adafruit NeoPixel 라이브러리를 사용할 것입니다.

WS2812B 객체를 선언하십시오.

#define PIN_WS2812B D2 // Arduino Nano ESP32 핀이 WS2812B에 연결됨 #define NUM_PIXELS 30 // WS2812B의 LED(픽셀) 수 Adafruit_NeoPixel WS2812B(NUM_PIXELS, PIN_WS2812B, NEO_GRB + NEO_KHZ800);

WS2812B를 초기화합니다

WS2812B.begin(); // WS2812B 스트립 객체를 초기화합니다 (필수)

각 개별 LED(픽셀이라고 함)의 색상 설정하기

WS2812B.setPixelColor(pixel, WS2812B.Color(255, 0, 0));

모든 스트립의 밝기를 설정하세요.

WS2812B.setBrightness(100); // 0에서 255까지의 값

※ NOTE THAT:

  • WS2812B.setBrightness()는 LED 스트립의 모든 픽셀에 사용됩니다. 각 개별 픽셀의 밝기를 설정하기 위해서는 색상 값을 조정할 수 있습니다.
  • WS2812B.setBrightness()와 WS2812B.setPixelColor()에 의해 설정된 값들은 WS2812B.show()가 호출될 때만 적용됩니다.

아두이노 나노 ESP32 코드

아래 코드는 다음 작업을 수행합니다:

  • 픽셀을 하나씩 녹색으로 바꾸고 각 픽셀 사이에 딜레이를 줍니다.
  • 모든 픽셀을 2초 동안 끕니다.
  • 모든 픽셀을 동시에 2초 동안 빨간색으로 켭니다.
  • 위 과정을 무한히 반복합니다.
/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-ws2812b-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_WS2812B D2 // Arduino Nano ESP32 핀이 WS2812B에 연결되어 있습니다 #define NUM_PIXELS 30 // WS2812B LED 스트립에 있는 LED(픽셀)의 수 Adafruit_NeoPixel ws2812b(NUM_PIXELS, PIN_WS2812B, NEO_GRB + NEO_KHZ800); void setup() { ws2812b.begin(); // WS2812B 스트립 객체 초기화 (필수) } void loop() { ws2812b.clear(); // 모든 픽셀 색상을 'off'로 설정합니다. pixels.show()가 호출될 때만 효과가 있습니다. // 픽셀마다 지연시간을 두고 하나씩 초록색으로 전환 for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // 각 픽셀마다 ws2812b.setPixelColor(pixel, ws2812b.Color(0, 255, 0)); // pixels.show()가 호출될 때만 효과가 있습니다. ws2812b.show(); // WS2812B Led 스트립에 업데이트 delay(500); // 각 픽셀 사이 500ms 정지 } // 모든 픽셀을 두 초 동안 끕니다 ws2812b.clear(); ws2812b.show(); // WS2812B Led 스트립에 업데이트 delay(2000); // 2초 동안 꺼짐 // 모든 픽셀을 동시에 두 초 동안 적색으로 켭니다 for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // 각 픽셀마다 ws2812b.setPixelColor(pixel, ws2812b.Color(255, 0, 0)); // pixels.show()가 호출될 때만 효과가 있습니다. } ws2812b.show(); // WS2812B Led 스트립에 업데이트 delay(1000); // 1초 동안 켜짐 // 모든 픽셀을 한 초 동안 끕니다 ws2812b.clear(); ws2812b.show(); // WS2812B Led 스트립에 업데이트 delay(1000); // 1초 동안 꺼짐 }

사용 방법

  • Arduino IDE의 왼쪽 탐색 바에서 Library Manager 아이콘을 클릭하여 라이브러리 관리자를 엽니다
  • "Adafruit NeoPixel"을 검색한 다음, Adafruit의 WS2812B 라이브러리를 찾습니다
  • NeoPixel 라이브러리를 설치하려면 Install 버튼을 클릭하세요.
Arduino Nano ESP32 neopixel library
  • 위의 코드를 복사하여 Arduini IDE로 엽니다
  • Arduino Nano ESP32에 코드를 업로드하려면 Arduini IDE에서 Upload 버튼을 클릭하세요
  • LED 효과를 확인하세요

※ NOTE THAT:

복잡한 LED 효과에 대해, 저희는 유료 프로그래밍 서비스를 제공합니다.

동영상

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

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!