マイコン内蔵LEDの動作テスト | 輝け!ミニッツ ~電飾ボディにこだわってみる~

輝け!ミニッツ ~電飾ボディにこだわってみる~

京商ミニッツレーサーのボディを電飾するブログ

先日、ヤリスの電飾ボディが完成したところで、今まで使用したことのないマイコン内蔵LEDの動作テストをしてみました。

マイコン内蔵LEDというのは、文字通りLEDの中にマイコンが内臓されていて、1本の信号線で複数個のLEDを数珠つなぎにすると色や明るさを個別に制御して使用することができます。レインボーな光り方も割と簡単にできてしまう便利なLEDなのです。

そんな便利なLEDをなんで今まで使ってこなかったのかというと、使用方法を調べてみると自作電飾用基板で使用しているPICマイコンでは能力不足(主にスピード)の可能性が高く、まともに光らせることができないと考えていました。

その後、たまたま同じPICマイコンで動作させているという記事をネットで見かけて、同じようにプログラムを組んでみたのですが、使用しているLEDが違うからなのかやっぱりうまく動作しません。オシロスコープで信号を観察してみると、やっぱり信号のスピードが遅くて意図しない動作になっているようです。特に数珠つなぎにするとハチャメチャになっちゃう。

数日後、ハッ!と閃いた方法でプログラムを組みなおしたところ、無事に正常動作するようになりました。


ほぼ思い通りに点灯させることができるようになりましたが、マイコン内蔵LEDを多用するとPICマイコンのメモリの消費量がすごいことになるので、電飾ボディに応用できるかどうかは未定です。
まあ、いつかは使えるかもしれないテクニックが1つ増えたって感じかな。





ここから先は忘備録

テストで使用しているPICマイコンは PIC12F1822
32MHzで動作させています。
Timer0で割り込みをしてミニッツのブレーキ信号を読み取っています。

使用したLEDは マイコン内蔵RGBWLED OST45050C1A-W
秋月電子で5個入り100円と通常の3mmLEDと同じ価格で買えてしまいます。
LEDには赤緑青白の4つの素子が入っているので、信号は1つの素子につき8bitなので32bitになります。

32bit分の信号を1個ずつ0か1の判別をして、それに合わせた制御用信号をその都度生成するというやり方にすると、信号のスピードが遅くなりLEDによっては正常動作しなくなります。

そこでスピードアップを図るべく、9種類の8bit分の制御用信号を予め用意しておきます。

0.(00000000)
1.(00000001)
2.(00000010)
3.(00000100)
4.(00001000)
5.(00010000)
6.(00100000)
7.(01000000)
8.(10000000)

LEDの色を指定するときは、この中から各素子に番号を指定ます。
赤6、緑6、青2、白0 といった感じ
PICマイコンは、指定された番号の信号パッケージを4個(32bit分)ピックアップしてくるだけなので、そのぶん速く信号を送ることができます。

本来であれば1つの素子に8bitの信号だと256段階の調光ができるところを、9段階に限定しているので、ゆっくりと明暗するような光り方をさせるには不向きですが、ラジコンカーの電飾に限った話ならこれでも十分な気がします。

プログラムソースは載せられませんが、同じようにうまく動作させることができなかった方へ参考になれば幸いです。