【Arduino】モード2と車載バージョンの準備

100608-1.jpg
前回は、4行のLCD画面に7つの警告表示をするために、スクロール表示のソフトを作りましたが、たった4行のスクロールは実際には少し見づらいです。そこで、ハイビームやブレーキなどの状態を示す警告灯のみを表示することとし、それ以外の異常を示す警告灯は"Check Warning Light"として表示することにしました。スクロールしないので、この方が見やすいです。
一番上の行。ここには電圧、温度、方向指示器を常時表示します。不等号記号がありますが、これが方向指示器の矢印の代わりです。そのうち、矢印のキャラクタを作る予定です。2行目と3行目に、状態の警告灯を表示します。写真では"Fogg"と表記していますが、これは"Fog"でもいいですね。

実は、下3行をスクロール表示することとし、上の行は電圧、温度、方向指示器の常時表示というのも考えたのですが、スクロールさせるためにはどうしてもDelayを使う必要があり、方向指示器の検出が遅れてしまいます。そこで、デジタルピンの外部割り込みで方向指示器の検出をしようとしたのですが、attachInterruptを使うと、PWMの出力がなくなったり、割り込み動作をしたりしなかったりと不安定になるので、あきらめました。何か使い方にコツがあるのかもしれません。

アナログの基準電圧が安定しない件ですが、その後の調査で、供給電圧に問題があることがわかりました。12VのNi-Cdバッテリーを電源として、三端子レギュレータで5Vを作り出してArduinoに供給していたのですが、Arduinoの仕様書を見直したら、供給電圧は6~20Vとなっていました。Arduino自身が5Vのレギュレータを持っているので、供給が5Vでは低すぎたのです。
そこでレギュレータを外し、12Vを直接供給すると、安定するようになりました。ついでに、Ni-Cdバッテリーをやめて、12V700mAのスイッチングACアダプタに変更しました。

写真の状態をmode1として通常表示とし、スイッチを切り替えることで前回作ったスクロール表示をする2モードを持つことにしようと思います。Check Warning Lightが表示されたらモードを切り替えて全警告表示を見るという使い方を想定します。

 

100608-2.jpg
モードの切り替えにはロータリースイッチを使います。これで5Vを数段階に分けて、アナログ入力で電圧測定し、モードを検出する方式にします。

 

100608-3.jpg
最近のレーシングカーは、ステアリングホイールの部分にたくさんのスイッチが付いていてカッコいいので、モードスイッチもステアリングホイールに付けようと考えています。スイッチのノブは、そういうレーシングカーをイメージしてこんなのを選んでみました。
これは、エレキギターなどの楽器のパーツを扱う店で見つけました。このノブの形状はチキンヘッドと言って、ビンテージ物のエレキギターやアンプに使われているデザインなのだそうです。

 

100608-4.jpg
車載の表示機の方ですが、これもボチボチと進めています。ケースに加工してLCDを入れてみました。ちょっと下が短かったし、隙間も若干空いてしまいましたが、このくらい、70%の完成度で良しとします。あまり完璧を求めると完成しなくなってしまいますから。

 

100608-5.jpg
実際に車載する場合には、今使っているArduino Duemilanoveではなく、Arduino Pro Mini 328 5V 16MHzを使います。Duemilinoveの約1/4の面積ですが、機能は同じです。一緒に写っている1/4Wの抵抗と比較すると、その小ささが想像できると思います。しかもDuemilinoveの2/3以下の価格です。

今回の進捗はこのくらいです。