イルミLED追加とプログラム修正

 ツレの要望があったので、赤色LEDを2つ追加してみた。午前中にLED工作をして、リースに配線。動作確認はしなかったのだが・・・。

 夕方点灯したのをみてみたら、赤が点くと青が点かない。楽して既存の青色LEDと並列に赤色を入れたのだが・・・。赤は低ボルトで光る為、それに引っ張られて並列につながってる青が点かなくなってしまった。手抜きをして、ちゃんとアノード側にそれぞれ抵抗を入れてる訳では無く、まとめて1個の抵抗(1KΩ)をカソード側に入れてたりするので(苦笑)。
 手っ取り早く全てのLEDを光らせるには・・・。プログラムを書き換えました。ATmega168Pのpwmポートは6つあって、今のところ4つ使っているのでフル使用に変更。プログラムは汎用化(?)してあったので、追加の2ポートのpin番号の指定と、総LED数の指定でOK。
ってか、総LED数の指定なんかしたくないのだが、ArduinoのC環境にfor each無いし、uboundみたいな書き方がわからんかったので。sizeof(配列)/sizeof(配列の規定変数タイプ) ex(sizeof(array)/sizeof(int))で取れそうな気はしているが試してない。

 後記。sizeof(array) / sizeof(array[0])で行けるみたいですね。

ついでなので、CDSの観測待ち時間をちょっと多めに変更して。更に、起動時に全てのLEDを1500ミリ秒置きに順に点けていって最後に全部消す処理を追加。まぁ、こんな感じで大丈夫でしょう。PWM使っているとはいえLED1個20mAとすると6個で120mAだもんなぁ。これもあってデジタルマルチメータを今夜発注しました。サンワは高かったのでマザーツールの奴。

シェアする

フォローする