| 何か面白い物はないか ? と探していると、下記の物を有った。 フルカラーLEDリング。 1LED毎に点灯/消灯、色、輝度255階調設定出来るみたい。 安いので、取り合えず発注しておいた。 これも、中華製と思えるが。 来るまで、2W掛かるので、取り合えずデータシートを要求したが .... 無いだと ! 使用しているLEDの型番は解っていたので、LEDで検索を掛けた。 と、 おい、 これ使えるのか ? 転送速度は、800kbps( 1.25μs/データ )と、ここまでは良いのだが、データは8LEDへタラタラと垂れ流す方式。 1個のLED当たり、8bit×3のデータが必要。 それが、8個なので、192bit転送しなければならないと .... LED毎にアドレスが割り当てられる方式ではないので、1個のLEDの発光色&輝度を変えたい時でも、8個分のデータを転送する 必要が有る。 何と、面倒な事か。
転送速度は、800kbpsと、まあLED制御にしては早い。 では、1bit当たりの波形要求は ? と見ると、これが厳しいスペック。 短いパルスでは、250nsを要求される。 制御用マイコンで、PIC 12F683を使用すると、最高速20MHzで動作させても 1 インストラクション で、200nsとなる。 限界速度で制御する事になる。 例えば、 BSF GPIO,0 これで、0番端子に H レベルを出力させるのだが、 これで200ns掛かる。 なので、プログラミングは自ずとループ命令は制限を受け、結果 垂れ流しのメモリーを食うプログラミングとなる。
まあプログラミングは出来そうなので、色合いを決めていく。 8個LEDが有るので、Full : 青系 → 緑系 → 黄系 → Empty : 赤系と変化させつつ、LEDの発光数を減らしていく事にする。色合いは、下の黒丸当たりを発光させる予定。
2024.6.9日 更新
LEDリングが来る前に、ハードを作成。 明るい時/暗い時に応じて、LEDの照度を自動調整させる様にした。
2024.6.13日 更新
LEDリングが漸く届いた。 ソフトウエアの作成に掛かる。 リング上に実装されているLED WS2812だが、マーキングが無いのでバージョンが解らない。 バージョンに因って制御波形の 仕様が異なる。 場合によっては、MIPS数の高いマイコンを12F1822に換えなくてはならない。そうなると、ライターも購入しなければ ならなくなる。 多可がインジケータの作成に、余計な金は掛けられない。 基板上のX’TALを、16MHzにしたり20MHzに換えたり、制御波形を3バージョン換えたりして、漸く制御可能な状態となった。 この様な苦労をする理由は、LEDのデータシートが余りに酷い事に尽きる。 曖昧な表現で明確で無い為、想像するしかないのだ。 結局、下の仕様が本LEDの仕様で有ることを、ソフト&ハードを色々と変更して解った。
< 備忘録 >
ソフトウエアで作る制御波形は、下記の様にした。
1. X’TAL : 20MHz 2. 0 コードの波形 : H 期間 400ns L 期間 800ns 3. 1 コードの波形 : H 期間 600ns L 期間 600ns
上記2の 0コードH期間( 400ns )は、LEDのスペックを割っている。( スペックでは 220ns〜380ns ) けれど、これで行けてしまうのが、穴だらけのデータシートで有ることを露呈している。
LEDの色合いが旨く撮れていないが、大体の様子は解るだろうか。 テストとして、2秒ごとに表示を変えている。 参考値として、LEDの輝度は255レベル調整出来るが、 今回のプログラムでの最大値は16だった。 これだけでも可なり眩しい。
https://youtu.be/t-yY1ssStg8
後は、燃料残量を監視するソフトと合体させれば終了。
2024.6.16日 更新
庭の手入れが大変で、漸く作業が出来た。 何時もながら面倒なメーターを外して組み入れる。 制御用のボードは、何時でも手を入れられるように、メーターの外に設置した。 これで、改善点があれば、マイコンだけを外してプログラミング出来る。
LEDが、モロ見えなのも変なので、前面に処理をする。 グレークリアが無かったので、茶色で我慢する。 素材は、フィルムかアクリル のいずれか。 下写真では明確に解らないかも知れないが、フィルムでは下に見える線がボケてしまう。 アクリル板は、表面のテカリを抑える為、わざと#1500で削った状態。 それでも、アクリル板の方が明瞭。
アクリル板を嵌め込んで、終了。 IG ON で、全LEDを点灯させた後、実際の残燃料を表示させている。 これは、LEDの故障検知用に、オープニングで発光させているのだが、煩いと感じたら、CALL文1個をコメントアウトさせれば良い。
https://youtu.be/oMVb29JB8j0
|
|
|