さて、プログラムはちゃちゃっと実装。とりあえず、トリップメータを2つ、スピードメータ、インジェクター開比率、インジェクター開時間の積算などの表示モードを作って、切り替えて表示できるようにてみました。数値をフロントガラスに反射させて表示するのが目的なんで、7セグLEDを鏡面表示させるモードも付け加えました。電源はアクセサリーから取るようにしているので、エンジンを切っても大丈夫なように、データをEEPROMに保存するようにしました。早速CDのケースで反射させてみたら…うん、いいかんじだ!
というわけで新車のジーノ君を分解開始。スピード信号はセンターコンソールのなかに出てきてるらしいんで、パネルをバコッとはずしてCD/MDデッキを取り外すと、裏側にひょこっと出てきていました。ここから信号をとることにしました。
インジェクター信号はさすがに取り出しやすいところにはなく、ECUからエンジンのほうへ一直線に向かっちゃってるので、ECUの脇からとりました。ジーノは3気筒なんで3本の線があるんですが、1気筒目の信号をとることにしました。
のちのちバージョンアップすることも考えて、電源(ACC+とGND)、インジェクター信号、スピード信号の4本をコネクタにしてしまって、運転席足元のボックスに収納するような形にしました。ここからドア脇を通ってダッシュボード上へ配線して本体をおきます。
ついたーーーー!
とってもいい感じです!
でも、昼はちょっと周りが明るすぎて、なんとなーくしか見えません。曇り空ぐらいならまあまあ見えるという程度です。ダイナミック点灯しているから、もうちょっと電流流してもいいんですが、でもそうするとトランジスタやPICがやばいな…。もしかしたら、そのうちカー用品店で売ってる、反射用のフィルムとか貼ってみるかもしれません。
まずはスピードメータが正しく動作するかを見てみました。小数点以下第一位まで表示させるようにしたんですが、かなり正確に表示してくれました。アクセルやブレーキを操作するのにあわせてグリグリとフロントガラス下で数値が変わって表示されて、ゲームでもしてるみたいでなんか楽しい!
ただ、あまりにもグルグルと数値が変わるので、注視しやすくなってしまって危ないかも。
それから、次は念願のインジェクター開時間ですね。期待通りの表示を出してくれました!
かなりぶれるかと思ったんですが、一秒おきに正確そうな?数値を表示してくれています。この値が正確なのかは、オシロスコープとか持ってないんでわかんないです。
ところが、問題発覚!
エンジンを切って、データが記録されるか試してみたんですが、なんと、インジェクター開時間が100%、すなわち信号線が常にLowの状態になってしまったのです!
これが普通なんでしょうか。アクセサリーにしているときは、インジェクターの両端には電圧をかけないということなんですね。これは、インジェクターに関する部分のプログラムを根本的に変えないとまずいです。
というわけでとりあえず、インジェクター信号がlowになっている間の時間を計測し、highになったときにその時間を加算するプログラムに変更しました。これで、なんとか正常に動くようにはなりました。