WeMos X-Ring and D1 mini フルカラーLEDを試す

電子工作

 ESP8266搭載ボードD1 miniにフルカラーLEDが12個付いたモジュールWeMos X-Ringをつないでテスト。X-Ringは別のボード用のオプションなんだけど、安いので買ってみたのだった。という2018年の話。コードはどこにあるの? という質問があったので掲載しようと思った次第。そのコメントが付いた動画はこれ。

WeMos X-Ring test with D1 mini

 でもって、コードを掲載するわけだけど、その前に参考にしたものを。色を刻々と変えるためのコード。これはとても参考になりました。というか、何度も使わせていただいてます。ありがとうございます。

RGBフルカラーLEDの色を段々に変化点灯させますパート2

 では、以下にコード。コメントをくれた人が海外の人だったので、コード内のコメントをある程度英語に直したけど、わかんないところはそのまま日本語で。

#include <Adafruit_NeoPixel.h> // https://github.com/adafruit/Adafruit_NeoPixel
 
#define PIN D2
#define STRIPSIZE 12
 
Adafruit_NeoPixel strip = Adafruit_NeoPixel(STRIPSIZE, PIN, NEO_RGB + NEO_KHZ800);

int illumiH = 30;
int illumiR , illumiG , illumiB ;
int illumiStep = 30; //色の変化の度合い(360度)
int illumiBrightness = 5;
 
void setup() {
  strip.begin();
  strip.setBrightness(illumiBrightness);  // Lower brightness and save eyeballs!
  strip.show(); // Initialize all pixels to 'off'
}

void changeColor(){
  illumiH = illumiH + illumiStep;
  if (illumiH > 360) {
    illumiH = 0;
  }
  /* convert HSV H to RGB LED(0-255) */
  if (illumiH <= 120) {
    /* H(0-120) R-Yello-Green     */
    illumiR = map(illumiH, 0, 120, 255, 0) ; // R LED R←→G
    illumiG = map(illumiH, 0, 120, 0, 255) ; // G LED G←→R
    illumiB = 0 ;
  } else if (illumiH <= 240) {
    /* H(120-240) G-Cyan-B */
    illumiG = map(illumiH, 120, 240, 255, 0) ; // G LED G←→B
    illumiB = map(illumiH, 120, 240, 0, 255) ; // B LED B←→G
    illumiR = 0 ;
  } else {
    /* H(240-360) B-Magenta-R   */
    illumiB = map(illumiH, 240, 360, 255, 0) ; // B LED B←→R
    illumiR = map(illumiH, 240, 360, 0, 255) ; // B LED R←→B
    illumiG = 0 ;
  }
}

void loop() {
  // for each pixel set color to red. Wait 100ms between each individual pixel.
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, strip.Color(illumiR, illumiG, illumiB));
      strip.show();
      delay(100);
  }

  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, strip.Color(0, 0, 0));
      strip.show();
      delay(100);
  }
  changeColor();
}

 ついでにメモ。久々にコードを掲載。WP-Code Prettifyプラグイン入れてたのを忘れていたので、設定方法をあらためて確認。preタグのclass属性にprettyprintをつけるって。

コメント