Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

Arduinoねた その78 WS2812

2019-02-13 | Arduinoねた

またまた、久々の Arduino ねた

もう時代遅れかもしれませんが、マイコン内蔵のカラー発光LEDである WS2812 のプログラミンをして遊びました。

こういうことは、時間が経つと・・・すっかり忘れてしまいますねぇ・・・(歳だから!)

今回使用したのは、WS2812が、24個円形に配置されているものです。

 

 

光を点滅させて回すと・・・まさに電子ルーレットですね。

 

とりあえず、忘備録的にスケッチを掲載しておきます。

 

#include <Adafruit_NeoPixel.h>
#define LEDNUM 24
Adafruit_NeoPixel TestLED = Adafruit_NeoPixel(LEDNUM, 3, NEO_GRB + NEO_KHZ800);

void AllOff() {
  int i;
  for(i=0;i<24;i++)
    TestLED.setPixelColor(i, TestLED.Color(0,0,0));
  TestLED.show();
  }

void FlowOn(int Lr,int Lg,int Lb,int Lw) {
  int i;
  for(i=0;i<LEDNUM;i++) {
    TestLED.setPixelColor(i,TestLED.Color(Lr,Lg,Lb));
    TestLED.show();
    delay(Lw);
    }
  }

void FlowOff(int Lw) {
  int i;
  for(i=0;i<LEDNUM;i++) {
    TestLED.setPixelColor(i,TestLED.Color(0,0,0));
    TestLED.show();
    delay(Lw);
    }
  }

void setup() {
  TestLED.begin();
  AllOff();
  }

void loop() {
  int i;

  for(i=0;i<10;i++) {
    FlowOn(10-i,i,0,42);
    FlowOff(42);
    }
  for(i=0;i<10;i++) {
    FlowOn(0,10-i,i,42);
    FlowOff(42);
    }
  for(i=0;i<10;i++) {
    FlowOn(i,0,10-i,42);
    FlowOff(42);
    }
  }

 

まず最初に、以下のヘッダーファイルを読み込みます。

#include <Adafruit_NeoPixel.h>

 

何連のLEDモジュールを使用するのか宣言をします。(今回は24連なので、LEDNUM=24)

Adafruit_NeoPixel TestLED = Adafruit_NeoPixel(LEDNUM, 3, NEO_GRB + NEO_KHZ800);


LEDの色の指定はこれ

TestLED.setPixelColor(i, TestLED.Color(Lr,Lg,Lb));

i番目のLEDの色を Lr,Lg,Lb で指定します。(Lrなどは、いつも眩しすぎるので10くらいにしています。)

これで色を指定したからと言って、光るわけではありません。

 

TestLED.show();

これで、指定した色のとおりに発光します。

LEDを消灯するには、Lr,Lg,Lbをすべて0にしてから、TestLED.show();を実行します。

 

 

やっぱり、簡単なプログラムでも、自分が作ったプログラムが動作すると楽しいです。

 

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ニコリの数独 3D | トップ | ただの箱 ではなくなりまし... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Arduinoねた」カテゴリの最新記事