目次>5章 第2ステップ(色々な実験) (25)超音波を扱う(距離を測定)
超音波を扱う
− 距離を測定 −
更新日2008.7.5
前のページで、超音波を使って物体までの距離を測れる事が確認できました。
今回は、実際に距離を測って液晶ディスプレイ(LCD)に表示して見ましょう。
回路図
|
・ |
前のページでは送信回路のみで動作を確認しましたが、今回は受信回路と表示回路を追加します。
受信回路は、超音波受信器の微小信号をオペアンプで増幅します。最後にダイオードとコンデンサで、整流・昇圧・平滑し、PICがHレベルと認識する2V以上に増幅します。
この信号をPICのRB4に入力します。RB4はPORTBピン変化割込みで使用し、超音波の反射波を検出します。
表示回路にはLCD(液晶ディスプレイ)を使います。
LCDのビジーフラグをチェックしない方法にしましたので、R/WはGNDに接続します。また、PICのピンに余裕がありませんので、LCDの制御は4ビットモードにしました。
LCDの使い方は、こちらを参考にして下さい。
【参考】
オペアンプ2つで2V以上まで増幅していますが、2つ目のオペアンプをコンパレータとして使う方法もあります。(今回は試していませんが)
|
【参考】
RB4のピン変化割込みではなくRB0/INT割込みを使いたかったのですが、INT割込みの入力がシュミットトリガで4V以上必要なのでRB4(ピン変化割込み)にしました。
ピン変化割込みはTTL入力で、2VでHレベルと認識します。
2つ目のオペアンプをコンパレータにすれば解決できるかも知れません。
|
|
この回路の波形
|
|
プログラムの説明に入る前に、この回路の波形を見ておきましょう。
緑は、RA0(送信側)/黄色はRB4(受信側)の波形です。
反射物は、235cm先の壁です。
受信側は、前のページのようなノイズは無くなり、必要な信号のみになっています。
-
それでは、受信側(黄色)に注目して見ましょう。
- (1)送信直後に受信波がある(小さな山)
- これは反射波ではなく、送信器からの超音波が直接受信器に回り込んでいるものです。
無視する必要がありますが、PICがHレベルと認識する電圧は2V以上ですので、特に意識する事なく無視できます。
- (2)送信から13.5ミリ秒後に受信波がある(大きな山)
- これが235cm先の壁から反射してきた反射波です。
約3VですのでPICでHレベルと識別できます。
|
プログラムの考え方
|
|
|
| 超音波送受信
|
|
下のイメージ図を使ってプログラムの考え方を説明します。
-
-
送信する超音波のパルス幅(12.6μ秒)は、TMR0割込みにより作ります。
1回当たりの超音波送信は、パルス20サイクル分です。そして、51.6ミリ秒毎に送信します。
尚、超音波送信中はCPUに余裕が無いので、他の処理は行わないようにします。
超音波送信関連は、前のページも参考にして下さい。
-
1回の超音波送信完了時、ピン変化割込みを有効にして超音波受信を待ちます。
この間、TMR0割込みをカウントし、距離測定を行います。
TMR0割込み間隔は、28.8μ秒に変更しておきます。(28.8μ秒は、音が1cm進む時間)
-
超音波送信処理中はCPUに余裕がありませんので超音波送信に専念し、LCDの制御などは超音波を送信していない時に行うようにします。
|
| 割込み処理
|
|
- 上でも一部触れましたが、今回のプログラムでは2つの割込みを使います。
- ・TMR0割込み
- ・PORTBピン変化割込み
- (1)TMR0割込み
-
TMR0割込みは、超音波のパルス幅の時間(12.6uS)と、超音波送信から反射波を受信するまでの距離測定(28.8uS)の2種類の時間を使います。
下の図を参考にして下さい。
- (2)PORTBピン変化割込み
-
ピン変化割込みは、反射波受信を検出するために使います。
1回の超音波送信完了時に、ピン変化割込みを有効にし、ピン変化割込み発生(反射波受信)時にピン変化割込みを禁止します。
こちらも下の図を参考にして下さい。
-
|
プログラム
|
|
概略処理フローを載せておきます。
-
-
今回のプログラムはこちらです。
|
動作確認
|
|
こちらは、ブレッドボードに組んで実験しているところです。
-
精度は以下の通りでした。(2008年5月18日11時,気温22度C,曇り,屋内)
-
物体 | 距離 | 表示 | 誤差
| 箱ティッシュ | 8cm | 8 | 0
| 箱ティッシュ | 10cm | 10 | 0
| 箱ティッシュ | 20cm | 20 | 0
| 箱ティッシュ | 30cm | 30 | 0
| 箱ティッシュ | 100cm | 100 | 0
| 木のタンス | 233cm | 234 | +1cm
| ふすま | 318cm | 319 | +1cm
|
この表には載せていませんが、5m以上まで測定可能でした。6〜7mまで行けそうでしたが、家の中に障害物が存在しない空間が無かったので5m程度までしか確認していません。
実用には充分だと思いますが、温度が20度C以下や30度C以上の場合は温度補正も考慮が必要です。
例えば、357cmの距離測定では、温度が10度C変わると6cmの誤差になります。
|