• ベストアンサー

PICアセンブラ言語で車のスピードをLEDバー表示したいのですが

現在、自作で車のスピードメーターを製作しています。 車速パルスを利用して、スピード表示を10km/h単位で1つのLEDを点灯して、180kmまでの18個のLEDをバー表示したいのですが、どのようにすればその処理が出来るのか分かりません。 どなたか教えていただけないでしょうか。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

その質問はハードの問題?それともソフトの問題でしょうか? ネット上では、スピードメーターを作られている方がいるので参考にしてみてください。回路図とプログラムがあります。 http://www.geocities.jp/imayuki_h/custom/speed.html 上の例では7セグLED表示の数値ですが18個のLEDを制御する場合には求められた時速を10km/h単位で割り算した答えが光らせる個数です。 個数からLEDを光らせる方法として一番簡単なのは、 だいぶPICのアセンブラを忘れてて怪しいですが。 iに表示する個数が入っているとします。 ; 1つ目のLED MOVF i,F ;iがゼロか調べる。 BTFSC STATUS,Z ;ゼロ以外はスキップ GOTO DISP_LED_END ;ゼロなら終了 BSF ;1個目のLEDをONに。 ; 2つ目のLED DECF i,F ;-1して BTFSC STATUS,Z ;ゼロ以外はスキップ GOTO DISP_LED_END ;ゼロなら終了 BSF ;2個目のLEDをONに。 って感じで18個分書きます。 この書き方も回路図次第ですから、まず回路設計が必要です。 18個もLEDを制御するにはシフトレジスタが必要な気がします。

jza70-kai
質問者

お礼

zwi様 ご回答頂き、有難う御座います。 返事が遅れまして申し訳御座いません。 今回質問をさせて頂いたのはソフト側でのものです。 それに合わせてハードを製作しようと考えていましたので。 教えて頂いたサイトの確認が出来ました。 プログラムもアップされていましたので、それをヒントに一度勉強してみようと思います。 私自身PICの事をまだ全然理解出来ていませんので、重ねてzwi様から教えて頂いたものも含めてどういう処理をすればどうなるかを調べてみます。 また解らなくなってここに質問を書かせていただくかも知れませんが、その時はまた助けて頂ければ幸いです。 この度は有難う御座いました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PIC16F84でデジタルスピードメーターを作る

    PIC16F84Aでスピードメーターを作ろうと思います。 条件は ・タイヤ1回転で4回のパルス。 ・1パルスあたり50cm(タイヤ外周2m) 測定方法は ・各パルスの間隔をタイマーで計測 ・タイマーは0.009秒のタイマー(Aと名付ける) ・パルスを検出するとタイマーAを繰り返し、Wレジスタに1ずつ加算。 ・次にパルスを検出したらWレジスタの値(Aを繰り返した回数)に応じて速度をダイナミック点灯表示させるプログラムを呼び出す。 速度の表示方法(ダイナミック点灯) ・パルス回数>200なら時速0kmと表示 ・パルス回数=200なら時速1km、パルス回数=199・・時速2km、パルス回数=1なら時速200kmと表示 各パルスの間隔をAを何回繰り返したかによって測定し、それに応じて7セグに3桁表示するものとする。 接続 ・RB0~RB6・・・7セグLED ・RA0~RA2・・・7セグLED(カソード) Wレジスタの値に応じて速度を表示するプログラムを呼び出すまではプログラム書けそうなのですが、 「ダイナミック点灯のプログラムの実行」と「パルスを検出し、タイマーAの回数をカウント」という2つの動作を同時にさせなければなりませんよね? 16F84Aでこのようなことは可能なのでしょうか? だとしたらどのような考え方でプログラミングすれば良いでしょうか?ど素人なので分かりやすい説明をお願いします。

  • 車のスピードメーターは正しい??

    車のスピードメーターですが正しいスピードが表示されているんでしょうか?また車種によって違いはありますか?私はデミオです。疑問に思った理由は先日スピード違反で捕まったからです。83kmくらいで走ってて78kmで捕まったんですよ。

  • 車のスピードメーターについて

    日本の道路の制限速度が100km/hを超える所はないです。つまり100km/h以上で走行するとどんな場所でも道交法違反ですよね。そこに警察がいれば捕まり、いなければ捕まらないだけの話で。それなのに乗用車のスピードメーターは180km/hまでの表示になっています。100km/hまでしかスピードを出してはいけませんよ、と国が法で決めているにも関わらず、自動車のスピードメーターは180km/h表示で平然と販売されています。販売されているということは、もちろん国がそんな車を認めているということですよね。これって絶対おかしいですよね? この質問をトヨタとホンダにしたところ、「追い越しに必要な性能だから」「自動車を安全に使うか走る凶器として使うかは自己の心構えで決まる」など納得のいかない回答が返ってきました。例えば麻薬などはどうでしょうか?使用するのはもちろん罪ですが、その前段階の栽培しているというだけで罪になりますよね。 僕の聞きたいことが分かって頂けるでしょうか?僕自身、車がほんとに好きなので自動車会社を責めるつもりは無いのですが、その反面、車の事故ということを考えると、スピードの出しすぎということが事故につながることが多いと思うのです。今の180km/hリミッターを100km/hで効かせてはどうかと思います。なんらデメリットはないと思います。車は100km/hも出ればじゅうぶんですよね。しかし現在までずっとこれで来たのでまあ変わることはないかと思いますが… でもほんとに不思議です。どなたか納得できる回答をお待ちしています。

  • スピードメーター 校正できますか?

    ダイハツMOVE L152Sです。 私のMOVEのスピードメーターは、他の車と一定の車間で走った時のスピード表示と比べても明らかに高い速度を表示します。 自作のマイコン回路へ、スピードパルスを入力し、パルス間隔を測定し、速度へ換算するプログラムを作成したのですが、60km/h時=637rpmの回転とした時、カーナビが表示する車速と同じ速度を出力します。 これらに対して、スピードメーターは7%程度高い速度を表示します。 体感的にはカーナビも正確な速度を出力しているのではないかと思うのですが確かめる方法がありません。 出来れば、正確な速度を表示させたいのです。 1 そもそも スピードメーターはどのように動いているのでしょうか?  電圧計?(今時考えにくいかな・・)   それともステッピングモータか何か? 2 自分で分解して校正できますか? 校正方法は?   例:針を動かすとか、ポテンショメータみたいなのをまわすとか   3 カーナビや車速信号の他に簡単に正確な速度を知る方法はありますか?

  • ナビの車速センサーで…

    今スカイライン(R32)に乗っています 友達からカロッツェリアの楽ナビを安く買い取って 何とか自分で取り付け(問題なく)使用していたのですが、最近ナビをつけたところ 車が止っているのに関わらずナビの画面では進もうとしては戻ってというのを繰り返しています 接続確認の画面を見ると車速パルスが止っていても常時感知していました。 止っているにも関わらず車速パルスを感じて進もうとしてGPSで修正されて戻ってというのを繰り返していたみたいです。 多分間違えて車速センサの配線になにか別の電流が流れ込んでいるのだろうと思い、コンピュータ車速パルス⇔ナビ配線を調べたのですが特に問題はありませんでした。 前はしっかり感知していたのになにがおかしくなったのでしょうか? おかしくなるまでに車をいじったことは多々ありますが…。 調べていて、ん?と思ったことは、スピードメーターとかと車速パルスと関係があるらしいということです。 少し前に純正メーターのバックランプをイグニション電源からとり常時点灯するようにしました。メーターが関係あるのならそれが原因になるのでしょうか? 詳しい方教えてください また、これが原因では?こんな改造した?ということがあればどんどん聞いてください

  • PICでスピードメーターを作るためのプログラムについて

    PIC16F84Aを使用してスピードメーターを自作することを目指しているのですが、 まだ初心者なのでどういったプログラムを組めばよいのかが分からないのですが自分なりに方法を考えてみました。 それは、 車速パルス間の時間をタイマーで計測し、その結果に応じてあらかじめ用意した表示用のデータを出力する。 データを出力したら次のパルス間の計測結果が出るまで表示を続け、次の計測結果が出たらそれを新たに出力する。 というものです。 一般的なメーターもこういう原理なのかも知れませんが・・・。 「Timer0」「プリスケーラ」「割り込み」というものを使用したりするようですが、 正直言ってこれらの具体的な使用方法が分かりませんのでとりあえずスピードメーターを簡素化?したものを学習用として作ることにしました。 それは PICのピンにタクトスイッチを取り付け(チャタリング対策もする)、入力用にする(割り込みが出来るRA4でいいのかな?)。 RBのポートを7セグ表示用のICへ繋ぐ。 という回路で、 電源を入れるとタイマーが計測をはじめ、タクトスイッチを押すと押すまでの時間に応じて結果をポートBに出力する。 電源ON→スイッチ1回目→結果を出力すると同時に2回目までの計測を開始→スイッチ2回目→結果を出力すると同時に3回目までの計測を開始・・・と続く。 この回路での計測結果と出力データの関係は以下のようにします。(適当に考えたものですが) 計測結果が 10秒以上・・・00を表示(2桁はダイナミック点灯で表示) 9~10秒・・・01を表示(厳密には9秒以上10秒未満) 8~9秒・・・・02を表示(厳密には8秒以上9秒未満、以下同じ) 7~8秒・・・・03を表示 6~7秒・・・・04を表示 5~6秒・・・・05を表示 4~5秒・・・・06を表示 3~4秒・・・・07を表示 2~3秒・・・・08を表示 1~2秒・・・・09を表示 0~1秒・・・・10を表示 というものを試しに作ってみようと思います。 アセンブリ言語を使ってプログラムを作るのですが、 Timer0やプリスケーラ、割り込みをプログラムの流れの中でどのように利用すればよいでしょうか? 出来たらソースを作って頂いてそれで詳しく説明を書いていただけると非常に助かります。

  • カーナビで処理してる車速パルスについて教えてください。

    カーナビで処理してる車速パルスについて教えてください。 ワゴンR(MC22S)にパイオニアのカーナビAVIC-MRZ85を取り付けたのですが 停止しても自社位置が前進することがあります。 (走行中はきちんと自社位置を表示しています) (車速パルスとの接続はディーラーで確認してもらったので間違いないはずです) ナビで確認できる車速パルス値は停止時にいったん0になるのですが すぐに値に上がり自車位置が前進します(車のスピードメーターは0kmです)。 5回に一回ぐらいの頻度で発生するのですが エアコンを作動させているとほぼ確実に値が上がります。 なにかのノイズでものっているのでしょうか? 原因や対処方法の分かる方、教えてください。

  • PICアセンブラ言語で、TMR0で1秒をカウントさせ割込みさせたいのですが

    現在、一定時間に車の車速信号をカウントして、その一定時間が経てばカウントをストップして、そのカウント数に対応するLEDを点灯させるというものを作ろうとしています。 一定時間というのは1秒にしたいのですが、色んな方のサイトを調べてみたらTMR0機能の内部クロックを使用してカウント出来るのは20msとかばかりで、1秒という長い時間をカウントされている資料が見つかりません。 どなたかやり方を教えてもらえないでしょうか。 手持ちのPICは16F873Aで、水晶は10MHzです。 宜しくお願い致します。

  • 車速パルスについて

    ナビの自車位置が 信号等停止中でも勝手に進んでいくので色々調べたのですが、停止中でも車速パルスが出っ放しであることが分かりました。(パルスが出ているので ナビ表示速度も170kmとか・・・ありえん) そこで質問です。何が悪いか切り分けしたいのですが どおやって調べたら 確実・簡単でしょうか? 切り分けとしては (1)車側の問題 (2)ナビ側の問題 (3)車速パルスを拾うために 車とナビを結線した配線の問題 この3つのどれかだとは思ってますが、他あるでしょうか? 車速パルスが 出っ放しになる状態は 規則性はなく次に停車したときは正常だったりします。 出ている状態でも 車のメーターは0kmで距離も進んでいません。 配線のノイズかなとおも思っているのですが・・・ まずは、切り分けからしたいので宜しくお願い致します。

  • 車のスピードメーターで

    車のスピードメーターで 表示されているスピードは 実際出ているスピードよりも 高く表示されているって本当ですか? 例えばスピードメーターは 100キロ表示。 実際出ている速度は 95キロってことですか?

Windows11について
このQ&Aのポイント
  • 最新パーツを使用したWindows10 21H1 PCのWindows11アップグレードは不可?
  • Windows10 21H1までのOSを続けるか、Windows11へのアップグレードを考えるか
  • Windows11とWindows10の違いについてのMSの説明はあるのか
回答を見る