hiro yamamoto works

マイコンハード、ソフトを作ったりしています。
お家や現場のお困りごと解決に!
内容利用は自己責任でお願いします。

タコメータの回路をマイコンで置き換える(テスト中)

2023-09-02 14:15:11 | マイコンハードウェア

※日本精機製タコメータが動かない※
電解コンデンサのショート不良可能性あり。基板中央付近の円筒形470μF6.3Vを、
テスタ抵抗レンジで数Ωなら可能性高いので交換してみて。<br />
これを

これで代用できるか

タコメータが動かないということで、相談を受けて回路を調べましたが、
ICまで信号は入っているようで、ICが故障しているのではないかという結論になりました。
IC(T8016A)は入手困難のようです。
※後日追記※
後日の調査で故障している部品が見つかりました。
メーターに並列に接続されている電解コンデンサがショートしていました。
“並列接続でショート“はつまり全ての電流がコンデンサを流れてしまうので、
”メーターが動かない”となります。別の記事に投稿します。


そこで別の回路に置き換えて動かしてみようということに
オリジナルタコの回路は原理的にはF-Vコンバータでいいんじゃないかと思います。
メーターは電圧計の針の可動範囲を大きくしたようなものです。
つまり、
パルスが少ない時(低い周波数)は低い電圧を出力し、
パルスが多い時(高い周波数)には高い電圧を出力する。
電圧に応じてメーターの振れが変化する。
F-VコンバータICはTC9402CPDやNMJ4151Dなどが秋月電子通商で入手できそうですが
まず手元にある部品で出来ることをやってみようということで
マイコンATSAMD21Gの小さいやつSeeed-StudioのXIAOでやってみることにしました。
他のマイコンに変更することも比較的かんたんです。

ネット公開されている記事を参考に(ありがとう)、
ありあわせの部品でテスト用擬似回路を組んでテスト中です。

プログラムの構成をざっくりと・・・
外部割り込みを使いイグニッションのパルスのたち下がりを捉え、
パルスの間隔を測ります。パルス間隔から回転数を計算します。
回転数をメーターを振らせるための電圧に変換します。
電圧の上下はPWMで、デューティ比(パルスのOFFとON時間の比率)を変えて行います。

1回転1パルスとした場合の考え方はRPM = 60 / (パルス間隔時間(秒))
ちなみに、2気筒エンジンで1回転に2パルスらしい。(2パルスなら2で割れば良い)
回転数はかんたんに計算できるのですが、メーター目盛りと回転数をあわせるのが難しい。

方法1(プログラムはかんたん)メータ目盛りと合わせるのが難しい(無理)。
    map関数を使って回転数をPWM値(0〜255)に変換する。

方法2(処理多め)メータ目盛りに合わせられる。
   回転数ごとの目盛りに合ったPWM値をメモリー(配列)に入れておき、
   配列使うと高回転域が表示できない?ので、回転数毎の値をコード内に書くことにしました。
   回転数毎に読み出して出力する。
   低回転域(〜4,000rpm)は500回転毎、(4,000〜10,000rpm)は200回転毎のPWMデータ、
   高回転域(10,000〜14,000rpm)は100回転毎のPWMデータを用意する。

現在 方法2でコードを書き直し、メーターの合わせ込みもできました。

メーターの誤差について
例えば、高回転側から少しずつPWM値を下げた10,000回転の指示値と、
PWM値24(3,000rpm)ぐらいからどんと上げた同回転数の指示値に差が出ます。
前者は高め、後者は低めになります。後者で合わせ込みました。

続きは今後の投稿で紹介したいと思います。



最新の画像もっと見る

コメントを投稿