아두이노 나노 ESP32 - 네오픽셀 LED 스트립 | Arduino Nano ESP32 - NeoPixel LED Strip

네오픽셀 스트립은 컬러풀한 RGB LED들의 스트립과 같으며, 각 LED의 색상과 밝기를 개별적으로 제어할 수 있습니다. 이 가이드에서 우리는 아두이노 나노 ESP32를 사용하여 네오픽셀 RGB LED 스트립을 제어하는 방법을 알아볼 것입니다. 네오픽셀 스트립에 있는 모든 LED들을 제어하기 위해서는 아두이노 나노 ESP32의 단 하나의 핀만 필요합니다.

준비물

1×Arduino Nano ESP32 Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×NeoPixel 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
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

네오픽셀 RGB LED 스트립에 대하여

핀배열

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

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

선연결

Arduino Nano ESP32 NeoPixel RGB LED strip Wiring Diagram

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

NeoPixel RGB LED 스트립을 프로그래밍하는 방법

NeoPixel 객체를 선언하십시오.

#define PIN_NEO_PIXEL D2 // 아두이노 나노 ESP32 핀이 NeoPixel에 연결됨 #define NUM_PIXELS 30 // NeoPixel에 있는 LED(픽셀)의 수 Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);

NeoPixel을 초기화합니다.

NeoPixel.begin(); // NeoPixel 스트립 객체 초기화 (필수)

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

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

모든 스트립의 밝기 설정.

NeoPixel.setBrightness(200); // 0에서 255까지의 값

※ NOTE THAT:

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

아두이노 나노 ESP32 코드

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

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

사용 방법

아두이노 나노 ESP32를 시작하려면 다음 단계를 따르십시오:

아두이노 나노 ESP32에 익숙하지 않은 경우, 아두이노 IDE에서 아두이노 나노 ESP32 환경 설정에 대한 튜토리얼을 참조하세요 아두이노 나노 ESP32 설정 방법.

제공된 도표에 따라 구성 요소를 연결하세요.

USB 케이블을 사용하여 아두이노 나노 ESP32 보드를 컴퓨터에 연결하세요.

컴퓨터에서 아두이노 IDE를 실행하세요.

Arduino Nano ESP32 보드와 해당 COM 포트를 선택하세요.

아두이노 IDE의 왼쪽 탐색 바에 있는 Library Manager 아이콘을 클릭하여 라이브러리 관리자를 엽니다.

“Adafruit NeoPixel”을 검색한 다음, Adafruit의 NeoPixel 라이브러리를 찾습니다.

Install 버튼을 클릭하여 NeoPixel 라이브러리를 설치하세요.

Arduino Nano ESP32 NeoPixel library
  • 위의 코드를 복사하고 Arduino IDE로 열기
  • Arduino Nano ESP32에 코드를 업로드하기 위해 Arduino IDE에서 Upload 버튼을 클릭하세요.
  • 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!