デジタル式

速度計&回転計(タコメータ)の製作

速度&回転計

SW20のメーター類は少し見難い感じがします。ウインド・フィルムを貼ったせいか、日中でもサングラスなんかしていると、メーター周辺が暗くて読み難いようです。また、アイポイントを高めに着座すると、メーターが下の方に見えて見難く感じます。そこで、デジタル式の速度計&回転計を作って、ダッシュボードの上に置くことにしました。

また、3S−GEはレッドゾーンまで気持ちよく加速してくれます。おかげで、リミッタが掛かる7400rpmまでエンジンを回してしまうことも時折あります。逆に、街乗りでは、ハイ・ギアーで低い回転数から加速を掛けてしまい、失速することも時折あります。そこで、トルクバンドが明確に分かるように、バーグラフ式の回転計も合わせて装備することにしました。

最終更新日 : 1999.9.11


特徴について

速度計&回転計の内部の様子

設計に際しては以下のような要件に対応できるように考えました。


表示の内容

長々した説明を書くより、下の写真を見て頂ければ、どんな装置なのか、きっとすぐ分かるでしょう。

アイドリング状態
街中では普通この辺まで
トルクが最も多い回転数
リミッタが効く直前

表示は上の写真のようになります。白っぽい「0」は速度計で0km/hです。赤(実は朱色)がタコメータで800〜7300rpmを示しています。下の緑〜赤のバーグラフもタコメータになっています。街中では全部緑色で終始する程度しかエンジンを回しません。3500〜7000rpmまではトルクバンドで、スポーツ走行なら、黄のバーグラフが出ている範囲にキープするのが望ましいでしょう。最後の赤はレッドゾーンをあらわします。赤いLEDが点かないように走ればエンジンにやさしいということになります。

(rpm) 街中走行用 スポーツ走行用 なんでもOK用 LEDの色
START 600 500 600
STEP1 400 (600-3400) 500 (500-4000) 400 (600-3400) 緑色(黒地)
SETP2 400 (3400-6200) 400 (4000-6800) 500 (3400-6900) 黄色(緑地)
SETP3 200 (6200-7600) 100 (6800-7500) 100 (6900-7600) 赤色(黄地)

上の表は、バーグラフの点灯パターンです。STARTは緑色のLEDが初めて点灯する回転数で、回転数がSTEP1増える毎に1つLEDも点灯します。7つ点いたところで、STEP2に移行します。STEP2では黄色の点灯になり、STEP3では赤色の点灯になります。STEPの主な意味は、STEP1が街乗り、STEP2がトルクバンド、STEP3がレッドゾーンを示します。


製作編

速度計&回転計のメイン基板

部品数が少なくて済むように設計しました。速度計と回転計を同時に1つのPIC(CPU)で処理するのは、プログラム的には少々厄介です。1個450円しかしないPICですから、2個使った方が簡単かもしれませんが、その辺は趣味で1つにしました。代わりに、LEDドライバを使用しなかったので、光度が低く、また入手性から高輝度LEDでそろえられなかったので、日中は少し見難いようです。

基板は、上の写真のCPUの乗ったメイン基板以外にも、パルス信号を処理するために74HC14と74HC74が乗った基板、7セグメントLEDなどが乗った基板の3枚から成っています。回路は簡単なのですが、配線が厄介なLED基板と、車の信号と合わせ込んで調整が必要なパルス信号処理基板の製作/調整には手間がかかりました。あと、プログラムも凝った分だけ意外に時間が掛かっています。

ケースには、0.5mm厚のアルミ板を折り曲げただけの物に、ラッカーで色を塗っただけの簡単なものです。車のダッシュボードに固定して、あまり触らないので強度的には弱くても問題なさそうです。LEDの前には透明な下敷きにウインド・フィルムの余りを貼った物を使って認識率をあげています。


イグニッション・パルスについて

速度計は車速パルスを使いますが、MR2の場合、回転計にはイグニッション・パルス(IG)を使います。車速パルスはデジタル的なパルス信号なので、扱いは簡単なのですが、イグニッション・パルスは不可解なことが多いパルスです。また、IGパルスの引き出しはAE−1というコネクタを使います。これは、IGパルスだけでなく、車速パルスも出ているので、これを使えば一気に取得することができます。

実際に、IGパルスをオシロスコープで観測してみると、1回転で4つのパルスが観測できます。しかし、パルスは、2つずつ連続して発生しているようです。理屈としては、エンジンは各気筒が2回転で1度点火されますので、1回転で2つのパルスが発生されるはずなので、この連続したパルスは1回の点火で起きる副次的な要因で発生しているようです。

また、IGパルス線のインピーダンスは高いようで、10KΩの負荷抵抗でも波形が変化してきます。実測すると2KΩ程度なようですが、状況で複雑に変化しているようです。おまけに、アイドリング時は失火しているのか、IGパルスの発生が一様ではなく、時々歯抜けになっています。ちなみに、失火は車自体の不調なのか、仕様なのか、ディーラーでも原因はわからないようでした(^^;)

オシロスコープで観測した結果と、推測を元に、色々とパルスの抽出方法を試してみましたが、不可解なパルス波形のため、なかなか上手くいきません。パルスの取り出しは、車速パルスと同様に、ダイオードを使ってパルスが0V(正確にはプルアップ抵抗以下)になった時に検出できるように配線したのですが、プルアップ抵抗の抵抗値が低いと波形が歪んでしまうし、パルス性ノイズを大量に含みますし、5Vでプルアップすると、波形の都合か不可解な波形が出力されてしまったりと困難を極めました。

一応の実験結果から、コンパレータ(LM339)を使い、ハイレベル(14V)より2V低い12Vを仕切り値にしてデジタル化するのが最も素直な波形が観測できました。しかし、プルアップ抵抗を100kΩと高めに設定しても、なぜか表示される回転数は1/3ほど少なくなってしまいます。偶然ですが、プルアップ抵抗を外した時にはアイドリング以外での回転数がピタリと一致したので、最終的にはプルアップ抵抗無しで回路に組み込むことにしました。ダイオードがついているので、コンパレータには電圧は流れない(コンパレータの微弱な漏れ電流は流れるだろうが)ハズなのに不可解ですが、まあ、結果往来ということで、一応の完結をしました。

さて、このような不可解な現象は、MR2のみなのか、他車でも同じなのか、資料が全く無いので不明です。以前、ダイオードブリッジをつけて、整流してメーターを振らせる話を何処かで読みましたが、もともと、回転計はアナログ値に変換してから数値化するものなのでしょうか?これだと、ちゃんと校正しないと値が信用できないですが・・・


開発に当っての裏話

PIC16F84を使用

PIC16F84の内部メモリは68バイトあります。前の型のPIC16C84には36バイトしかありません。このプログラムではメモリを36バイト以上使っているので、PIC16F84でないと動作しません。それほどに、結構複雑なプログラムになっています。

小型7セグメントLED

7セグメントLEDの配線

7セグメントLEDは、できれば、数桁まとまってるタイプの方が扱い易いのですが、3〜4桁ともなると、気に入ったのは少ないようです。仕方が無いので7個並べることにしました。安かったのは鈴商の1個100円でしたが、希望の黄色は無く朱色になってしまいました。おまけに、緑色がHPの高輝度に比べ、朱色はロームの安物です。同じ電流を流しても、緑の方が明るいという逆転現象が起きてしまいました。小型サイズでアノードコモンに限定すると、なかなか選べません。

おまけに、小型の7セグLEDは、端子が2mmピッチになっています。そのままではユニバーサル基板にささりません。仕方が無いので、ピンを放射状に広げて無理矢理押し込んで半田付けしました。少し基板から浮きますが、2色LEDの高さが高いので、丁度皆同じ高さにできました。

7セグLEDが7桁もあると、配線は結構大変です。特にLEDを取り付ける基板をギリギリの大きさにしたので、配線は皆、空中配線になってしまいました。保守性はとっても悪そうです(^^;)

LEDドライバについて

LEDをダイナミック・スキャンで明るく点すには、大目の電流を流してやるひつようがあります。コモン側は、最大7個のLEDを点灯させるので、最低でも数10mAは必要ですが、反対側は1つのLEDをドライブするだけの負荷になります。そこで、CPU(PIC)にドライバを外付けせずに使うことにしました。これでもスペック上は20mAは流せます。コモン側は150mAまで流せる2SA1015を使いましたので、電流制限抵抗には220Ωを使い1セルあたり10数mA流せるように設計しましたが、実際には9mA程しか流れません。さらに、朱色のLEDが最大定格15mAなので、これ以上流すのも危険なので、これで妥協することにしました。しかし、日中使うには光度不足かもしれません。

回転計の有効桁数

車のエンジン回転数は1分間に何回回ったかであらわします。800rpmだと、1秒間には13回余りしか回らないわけです。それに、1秒毎に表示していたので遅すぎます。そこで、300mS毎に計測して表示させると、例えば4800rpmなら48回カウントされます。これだと、プログラムも簡単ですし一石二鳥です。しかし、100rpm単位でしか表示できないのは少しさみしいきもします。

速度計の計算

速度計は、車速パルスのパルス間の時間を計測します。車速パルスは392.5mm移動するたびに1パルス発生しますが、時速が遅くなるとパルス間の時間が無限大になる場合も考えられます。この辺は、適度なリミッタを付けておく必要があります。また、速度が遅くなるにしたがってカウンタの数値が増えるという逆数になるので、計算には割り算が必要です。PICで割り算をするのは少々やっかいですので、現在は引き算をループで行って計算しています。