フルカラーLEDを使ってデモンストレーションを行ってみました。
とりあえず必要なパーツ
このようにブレッドボードに配線してみました
しかしながら、突然色が変化するように見えてしまったり、急に暗くなったりと、プログラム側に問題有りです。
まぁ、我慢できる範囲ではありますが、気になる方は気になるでしょう。
このコードは小林茂さんの著書 『 Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ (Make:PROJECTS) 』を参考にして作成しました。
とりあえず必要なパーツ
Arduinoボード : 1個 抵抗器 : 3本 RGB LED (アノードコモン) : 1個 その他部品 : 適量抵抗器は330Ω一つと150Ωを二つ用意します。
このようにブレッドボードに配線してみました
とりあえず本をみながら突貫で作ったコードを書き込んで・・・
//LEDのドライブに関する定数 const int commonKathode = 0; const int commonAnode = 1; //RGBそれぞれの色に対するピン番号の割り当て const int rLED = 9; const int gLED = 10; const int bLED = 11; //各光源の要素 double rFade = 0; double gFade = 0; double bFade = 0; //フェードの最小量 double rfadeAmount = 6.4; double gfadeAmount = 2; double bfadeAmount = 3.2; //LEDのドライブモードの選択 int driveMode = commonKathode; void setup(){ //RGBの各ピンを出力に設定 pinMode(rLED,OUTPUT); pinMode(gLED,OUTPUT); pinMode(bLED,OUTPUT); } void loop() { //加色処理 rFade += rfadeAmount; gFade += gfadeAmount; bFade += bfadeAmount; //driveModeがカソードコモンの場合 if(driveMode == commonKathode) { analogWrite(rLED,rFade); analogWrite(gLED,gFade); analogWrite(bLED,bFade); } //driveModeがアノードコモンの場合 if(driveMode == commonAnode) { analogWrite(rLED,rFade); analogWrite(gLED,gFade); analogWrite(bLED,bFade); } //減色処理 if((rFade == 0)||(rFade == 1023)) rfadeAmount = -rfadeAmount; if((gFade == 0)||(gFade == 1023)) gfadeAmount = -gfadeAmount; if((bFade == 0)||(bFade == 1023)) bfadeAmount = -bfadeAmount; delay(120); }実行するとLEDがきれいに光ります。
しかしながら、突然色が変化するように見えてしまったり、急に暗くなったりと、プログラム側に問題有りです。
まぁ、我慢できる範囲ではありますが、気になる方は気になるでしょう。
このコードは小林茂さんの著書 『 Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ (Make:PROJECTS) 』を参考にして作成しました。
0 件のコメント:
コメントを投稿