Arduinoで遊ぼう - フルカラーLED
Posted by arms22 on 2008年11月25日

Make Tokyo Meeting 02で買ってきたArduino Duemilanoveで遊んでみました。Arduinoの説明や環境構築については下記URLを参照してください。
統合開発環境とUSBドライバをインストールして、Arduino DuemilanoveをMacに繋げば環境構築完了。試しにLED点滅のサンプルをダウンロードするとすぐにLEDの点滅が開始される。サンプルを少し変えて、LEDの点滅周期を変えるなんてこともすぐにできてしまう。
さっそく何か作ってみた。↑のようなカラーチャートから色を読み取りその色情報を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/
Ads by Google
4 Comments
えっとですね
CQ ham radioっていうアマチュア無線の専門誌の12月号の55ページのハムに役立つサイトカタログのMacユーザーのためにっていう欄にこのblogが紹介されてました
御存知じゃなかったんですか
CQ ham radioっていうアマチュア無線の専門誌の12月号の55ページのハムに役立つサイトカタログのMacユーザーのためにっていう欄にこのblogが紹介されてました
御存知じゃなかったんですか
Leave a reply
該当の記事は見つかりませんでした。