【Arduino】 Off board テスト環境

100523-1.jpg
(クリックすると大きな画像を表示します)
ソフトウェア作成のために、クルマに取り付けた時と同じ状態を再現しました。
右上のブレッドボードに、8個のスイッチとLEDが並んでいますが、スピダーの警告灯をエミュレーションしています。スピダーの警告灯は12Vの電球が点灯するので、ここには12Vを流して、スイッチONでLEDが点灯するようにしています。LEDが点灯した状態が、すなわちスピダーの警告灯が付いた状態です。
Arduinoは5V系ですから、12Vを直接つなぐことはできません。12VのON/OFFの検出にはフォトカプラを使いました。中央のブレッドボードに乗っている白いIC2個がそれです。これを使って、12VがONになるとArduinoのデジタル入力をGNDに落とします。Arduinoのデジタル入力にはソフトウェアで有効/無効を設定できるプルアップ抵抗が内蔵されているので、それを使います。
同じく中央のブレッドボードには、3端子レギュレータを載せて、ここで12Vから5Vを作り出して、Arduino、LCDとアナログセンサに供給します。
アナログセンサは、とりあえずcdsと温度センサ、それと電源である12V系の電圧を測定しています。クルマの電圧計の役割をさせているわけです。
Arduinoの入出力ポートは、シリアル通信用のRX、TX端子を除いて、これですべて埋まってしまいました。RX、TXは、Phase2でELM327と通信させてOBDデータを取り込むために空けておく必要があります。

とりあえず、スイッチやセンサが読めているかどうか表示するだけのソフトを作って、動作チェックしてみました。
写真のSW1からSW8がスイッチの状態。1はOFFで0がONになります。スイッチをONにするとフォトカプラがArduinoのデジタル入力をGNDに落とすのでこうなります。
VTは12V系の電圧、BLはcdsの読み値、TPは温度です。一応、読めているのですが、アナログ系に問題発生。12V系だけで動かしているときはいいのですが、USBをPCに接続すると基準電圧が下がってしまい、アナログの読み値が変わってしまいます。3端子レギュレータで動かしているときは、基準電圧の値は4.98V。ここでUSBをPCにつなぐと4.08Vになってしまいます。3端子レギュレータの出力は4.98Vのまま変わりませんが、Arduino内部が4.08Vになっています。対策検討中。

 

100523-2.gif
(クリックすると大きな画像を表示します)
これが回路図。電気は素人なので、適当に書いています。正しい回路図の作法には従っていないかもしれませんが、ご勘弁を。