• 締切済み

超音波センサのパルス幅測定の仕方が分かりません

現在,超音波センサ(LV-MaxSonar)を使用して,距離を測定することを考えています. そこで,sh2-7047を用いてパルスの幅を測定することでセンサから障害物までの距離を測定する事を目指しているのですが,マイコンのどの機能を使って,どのようなプログラムを書けば,パルスの幅を測定出来るのか分かりません.教えてください.

みんなの回答

回答No.1

マイコンの使用経験はあると言うことなので。 SH7047 はタイマを持っており、「インプットキャプチャ」という機能があります。 この機能を使えば、信号のエッジを検出して、その時のカウント値を保存することができます。 資料が見つかりませんでしたが、お使いの超音波センサの、「パルス幅出力機能」の、出力パルスの最初のエッジで、カウンタをリセットして、終わりのエッジをキャプチャすれば、パルス幅を測定することができます。 カウントソースは、(超音波センサの出力が、147μs = 1インチ とのことなので)測定する距離に会わせて選択すればいいかと思います。 データシートを見ましたが、レジスタの設定がややこしかったので、ここまでです。

関連するQ&A

  • 超音波センサの使用方法が分かりません.

    超音波センサ(MX001 LV-MaxSonarシリーズ)を使用して壁までの距離を測定することを考えています.そこで,どういうプログラムを書けば超音波センサの処理が出来るのかというのが分からずに困っています.プログラムの書き方,また参考となるようなサイトがあったら教えてください. また使用しているマイコンはsh2-7047を使用しています.マイコンの使用知識は研究で使用した事があるのでそこそこ自信はあります. 以上です.宜しくお願いします.

  • H8/3664Fでパルス幅測定

    H8/3664でパルス幅を測定しようと思っています。 秋月の超音波距離計のT7の信号を取り込んでいます。 距離を測る前にパルスの立ち上がりと立下りがちゃんと拾えてるか調べようと思い、下記のようなプログラム(mainループのみですが)を作りました。 ・・・・ PUP:  BTST  #1,@PDR8 ;P81にパルス;立上がりか?      BEQ RED1       JMP @PUP RED1: BSET #3,@PDR5  ;P53にLED-1,ON      BTST #1,@PDR8 ;立下りか?      BNE RED2     JMP @RED1 RED2: BCLR #3,@PDR5 ;RED-1 OFF      BSET #4,@PDR5 ;RED-2 ON     JMP @RED2     .END  しかし、スイッチを入れるとRED-1はつくのですが、RED-1が消えRED-2がつくまでに5秒くらいかかります。最後は命令どうりになっているのでバグではないと思うのですが・・・なぜタイムラグがあるのかわかりません。  オシロスコープでマイコンに取り込む直前の信号を見たのですが、きれいな信号で問題なさそうです。  タイムラグがある原因を教えてください。どうかよろしくお願いします。

  • 超音波センサのよしあし

    測定距離5mぐらいまでで人の位置や距離を測定しようと思っています。 メーカの良し悪しもさることながら、測定方法について気を付ける点なども 情報をいただきたいと思います。 また超音波センサを使用した距離測長用のボードなどのメーカでいいところがあったら、 教えてください。

  • パララックス社超音波センサの使い方

    パララックス社の超音波センサーhttp://akizukidenshi.com/catalog/g/gM-05400/ の使い方について教えてください。 信号線に5μS(?)のパルスを入れると距離に応じたパルス幅が帰ってくるのでパルス幅(時間)をはかり音速(348m/s)で時間に相当する距離を算出するという方法かと思います。 この場合の出力と入力のタイミングはどのようにしたら良いでしょうか? また入力値には出力してからの入力に切替の時間など補正は必要ないでしょうか? データシートが英文だったので確証が持てませんでしたのでお願いいたします。

  • 超音波センサーのシリアル通信機能が使えません。

    初めまして、電気工学科の学生です。最近超音波センサーを使う実験があり、しかし手元の物がうまく動きません、どこに問題があるか教えていただきたいです。どうぞよろしくお願いします。 使用する物: 超音波センサ:LV-MAXSONAR-EZシリーズ画像の物 パソコンとの接続:USB-シリアルコンバータ経由 ソフト:ハイパーターミナル 現状:LV-MAXSONAR-EZセンサーは電圧、パルス、シリアル出力に対応しています。 http://www.maxbotix.com/uploads/LV-MaxSonar-EZ0-Datasheet.pdf <ー此方のデータシートを参考にRXを5Vと短絡入れたらTXはオシロスコープ使って距離相当の電圧値を測定できました。しかしシリアル通信が上手く行きません。 GND +5 TX RX AN PW BWをそれぞれUSBシリアルコンバータのGND +5 TX RX(5とRXを短絡)に直結して、パソコンのハイパーターミナルでどうさ確認をしたいのですが何も反応がありません。 ハイパーターミナルの設定は9600,N,8,1,Nです。 どこに問題がありそうでしょうか?よろしくお願いします。かなり急いでいます。

  • SH7144でパルス幅を測定したい。

    マイコン初心者です。 SH7144でPIOに接続された信号のパルス幅を測定したいです。 ネットで検索をしてH8-3048のサンプルプログラムを見つけたのですが、 SH7144への変更のしかがたが分かりません。 どなたか分かる方がいましたらお教えください。 初心者ですので、具体的に教えていただけると助かります。 ちなみに、下記がネットで見つけたH8-3048でのプログラムです。 宜しくお願いいたします。 /* メイン関数************************************************/ int main(void){ long counter; P1.DDR = 0xff; // port1出力に設定 表示LED PA.DDR = 0x00; // portA入力に設定 パルス入力用 ITU1.TCR.BYTE = 0x23; // GRAインプットキャプチャ,カウンタクリアGRA clock 1/8 ITU1.TIOR.BYTE = 0xCD; // GRA立下り,GRB立ち上がりインプットキャプチャ ITU.TSTR.BIT.STR1 = 0; // カウント停止状態 while(1){ while(PA.DR.BIT.B4 == 0){} // 入力パルス立ち上がり検知 ITU.TSTR.BIT.STR1 = 1; // ITU1 TCNTカウント開始 while(ITU1.TSR.BIT.IMFA == 0){} // GRAキャプチャ,パルス立下り検知 ITU1.TSR.BIT.IMFA = 0; // フラグをクリア ITU.TSTR.BIT.STR1 = 0; // ITU1 TCNTカウント停止 counter = ITU1.GRA; // カウント値の取得 P1.DR.BYTE = counter >> 4; // 8bitシフトさせP1に表示 } }

  • SH7144で汎用入力のパルス幅を測定したい。

    マイコン初心者です。 SH7144で汎用入力のパルス幅を測定したいです。 どなたか分かる方がいたら教えてください。 下記の様にプログラムしてみたのですが、timは、"0"となってしまいます。 他にも何か設定が必要なのでしょうか? または、汎用入力をトリガにタイマーを使用することはできないのでしょうか? ====================================================== unsigned short tim; // 設定 MTU1.TCR.BYTE = 0x03; // カウンタクリア禁止,内部CLK=PΦ/64 MTU.TSTR.BIT.CST1 = 0; // カウント停止 MTU1.TCNT = 0; // カウントクリア // タイマスタート MTU.TSTR.BIT.CST1 = 1; // カウント開始 // パルス監視(HIGHを測定) while(!PF.DR.BIT.B7); // TRG=H while( PF.DR.BIT.B7); // TRG=L // タイマー停止 MTU.TSTR.BIT.CST1 = 0; // カウント停止 tim = MTU1.TCNT; // カウント値取得 ======================================================

  • パルスエコー法

    パルスエコー法(超音波パルス反射法)を使うと、パルスを送出してから、そのパルスが障害物に反射して、その反射波を受信するまでの時間を計測してその時間から距離を算出することができますよね。これをロボットの移動時の障害物避けに利用するとして、障害物が球体だったりすると、反射したパルスはロボットに戻ってこないで、ロボットは測定方向に障害物がないと判断してしまい、無限の距離だと思ってしまいますよね。そこで、そういったアクシデントの時にインパルス性雑音が発生してしまう理由を教えてください。お願いします。

  • ATTINY2313でラジコンパルスの測定

    AVRのAttiny2313を使ってヘリラジコンの受信機から出ているパルス幅を測定したいのですが、具体的にどのように行うのかがわかりません。 割り込みを使って処理するのでしょうか。また、具体的なプログラムはどのようになるのでしょうか。 Attiny2313は内蔵クロック8MHzで動作しています。また、入力するパルス信号は1信号です。

  • H8/3069Rでパルス時間間隔測定

     放射線をGM管を使ってパルス信号に変換し、そのパルス時間間隔を測定しようとしています。  パルス信号に変換するまでは成功し、H8/3069Rを搭載したイエローソフト社のYH3069RU-1ボードを購入してマイコンの使い方を学んだのですが、マイコンだけでなく電気回路においても初心者なのでボードのどの機能を用いて回路を設計すればいいのかわかりません。

専門家に質問してみよう