Japaninoで超音波距離計を作ってみる。Maruduinoまたは(◎)の回路図公開 [ATmarquino Arduino]
PDF版回路図はここからダウンロードします。
例によってローカルにダウンロード後、拡張子をpdfに修正してお使いください。
※スケッチと動作している様子は以下のリンク先をご覧ください。
http://hamayan.blog.so-net.ne.jp/2010-05-19
Arduinoのtoneライブラリを使って40KHzの搬送波を生成します。生成した搬送波はArduinoからの出力のままでは5Vpしかありませんので、増幅する為にRS232CドライバーICを利用します。これだと10Vp以上の振幅にする事ができますので、その出力を送信モジュールに入力します。
この振幅を大きくする回路は、トランジスタ技術2010年3月号別冊付録の中の回路を参考とさせていただきました。
受信センサーは2つのアンプで増幅された後、ダイオードで検波されます。超音波を受信するとコンパレータの非反転入力端子に入力する信号がGNDレベルから山が立ち上がりますので、それをオペアンプで構成したコンパレータで検出します。
と、この検出した変化点をArduino側でポーリングで見付け、送信時間から往復の距離を算出する訳ですね。
ソフトウエア的には、40KHzを搬送波とする送信パルスを短時間だけ送出します。※あまり長いと送出している間に反射して戻ってきてしまう為。但し、短すぎると到達距離自体も短くなってしまう。
この送信の時にも受信センサー側はそのパルスを拾ってしまい誤検出しますので、送信の間だけコンパレータの出力をキャンセルするのがD1のダイオードを通したポートの出力です。HIGHを出力している間、コンパレータはLOWを出力し続けます。
送信パルス送出後は、D1に接続されているDIGITAL5をLOWに落として置きます。
その後ポーリングで立ち上がりを検出し、経過時間を求めます。
但し反射波が検出できないと無限ループとなりかねないので、適当なタイミングでループを抜ける処理も必要ですね。大体3m先の往復時間が約18msなので、それよりちょっと多目の時間で抜けると良いでしょう。
例によってローカルにダウンロード後、拡張子をpdfに修正してお使いください。
※スケッチと動作している様子は以下のリンク先をご覧ください。
http://hamayan.blog.so-net.ne.jp/2010-05-19
Arduinoのtoneライブラリを使って40KHzの搬送波を生成します。生成した搬送波はArduinoからの出力のままでは5Vpしかありませんので、増幅する為にRS232CドライバーICを利用します。これだと10Vp以上の振幅にする事ができますので、その出力を送信モジュールに入力します。
この振幅を大きくする回路は、トランジスタ技術2010年3月号別冊付録の中の回路を参考とさせていただきました。
受信センサーは2つのアンプで増幅された後、ダイオードで検波されます。超音波を受信するとコンパレータの非反転入力端子に入力する信号がGNDレベルから山が立ち上がりますので、それをオペアンプで構成したコンパレータで検出します。
と、この検出した変化点をArduino側でポーリングで見付け、送信時間から往復の距離を算出する訳ですね。
ソフトウエア的には、40KHzを搬送波とする送信パルスを短時間だけ送出します。※あまり長いと送出している間に反射して戻ってきてしまう為。但し、短すぎると到達距離自体も短くなってしまう。
この送信の時にも受信センサー側はそのパルスを拾ってしまい誤検出しますので、送信の間だけコンパレータの出力をキャンセルするのがD1のダイオードを通したポートの出力です。HIGHを出力している間、コンパレータはLOWを出力し続けます。
送信パルス送出後は、D1に接続されているDIGITAL5をLOWに落として置きます。
その後ポーリングで立ち上がりを検出し、経過時間を求めます。
但し反射波が検出できないと無限ループとなりかねないので、適当なタイミングでループを抜ける処理も必要ですね。大体3m先の往復時間が約18msなので、それよりちょっと多目の時間で抜けると良いでしょう。
Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ
- 作者: 小林 茂
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/05/27
- メディア: 大型本
2010-05-19 21:53
nice!(0)
コメント(0)
トラックバック(0)
コメント 0