Divide and Conquer

[Arduino] 아두이노 IDE로 LOLIN D32 보드를 이용한 RGB LED Neo Pixel Matrix 제어 본문

성장캐/기타

[Arduino] 아두이노 IDE로 LOLIN D32 보드를 이용한 RGB LED Neo Pixel Matrix 제어

10살 2022. 6. 9. 17:56
728x90

1. 아두이노 IDE 파일-설정-보드 매니저 url에 박스의 링크 추가

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

2. 다시 보드 매니저 들어가서 esp32 설치

출처 https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html


결과, 연결, 코드

GND 검은색, Vin 주황색, Din 갈색

#include <Adafruit_NeoPixel.h>
#define PIN 14
#define NUMPIXELS 5
#define BRIGHTNESS 255

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.setBrightness(BRIGHTNESS);
  strip.begin();
  strip.show();
}

void loop() {
  colorWipe(strip.Color(0, 0, 255), 100); // Blue
  colorWipe(strip.Color(255, 0, 0), 100); // Red
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  //for(uint16_t i=0; i<strip.numPixels(); i++) {
  for(uint16_t i=0; i<4; i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

결과 2. 연결 동일, 코드

#include <Adafruit_NeoPixel.h>
#define PIN 14
#define NUMPIXELS 5
#define BRIGHTNESS 255

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.setBrightness(BRIGHTNESS);
  strip.begin();
  strip.show();
}

void loop() {
  /*
  colorWipe(strip.Color(0, 0, 255), 100); // Blue
  colorWipe(strip.Color(255, 0, 0), 100); // Red
  */
  
  /* 다 다른 색
  strip.begin();
  strip.setPixelColor(0, 255, 0, 0);
  strip.setPixelColor(1, 0, 255, 0);
  strip.setPixelColor(2, 0, 0, 255);
  strip.setPixelColor(3, 255, 255, 255 );
  strip.setPixelColor(4, 255, 0, 0);
  strip.setPixelColor(5, 0, 255, 0);
  strip.setPixelColor(6, 0, 0, 255);
  strip.setPixelColor(7, 255, 255, 255 );
  strip.setPixelColor(8, 255, 0, 0);
  strip.setPixelColor(9, 0, 255, 0);
  strip.setPixelColor(10, 0, 0, 255);
  strip.setPixelColor(11, 255, 255, 255 );
  strip.show();
  delay(2000);
  */
  
  // 서서히 켜지기  
  for(int i=0; i<256; i++){
  strip.setPixelColor(0,strip.Color(i,0,0));
  strip.setPixelColor(1,strip.Color(i,0,0)); 
  strip.setPixelColor(2,strip.Color(i,0,0)); 
  strip.setPixelColor(3,strip.Color(i,0,0)); 
  strip.setPixelColor(4,strip.Color(i,0,0)); 
  strip.setPixelColor(5,strip.Color(i,0,0)); 
  strip.setPixelColor(6,strip.Color(i,0,0)); 
  strip.setPixelColor(7,strip.Color(i,0,0));
  strip.setPixelColor(8,strip.Color(i,0,0)); 
  strip.setPixelColor(9,strip.Color(i,0,0)); 
  strip.setPixelColor(10,strip.Color(i,0,0)); 
  strip.setPixelColor(11,strip.Color(i,0,0));  
  strip.show();
  delay(2);
  }

  for(int i=0; i<256; i++){
  strip.setPixelColor(0,strip.Color(0,i,0));
  strip.setPixelColor(1,strip.Color(0,i,0));
  strip.setPixelColor(2,strip.Color(0,i,0));
  strip.setPixelColor(3,strip.Color(0,i,0));
  strip.setPixelColor(4,strip.Color(0,i,0));
  strip.setPixelColor(5,strip.Color(0,i,0));
  strip.setPixelColor(6,strip.Color(0,i,0));
  strip.setPixelColor(7,strip.Color(0,i,0));
  strip.setPixelColor(8,strip.Color(0,i,0));
  strip.setPixelColor(9,strip.Color(0,i,0));
  strip.setPixelColor(10,strip.Color(0,i,0)); 
  strip.setPixelColor(11,strip.Color(0,i,0)); 
  strip.show();
  delay(2);
  }

    for(int i=0; i<256; i++){
  strip.setPixelColor(0,strip.Color(0,0,i));
  strip.setPixelColor(1,strip.Color(0,0,i));
  strip.setPixelColor(2,strip.Color(0,0,i));
  strip.setPixelColor(3,strip.Color(0,0,i));
  strip.setPixelColor(4,strip.Color(0,0,i));
  strip.setPixelColor(5,strip.Color(0,0,i));
  strip.setPixelColor(6,strip.Color(0,0,i));
  strip.setPixelColor(7,strip.Color(0,0,i));
  strip.setPixelColor(8,strip.Color(0,0,i));
  strip.setPixelColor(9,strip.Color(0,0,i));
  strip.setPixelColor(10,strip.Color(0,0,i));
  strip.setPixelColor(11,strip.Color(0,0,i));
  strip.show();
  delay(2);
  }

  // 하나씩 바뀌기
  colorWipe(strip.Color(255,0,0),150);
  delay(300);
  colorWipe(strip.Color(255,225,0),150);
  delay(300);
  colorWipe(strip.Color(0,255,0),150);
  delay(300);
  colorWipe(strip.Color(0,255,255),150);
  delay(300);
  colorWipe(strip.Color(0,0,255),150);
  delay(300);
  colorWipe(strip.Color(255,255,255),150);
  delay(300);
  
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  //for(uint16_t i=0; i<strip.numPixels(); i++) {
  for(uint16_t i=0; i<4; i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

기껏 매핑해서 짜줬는데 이걸 더 좋아함ㅋㅋㅋ바보

반응형
Comments