Arduinoで遊ぼう - フルカラーLED

Make Tokyo Meeting 02で買ってきたArduino Duemilanoveで遊んでみました。Arduinoの説明や環境構築については下記URLを参照してください。

統合開発環境とUSBドライバをインストールして、Arduino DuemilanoveをMacに繋げば環境構築完了。試しにLED点滅のサンプルをダウンロードするとすぐにLEDの点滅が開始される。サンプルを少し変えて、LEDの点滅周期を変えるなんてこともすぐにできてしまう。

proc_sketch_081118a_screen.png
さっそく何か作ってみた。↑のようなカラーチャートから色を読み取りその色情報をArduino Duemilanoveに送るProcessingアプリを作成した。カラーチャート上でマウスを動かすとカーソルの下の色を読み取り、Arduino Duemilanoveに送信する。Arduino Duemilanoveは送られて来た色情報を元にフルカラーLEDを点灯させる。

新日本無線のNJU6061というLEDドライバICがある。PWM制御型の3色LEDドライバだ。このICの一部の機能をArduino Duemilanoveで実装して、フルカラーLEDを光らせている。

簡易版PWM制御型3色LEDドライバ仕様
  • 各色16step(内部256step*3色)
  • 波形補正機能(非線形補正を行い自然に明るさが変わっているように見せる)
  • UART 9600bps
制御コマンドは次のデータセットのコマンドのみ実装する。
  • LED1 PWMデータセット 0110 xxxx
  • LED2 PWMデータセット 0111 xxxx
  • LED3 PWMデータセット 1000 xxxx

回路
Arduino DuemilanoveのPWM 3にRED、PWM 5にGREEN、PWM 6にBLUE、カソードコモンをGNDに接続する。

サンプルスケッチ
#define INS_MASK      0xf0
#define DAT_MASK 0x0f
#define INS_LED1_DATA 0x60
#define INS_LED2_DATA 0x70
#define INS_LED3_DATA 0x80

int LED1_step;
int LED2_step;
int LED3_step;

#define LED1_port 3
#define LED2_port 5
#define LED3_port 6

const int step_to_duty[] = {
0, 2, 4, 6,
10, 16, 26, 38,
54, 72, 92,118,
146,180,216,255,
};

void setup(){
LED1_step = 0;
LED2_step = 0;
LED3_step = 0;
pinMode(LED1_port,OUTPUT);
pinMode(LED2_port,OUTPUT);
pinMode(LED3_port,OUTPUT);
digitalWrite(LED1_port, 0);
digitalWrite(LED2_port, 0);
digitalWrite(LED3_port, 0);
Serial.begin(9600);
}

void loop(){
if(Serial.available() > 0){
int ledIns = Serial.read();
if((ledIns & INS_MASK) == INS_LED1_DATA){
LED1_step = ledIns & DAT_MASK;
if(!LED1_step){
digitalWrite(LED1_port, LOW);
}else{
analogWrite(LED1_port, step_to_duty[LED1_step]);
}
}
else if((ledIns & INS_MASK) == INS_LED2_DATA){
LED2_step = ledIns & DAT_MASK;
if(!LED2_step){
digitalWrite(LED2_port, LOW);
}else{
analogWrite(LED2_port, step_to_duty[LED2_step]);
}
}
else if((ledIns & INS_MASK) == INS_LED3_DATA){
LED3_step = ledIns & DAT_MASK;
if(!LED3_step){
digitalWrite(LED3_port, LOW);
}else{
analogWrite(LED3_port, step_to_duty[LED3_step]);
}
}
}
}


サンプルスケッチ: PWM制御型3色LEDドライバ
http://xfind.hp.infoseek.co.jp/electric/arduino/sketch_081118a.zip

Make日本語版 Vol.04記事「初めてのArduino」PDF公開
http://jp.makezine.com/blog/2008/11/make_lrn_arduino.html

フィジカル・コンピューティング: Arduinoを使おう
http://www.eleki-jack.com/FC/arduino/

建築発明工作ゼミ2008: Arduino
http://kousaku-kousaku.blogspot.com/2008/07/arduino.html

四谷工作研究所: Arduino
http://www.artstudium.org/kousaku/arduino/

Arduino.cc
http://www.arduino.cc/



Making Things Talk -Arduinoで作る「会話」するモノたち
Tom Igoe
オライリージャパン
売り上げランキング: 11751

コメント

CQ ham radio 掲載おめでとうございます。

んーー???
何が掲載されたんだろ。。
人違い?

えっとですね
CQ ham radioっていうアマチュア無線の専門誌の12月号の55ページのハムに役立つサイトカタログのMacユーザーのためにっていう欄にこのblogが紹介されてました
御存知じゃなかったんですか

CQ ham radioは購読していないので
知りませんでした。。
情報ありがとうございます。
Secret

Ads by Google
最近の記事
カテゴリ
スタバカップアンプ (6)
電光掲示板 (2)
Arduino (19)
Make: (9)
太陽電池 (12)
ニキシー管 (17)
PICライタ (15)
自作USBデバイス (6)
電波時計 (3)
Ogg Vorbis Player (12)
電子工作 (67)
Xfind (6)
Cocoa (18)
Bluetooth (3)
twitter (4)
Coroutine (4)
本 (3)
未分類 (21)
テルミン (3)
最近のコメント
arms22:Arduinoで遊ぼう - Arduinoで作るシンセサイザー (06/27)
yamadanohito:Arduinoで遊ぼう - Arduinoで作るシンセサイザー (06/27)
arms22:twifp 0.1 リリースしました。 (06/21)
arms22:Arduinoで遊ぼう - 自作プロトシールド (06/08)
きぃたん:Arduinoで遊ぼう - 自作プロトシールド (06/08)
arms22:Arduinoで遊ぼう - Arduinoで作るシンセサイザー (06/01)
saku:Arduinoで遊ぼう - Arduinoで作るシンセサイザー (06/01)
arms22:Make: Tokyo Meeting 03 Day 2 (05/28)
最近のトラックバック
以前の記事
リンク
タグ
プライバシーポリシー
当サイトでは、第三者配信による広告サービスを利用しています。このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 (氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、ここをクリックしてください。