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の電圧が上がったのをカウントして それを速度に変換して表示するようにすればいいかな? |