「シリアルLEDスティック」という、とても簡単に沢山のLEDを扱えるモジュールが発売されました。
http://www.switch-science.com/catalog/1515/
今回は、この商品の基本的な使い方を説明します。
まず最初にシリアルLEDスティックとArduinoとの接続方法です。
信号線を1本しか使わないので、とても簡単ですね。
基本的に電源(5V)とGNDと信号線(In)の3つだけ繋げば10個のLEDがコントロールできます。
#連結して使う場合にのみOutを使います
次はシリアルLEDスティックをArduinoでコントロールする為のサンプルスケッチです。
下記URLからAdafruit製のArduino用ライブラリを落としてきましょう。
https://github.com/adafruit/Adafruit_NeoPixel
#このライブラリが「シリアルLEDスティック」でも流用できます
以下がサンプルプログラムです。
#include <Adafruit_NeoPixel.h> #define LEDmax 10 #define LEDpin 2 Adafruit_NeoPixel strip = Adafruit_NeoPixel(LEDmax,LEDpin,NEO_GRB + NEO_KHZ800); byte LEDposition; int LEDcolor,LEDcolorR,LEDcolorG,LEDcolorB; boolean LEDflag; void setup() { LEDposition = 0; LEDcolor = 0; LEDflag = false; strip.begin(); strip.show(); } void loop() { if (LEDflag == false) { if(++LEDcolor == 255) { LEDflag = true; } } else { if (--LEDcolor == 0) { LEDflag = false; LEDposition = (LEDposition + 1) % 10; } } LEDcolorR = LEDcolorG = LEDcolorB = LEDcolor; strip.setPixelColor(LEDposition,strip.Color(LEDcolorR,LEDcolorG,LEDcolorB)); strip.show(); delay(1); }
どうです?LEDが順番に白く光りましたか?
それではサンプルプログラムの説明です。
#define LEDmax 10
この行の「10」がLEDの個数です。
この商品には10個のLEDが付いているので10とします。
この商品を連結使用してLEDの個数が増えた場合は、ここの数字も増やしてください。
#define LEDpin 2
この行の「2」はArduinoの信号線の繋がっているピン番号です。
このサンプルではArduinoのD2に信号線を繋ぐようにしています。
strip.begin();
初期化コマンドです、初期化時に一回このコマンドを呼び出してください。
strip.show();
LEDにコマンドを送ります。
strip.setPixelColor(LEDposition,strip.Color(LEDcolorR,LEDcolorG,LEDcolorB));
何番目のLEDを何色にするかのコマンドです。
LEDposition部分に何番目のLEDをコントロールするか書きます(0~9)。
LEDcolorRとLEDcolorGとLEDcolorBにはRGBの色をそれぞれ入れます(各々0~255)。
ライブラリを使えばこれだけで複数のLEDを好きな色に点灯させる事が出来ます。
最後に「シリアルLEDスティック」を連結して使う場合の接続図を下記に掲載しておきます。