コンソールのイルミネーション検討に入っております。
前回の投稿ではレベルメータICを使ったLEDコントロールをご紹介いたしました。
レベルメータIC LM3914 は入力レベルに応じて10個のLEDを定電流制御出来ます。どのLEDを点灯させるかは入力電圧で制御できますので、アナログ電圧出力がひとつあればよいという非常に簡単な構成が実現できるものです。
LEDはほかにも山ほど取り付ける予定ですので、制御ポートの数は最初の時点で良く考えておかなければならないのですが、このICを使うことでバー配置した10個のLEDをシートの両サイドに使ったとしても、合計20個のLEDをわずか二つのアナログポート(実際はPWM+コンデンサ)で制御できるということになり、Arduino UNO でもポートが足りるかもしれないなと考えておりました。
これが前回の投稿までの進捗でした。
その後、文月さんより塗装検討用にお送りしていたサイズ間違いの小型の試作の組み立てのご報告と共に、LEDバーの点灯イメージについての参考リンクをお送りいただきました。
ミクさんカワユス
で、リンクはこちら。
https://www.youtube.com/watch?v=oeZD-oulJqc
なるほどであります。まさにナイトライダーの動きということですね。承りました。
が、ここでちと問題が。
リンク先のような動きはレベルメータICを使っても出来ないことはないのですが、プログラムが結構面倒そうであります。といいますのも、レベルメータICに搭載されている点灯メソッドは、
- 入力レベルで決まるどれかひとつのLEDを点灯させる
- 入力レベルで決まるレベルまでに含まれる複数のLEDを点灯させる
というものですので、ナイトライダー風のいわゆる「動き回るLEDを後ろから追いかける」ようなというとわかりますかね、 こういった動きをさせようとすると結構めんどくさい事を考えなければいけなくなります。
ということで、レベルメータICを使ってサボるのはやめて、ちゃんと作ることにします。いや、先人の作ったライブラリを使いますので、サボることには変わりありませんが、制御的にはちゃんとしているということです。
さて、こうなりますとArduinoもUNOではなくピン数の多いMEGAを使うことになります。どっちにしても たくさん在庫があるので問題ありません。ライブラリは、こちらの SoftPWM の一択です。
ナイトライダー風のLEDコントロールは”Arduino Knight Rider”でGoogle先生に聞くと山ほど出てきます。みんな好きですな。
ところで、私は今までナイトライダーを何の根拠も無く night rider だと思っていたのですが、正しくは Kight rider だったのですね。初めて知りました。 夜ではなく騎士のほうです。
それはさておき、ソースはこちらのモノを参考にさせていただき、これをベースに書き換えを行いました。 GPLなので、完成した暁にはソースは公開します。今はあまりにバカスなことをやっているので恥ずかしくて見せられません(笑
セットアップします。
Arduino MEGA (の中華製クローン)とブレッドボードを準備します。
ハードオフで見つけた一袋100円のLEDを10本さして、電流制限抵抗をつけます。
ブレッドボード/ユニバーサル基板用の足折り曲げスケールをはじめて使ってみましたが、実に快適&綺麗に仕上がります。すばらしい。
んで、MEGAさんと接続します。写真ではGNDが抜けています。
あとはソースをちょいちょいといじって動かしてみます。
いろいろな条件でやってみました。最終的には設定を全部外に出して文月さんが自由にコントロールできるようにしたいと思っております。
以下動画たくさん。
まずはザ・スタンダード。
速く
ついてくるLEDの数を減らしたもの
もうちょい増やしたもの
遅く
こんなのも良いんじゃないかと思うんですが、どうですかね。
赤くしてみました。
LEDは赤、青、黄、緑、紫、白といずれも山ほどありますので、使いたい放題です。
色の切り替えはトランジスタ一本を介してグランドに引くラインを決めてやればいいだけですので簡単です。
面倒なのはむしろ実装かな。全部乗せで悪乗りするという手もあります。
イルミネーションというのは、センスとかいうみら太な日々がもっとも苦手とする能力を必要としますのでこの先が不安であります。
が、文月さんのアドバイスをいただきながら何とか前に進めていきたいと思います。
コメント