« モータードライブ回路設計 | トップページ | Arduinoの処理速度 »

2010年11月28日 (日)

超音波センサー…・・・・・・ ・ ・ ・

超音波センサーを
「はじめてのPSoCマイコン」
という本のサンプルプログラムを用いて作ってみたのですが、どう頑張っても50cmくらいまでしか測定できません…
一瞬であれば80cmくらいも測定できますが、それ以上の長さは無反応なのです・・
ただ、50cmくらいまでの測定の精度はそんなに悪くはありません。

本にはきちんと160cmくらい測定できている(と書いてある)のですが・・・

う~ん
どうしてうまくいかないか分かりません・・・

思いついた原因①
送信用超音波センサーにつなげるためのピンと受信用超音波センサーにつなげるためのピンを1回つないでしまったことがあります。
あとで分かったのですが、その時にAGND(受信用超音波センサーにつなげるためのピン)とVDD,VSS(送信用超音波センサーにつなげるためのピン)がショートしたのではないかと・・
その1回のショートでマイコン内の線が切れて受信もしくは送信が鈍っているのではないかと・・
ただ、50cmくらいまではきちんと測定できていることから考えると、これが原因ではない気がします。

思いついた原因②
本の超音波センサーと自分が使っている超音波センサーが違うから。
この原因は考えられそうです。

 

思いついた解決方法①
PSoCマイコンを交換してみる
ただ今はPSoCマイコンを1つしか持っていないので購入しないとできません。

思いついた解決方法②
本で用いられている超音波センサーと同じものを使う。
ただ、僕は32.8kHzの超音波センサーを作るのを目的としているため、この解決方法だと40kHzしか使えなくなってしまいます。

思いついた解決方法③
遠い距離が認識できないようなので
送信してから一定の時間が経ったらPGAの増幅率を引き上げる

そこでPGAの増幅率だけを上げてみると、送信した超音波の反響を受信してしまうみたいで、ずっと14cmになってしまいました。
そこで不感帯(反響による誤動作を防ぐため、送信してから一定時間受信しないようにする期間)を長くして同じくPGAの増幅率を上げた状態でやってみると、120cmくらいまで測定出来るようになりました^^;ただ不感帯を長くしたために、測定可能な最短距離が18cmになってしまいました。
以上の結果から言うと解決方法③は有効な気がします。

うーん・・
一定の時間が経ったらPGAの増幅率を引き上げるのは難しそうです・・・

« モータードライブ回路設計 | トップページ | Arduinoの処理速度 »

PSoCマイコン」カテゴリの記事

ロボットのハードウェア」カテゴリの記事

コメント

なかなか難しいですね。
原因①は測定できているのなら大丈夫でしょう。送信側に耳近づけたら音してます?もちろん超音波は聞こえませんが,送信してればなんかのノイズが聞こえるはずです。
原因②は,32.8kHzのセンサを使ってるの?それならBPFもPWM8_1も32.8kHzで作ってる?(もちろん合わせてるとは思いますが)
もし40kHzのセンサなら,センサの種類で感度が違うことはありましたよ。秋月の黒い方の小さい奴(150円)は80cm位までしか読めませんでした。あとは送信パルス長とデッドバンド,センサの配置の微調整しかないでしょうか。
短距離用のパルスと長距離用のパルスを交互に使って全範囲を調べるとかできるかもしれませんね。32kHzとか50kHzとかの超音波ができれば干渉問題はほとんどないでしょうから,頑張って下さいね。

ちなみに,うちでは秋月の40kHzの銀色のやつ(今売ってる送受信セット300円のではなく,一つ前の売り切れた600円の奴)を使っていますが,2mくらいまで問題なく読めています。

いつも詳しくコメントをしていただきありがとうございます。

> 秋月の黒い方の小さい奴(150円)は80cm位までしか読めませんでした。
まさにこれのことです!!!
自分だけでなくて安心しました。

ただ、32.8kHzの超音波センサーを用いても15cmから1mくらいまでしか測定できなかったので、PGAの増幅率をCPUから上げてやるプログラムにして、調整していきたいと思います。
目標は32.8kHzと25kHzの3cmから3mまで測定可能な超音波センサーを作ることです。がんばります!

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1389908/37881322

この記事へのトラックバック一覧です: 超音波センサー…・・・・・・ ・ ・ ・:

« モータードライブ回路設計 | トップページ | Arduinoの処理速度 »