• 締切済み

超音波センサとH8-3048

秋月の超音波センサと http://akizukidenshi.com/catalog/items2.php?q=%22K-00043%22&submit=%B8%A1%BA%F7 H8-3048Fを接続し、1m以内でLED点灯というプログラムを 作りたいのですが本を読んだりネットで探しても いまいちよく分かりません。 どんなプログラムになるか教えてください!

みんなの回答

  • inara
  • ベストアンサー率72% (293/404)
回答No.3

今日は、先週末に引き続きサイトの応答が悪く、もう1つに質問(H8-3048F)にも回答が来ていないようです。 >「パルス間隔を測定する」というのをやりたいのですが そのキットのマニュアル [1] の 5ページ に出ている T7 という信号のパルス幅が、超音波の往復の時間になるので、このパルス幅を測定したいわけですね。 私は「H8マイコン完全マニュアル」という本を持っていますが、H8-3048F については全くの初心者で、現在勉強中なので、プログラミングについてはお教えできません。その本を見ると、H8-3048F は5ャネルの16bitのITU(Integrated Timer Unit)を内蔵しているので、この中のインプットキャプチャというのを利用すれば、T7 の立ち上がりから立下りの時間を計測することが可能なようです。残念ながら、この本にはインプットキャプチャの使い方は書かれていません。H8-3048F のハードウェアマニュアル [2] の 285ページ以降にITUの説明が出ていますが難しくて分かりません。Googleで「H8-3048F」と「インプットキャプチャ」で検索した48件の中に、[3] のサイトがありました。このあたりが参考になるのではないでしょうか。 なお、このキットは電源電圧が 8.5V~12Vという仕様なので、T7 の振幅は 0V~電源電圧 になります。H8-3048F は電源電圧が 3.3V~ 5V なので、そのままでは信号レベルが一致しません。何らかのハードの変更(レベル変換)が必要かと思います。 [1] http://www.aki-den.jp/kit_manual/%8Cv%91%AA%8A%ED%8A%D6%8CW/J04_%8B%97%97%A3%8Cv.pdf [2] ハードウェアwマニュアル(全807ページ) http://www.mech.ibaraki.ac.jp/~masuzawa/j602093_h83048.pdf [3] パルス幅の計測 http://homepage1.nifty.com/rikiya/software/116inputcap1.htm

ksmo112
質問者

お礼

何から何までありがとうございます。 inaraさんの回答はとてもわかりやすくて 凄く助かりました! 「インプットキャプチャ」ですね! さっそく調べてみます。 ありがとうございました!!

  • inara
  • ベストアンサー率72% (293/404)
回答No.2

>距離によっていろんなことをやりたいので 秋月のキットにカウンタICを1個追加して、T9 と T10 でパルス数をカウントさせ、8bit のパラレル信号として 3048F のI/Oポートに接続すれば、ダイレクトにカウント値を読めると思いますが、電子工作に自信がなければ、別に質問されているように、パルス間隔を測定するほうが簡単ですね。

ksmo112
質問者

お礼

何度も本当にありがとうございます! 電子工作にはあまり自信のあるほうではないので 「パルス間隔を測定する」というのをやりたいのですが どのようにすれば良いでしょうか? 一週間ほどそのことで悩んでいます↓ 周期によって時間を計るというのはのっているのですが 距離によってパルス幅が変化するので どうして良いかわかりません。 もし知っているようであれば教えてください。 本当に何度もありがとうございます!!

  • inara
  • ベストアンサー率72% (293/404)
回答No.1

ある距離以内に物体があるとLEDを点灯させるだけなら H8-3048F は不要です。 H8-3048F のプログラミングが目的ならば以下は無視してください。 このキットのマニュアル [1] のPDFファイルの4ページに受信回路が出ていますが、カウンタIC4553 の LE と MR にパルス信号の T10 と T11 の時間差が物体の距離に相当しますので、それがある値以内になったら LED を点灯させるようにすればいいでしょう。 20℃での音速は、[1] の6ページの右下に出ているように、343.5 m/s ですから、物体が 1m 離れた位置にあるとき、超音波を出してから戻ってくるまでに、2/343.5 = 0.00582 [s] = 5.82 [ms] かかります。[1] の5ページにタイミングチャートが出ていますが、T8 のクロック周波数(17.2kHz)の1周期が、1cm 離れた物体の時間差(58.2 μs)になっているので、T11(リセット)が立ち上がる時間から、T10が立下がる時間までの間のクロック信号を抜き出した T9 のパルス数が 100以上なら物体は 1m以上離れていることになります。したがって、このパルス数が100以下ならLEDを点灯するように、適当な比較回路を付加すればいいわけです。あるいは、キットに使われているカウンタIC4553を使う手もあります。4553 はダイナミック点灯用なので、ここから100の計数値を抜き出すのは難しいですが、表示用(日の字)LEDに来ている配線から、百の位の桁が0であることを電気的に検出すれば、1m以内になっているかどうか分かります。 [1] デジタル距離計キット http://www.aki-den.jp/kit_manual/%8Cv%91%AA%8A%ED%8A%D6%8CW/J04_%8B%97%97%A3%8Cv.pdf

ksmo112
質問者

お礼

丁寧に教えてくださってありがとうございます。 せっかく教えて頂いたのに申し訳ございません。 H8-3048Fのプログラミングが目的です。 最終的にはLEDを光らせるだけではなく 距離によっていろんなことをやりたいので・・・。 ありがとうございました!!

関連するQ&A