Tag Archives: タコメーター

CBF125T タコメーター故障&作成 ~その3 また壊れて修理~

ウチのバイク、中国は新大州本田製CBF125Tで、昨年タコメーターが壊れてステッピングモーターで作り直したのですが、先日猛暑日に走っていたら止まってしまいました。

これエンジン掛けてない状態です。

記録を見返すと最初にタコメーターが壊れたのが昨年の日本一周で東北町を走っていた頃、8月26日だったので丁度1年前ですね。その後ツーリングから帰り、11月にステッピングモーター化して使っていました。

バラして原因を調べる。

うーん1年で故障かぁ。とにかく開けてみます。

バイクから外してきて・・・


これが基板。Arduino-NANOを載せています。

半固定抵抗は以前液晶表示にした名残り

原因を調べる

電源に12Vを入れてみました。しかしArduino-NANOのLEDが点きません。
VIN端子まで12Vは来ていますが5V端子からは出てこないですね。
ソケットから外して裏を見ると・・・

コンデンサが弾けてパターンを切った様です。

コンデンサが弾け飛んでいて、その下を通っていたVIN配線パターンも切ってしまった様です。これではマイコンに電源が入りません。
猛暑に耐えられなかったんでしょうね。ケースの中で風も当たらないし・・確かに厳しい条件だったと思います。
またArduino-NANOと言っていますが中国製の互換品なのでどんなコンデンサを使っていたのかも分かりません。

ところでこのコンデンサ、VINとGNDとの間にありますが回路図には見当たりません。
レギュレーターへの入力なら普通は最短位置にコンデンサを付けますが・・回路図の抜けなのか互換品が気を利かせたのか?
値が分からないので手持ちにあった10μF/35Vのチップコンを取り付けました。
(安心の村田製作所製です。→https://akizukidenshi.com/catalog/g/g113161/
また切れた配線は前後のレジストを剥がしてメッキ線で接続し直しました。

これで動作は正常に戻ったのですが、よく見たらとなりのダイオードのモールドにもヒビ入ってますね。まぁ動作はしているのでヨシ!としましょう。

追記(2024-09-01):
ArduinoNANOに入れる電源電圧を下げる目的で、12V電源にシリコンダイオードを2本直列に入れてみました。多少は負担が減る筈。
更に2~3本入れるかツェナーダイオードで5V程落とせばもっと安心かもしれません。

ついでにソフトを見直す。

外したついでに今まで気になっていた下記の部分についてソフトを見直します。

  • まだ揺れが大きい。特にアクセルを開けた状態。
  • 長時間走っていると(恐らくモータが脱調して)指針がずれている。

という事でステップ時間を延ばし、移動平均フィルタのサイズも倍に増やしました。
また上昇/下降の変化点では1回休みの処理を入れてみました。

スケッチ→ https://www.hoihoido.com/data/tachometerX27_4.zip

取り付けて走ってみると・・・揺れはだいぶ納まった(まだ少しある)様です。
脱調の有無は長距離を走らないとわからないですが、揺れが減った時点で少なくともマシになっているものと期待しています。

CBF125T タコメーター故障&作成 ~その2 ステッピングモーター化~

先日液晶表示のタコメーターを作りましたが、液晶ディスプレイが小さいのと昼間はコントラストが低くて見づらかったのでステッピングモーターに置き換えて針を振らせてみました。

まず前回のタコメーターは下の状態。

反射光でもバックライトでも見えるというディスプレイですが、はやりちょっと見づらいのです。

今回のステッピングモーターについて

ステッピングモーターはAmazonで2個¥1940円で購入。
X27-168という型番で、CNCや3Dプリンタで使う様なヤツではなく、下の写真の様にメーター用の軽量のものです。

後ろ

このモーターはこちらのブログで紹介されていました
またデーターシートはここで発見しました

元々付いていた(壊れた)タコメーターと比べるとこんな感じ。電子回路が別に必要だとしてもかなり小さくて済みそうです。

ところでこのステッピングモーター、2相のバイポーラ動作ですがコイルの駆動が5V/20mAで済むのですね。
という事はAtmega328PのArduinoで直接駆動できます。改めてAtmega328Pの絶対最大定格を見たらI/Oピン電流は40mAと書かれています(20mAだと思ってたのでギリのつもりでしたが、実は結構余裕だったのね)。

また通常動作(マイクロステップ等にしない場合)では、1ステップで1/3度回るのでタコメーターの分解能としては十分です。

回路

回路的には先日作った液晶方式からディスプレイを取り外し、ステッピングモーターの配線4本をつないだだけ。
あ、あとパルスを割込みでカウントするため、入力ピンをD5→D2に変更しています(Atmega328PのArduinoで割込みを使うにはD2かD3に入れる必要があるので)。

取り付け

パネルへは新たな穴を開けて直接モーターを取り付けました。
不要になった穴は夜間に光が漏れそうなので裏からプラパテで埋めたのち、表から黒塗りしています。


取り付けにちょうど良いサイズのタッピングビスが手持ちになかったので、モーターの取り付け穴(元々Φ1.85)にタップを立ててM2ネジで取り付けました。

指針は元々付いていたものを使うのですが、軸の太さが元のメーターだと0.8mmに対し、今回のモーターは1mmと太くなります。
そこで指針の軸穴を0.95mmのドリルで拡大したら丁度良くなりました。
因みに0.95mmのドリルは写真のセットに含まれています(Tinyドローンの軸拡大にも時々0.95mmを使うので単品で買っておきたいのですが売っているのを見かけません。通販で買っとけばよいのですが)。

そして一通り接続したところ。。。

プログラム

前回はゲートタイム200mSでパルスをカウントしていましたが、低回転での分解能を改善するため1パルス毎に割込みをかけてArduinoのmicros()時刻からパルス間隔を測定しています。
モーターコイル2本のそれぞれ両端に加える電圧は以下の配列を用意しておき順次切替えています。

// 各ステップの端子状態
int coil1a[]={1,1,0,0,0,0};
int coil1b[]={0,0,0,1,1,0};
int coil2a[]={1,0,0,0,0,1};
int coil2b[]={0,0,1,1,0,0};

動作させてみる・・・

アイドリング時の振れが大きいです。
またキーをOFFした時に0rpmに戻らずその場で止まってしまうのがカッコ悪いですね。

対策

まず振れが大きい問題についてはソフト的にローパスフィルターの処理を強目にしました。

次にキーOFF時の動作ですが、OFFの瞬間に電源が切れてしまうと0に戻せないので、戻すまでの時間分の電力を貯めておく必要があります。なら電解コンデンサでしょうね。
ざっくり計算で10000μF程度をつけたいところですが手持ちにないし大きすぎるので試しに4700μFを、ArduinoNANOのレギュレータに供給している12VとGND間に付けてみました。
・・が、キーOFF時に0rpmには戻りませんね。
でもこれは想定内。単に12VとGND間にコンデンサを繋いだだけではコンデンサに貯めた電荷は車体側にも流れてしまうのであっという間に放電し、タコメーター側に供給する電力は僅かになってしまいます。
これを防ぐため、バイクから供給する12Vとタコメーターの間をダイオードで分離してみます。また電源ON時にガバッと流れるのがイヤなので抵抗とダイオードをパラにつないで下図の様に接続しました。

これでコンデンサの容量を替えて試したところ2200μFでOKですが1000μFだとダメ。よって少し余裕を持たせて3300μFを取り付けました(4700μFの方が安心ですが50V品で大きくてケースに入らないのです)。

実際の配線は下の様なのを作ってギボシ端子接続に割り込ませています。

コンデンサはテープで貼り付けました。この位置ならケース内に納まります。

もう一度動作確認・・・

指針の揺れがかなり納まり、キーOFF時に0rpmに戻る様になりました。
しかし実際に走ってみると、アクセルを開けている間だけまだ揺れがすこし大きいですね。
もう少しローパスフィルターを強めに効かせようと思いますが、またメーターを外すのが面倒なので次回バラす機会があればやろうと思います。

Arduinoのスケッチ

参考に今回のプログラムを載せておきます。

http://www.hoihoido.com/data/tachometerX27_2.zip