2017/08/15(TUE) 【Nチビ】デジタルスピードメーターをイェーイ!
はい、夏休みで天気が悪いので
走りにもメンテもできないので
電子工作
フォト

まぁ天気悪そうなのをみこして部品は注文しておいた。

まずは、使ったことがないホールICについて
動作確認
フォト

いわゆる磁力センサーなんですが
いろいろ種類がある
リニア出力のとかホールラッチのとか・・・
リニア出力ってのは磁束密度により電圧が変わる
ホールラッチってのは、磁力によりオンオフをし
その状態をキープします。
で、どっちだったか忘れたけどNでオンならSでオフするとか
ちょっと面倒らしい。
ということで、どちらも使いにくそうなんで
秋月でSK8552Gってのにした
これは、リニア出力ともホールラッチとも書いてなかったので
どう動くかあんまりよくわかんなかった。
で、実験
磁石が近づいてない状態だと0V出力
フォト

磁石を近づけてみる
フォト

磁石が近づくと5Vが出力される
意外と近づけないと反応しない
フォト

なんか、どっかのサイトでは
反応が良すぎるとかあったけど
そうでもないかな?
意外と近づけないといけないので
逆にちょっと心配。

はい。次は2桁の7セグ
今回はアノードコモンの奴です。
データシートをみても
どこが1ピンなのかわかんなかったので動作確認。
フォト

だいたいわかったので、回路を組む
まずはPICマイコンで2桁を光らすテスト
PICは PIC16F627 を選択。
機能がシンプルですが、逆にそこが好きです。
プログラムで単純にカウントアップして
00 01 02...........99 と表示させてみようかと・・・
あぅ〜。アノードコモンなんでビットを立てたところが消えるのね。
フォト

いろいろと悪戦苦闘しつつ
とりあえずはできた。
たとえば、「38」を7セグ2桁で表示されるなら
「3」を左に「8」を右に表示させればいいんですが
アセンブラで書いているとそう単純ではないです。
先日の割り算を使って「10」で「38」を割って
商の「3」を左に、余りの「8」を右に表示させてやる必要があり。
そうやったつもりで動作させてみると
なぜか 00 〜 29 までしかできない・・・
いろいろ悩んだんだけど
引き算した時にキャリービットをクリアするのを忘れてました。
それで30までカウントすると暴走してリセットしていたらしい。

ということで、ここまで準備できたので
回路的には、ホールICをつなげばよくて
プログラム的には、ホールICの電圧が上がったのをカウントして
それを速度に変換して表示するようにすればいいかな?