シリアル対応のLEDをArduinoで使うにあたってのメモ書き。
使うもの
- シリアル機能つきLEDチップ…マイコン内蔵RGB 8LEDスティック
- ArduinoUNO
- ピンヘッダー四本
- ジャンパワイヤ(オスーメス)
シリアルつきLEDについて
LEDの発光セルの内部にマイコンが組み込まれており、
Arduinoから発光のパターンをプログラムすることができる。
RGBなどのパラメータを変更することで色合いを自由に変化させることができる。
ライブラリはAdafruitから公開されているAdafruit_NeoPixel.hを使うことでArduinoやesp8266などから
LEDをプログラムすることができる。
https://github.com/adafruit/Adafruit_NeoPixel
マイコン内蔵RGB 8LEDスティックを使うための準備
ピンヘッダーをそれぞれはんだ付けする。
GND,DIN,5VDC,GND
2.54mmピッチなのできれいにはんだ付けできるはず。
ピンヘッダにジャンパワイヤ(オスーメス)をさし、割り振り通りにArduinoにさしてやる。
DOUTはArduinoの6番ピンにさす。
Adafruit_NeoPixelを扱う。
githubからライブラリをDLしArduinoのライブラリフォルダに移してやれば使えるようになる。
サンプルがいくつかあるうちのsimpleをまずは書き換えてライブラリが提供するAPIを探ってみる。
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
//1.Arduinoにつなぐピンの番号を指定する。※ほかのピン番号に変えても大丈夫
#define PIN 6
//2.LEDチップの数を指定する。
#define NUMPIXELS 8
//3.NeoPixelsのライブラリをインスタンスする。
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
//4.これでライブラリを初期化するっぽい。
pixels.begin();
}
void loop() {
//5.光らせるセルの番号,光らせるためのRGBの値を引数としてあたえてやる。※引数は整数を入れる。0.5とかだと光らない。
pixels.setPixelColor(0,pixels.Color(30,0,0));
pixels.setPixelColor(1,pixels.Color(0,30,0));
pixels.setPixelColor(2,pixels.Color(0,0,30));
//6.LEDセルを更新するための関数っぽい。
pixels.show();
}
自分がわかる範囲でコードを削り込んでみた。重要な部分としてはコメントを割り振った1~6の部分。
関数やクラスのインスタンスを適切に扱うことができればLEDを望む色で点灯させることができるようだ。
コメントを投稿するにはログインしてください。