超聲波模塊轉載

轉載http://bbs.eeworld.com.cn/thread-522394-1-1.html~  
       相信很多朋友都用過一款HC-SR04超聲波測距模塊,這個模塊售價很平民,某寶上僅4RMB左右,能測3-400cm,真的很不錯的。
      前一段時間,偶爾看到一款超聲波測距模塊(m**eblock的),控制方式與HC-SR04有所不同,硬件上是大同小異的,但售價非常有逼格
      本菜出於好奇,在網上找了很久的資料,大多數都是講怎麼使用HC-SR04模塊的,而我想找的資料是如何製作HC-SR04這個模塊,關鍵是模塊中STC單片機的程序。

1、原理部分
      HC-SR04這個模塊是2線制的(不包含電源線),
Echo與Trig,Trig負責接收10us以上的觸發信號,Echo則是輸出距離信號;下面是時序圖:

 而m**eblock的超聲波模塊採用1線制(不包含電源線),,Echo與Trig和二爲一(SIG),在一定程度上節省了IO資源,SIG在收到觸發信號後採集並輸出距離信號,其時序圖與HC-SR04類似,使用起來略有不同,需要注意IO模式的轉換,而如果使用m**eblock官方提供的庫(Arduino)就非常簡單了; 關於HC-SR04系列超聲波傳感器的介紹網上有很多的帖子,本菜不贅述了。
2、硬件部分:
      下面就先看一個原理圖吧,由於本菜的硬件不行,只是簡單的分析一下,有說錯的地方,歡迎大神們吐槽!

左邊是m**eblock的原理圖,右邊是HC-SR04的原理圖,可以看到,硬件部分的實現方式是大同小異的,下面以m**eblock爲例。

      這裏主要分成三個部分:

      1、主控IC部分:完成觸發信號的檢測、產生8個40KHz脈衝信號、檢測回波信號、輸出距離信號等;

      2、發射部分:由主控IC產生8個40KHz脈衝信號後,經過MAX232放大後驅動超聲波發射端;

      3、接收部分:將微弱的回波信號放大,送到主控IC的IO端檢測回波。

 

3、軟件部分
下面是程序思路,圍繞STC展開,說一下STC每個管腳的作用~
1、P30(SIG): 負責監測觸發信號;
   配置其爲高阻輸入,可以輪詢其高低電平並使用Timer0(2),也可以輪詢高電平後使用INT4低電平,完成一個觸發脈衝的檢測(10us以上),一旦檢測到觸發信號,此管腳配置爲推輓輸出,並拉低,當8個40KHz信號發送完成後將其拉高,等到回波到來。

2、P33(T2)、P32(T1):8個40KHz脈衝信號;
   配置爲推輓輸出,當SIG檢測到觸發信號後,其同時發送8個40KHz信號,注意這兩個信號存在半個週期的相位差(重要!),發射完成之後將SIG拉高。

3、P31(T_PWR):MAX232供、斷電;
   配置其爲推輓輸出;通過NPN控制232,低電平有效,只在8個40KHz脈衝信號時給232供電,防止雜波出現,232在這裏起到一個驅動放大功率的作用;

4、P34(PWM): 比較電壓;
   一開始我以爲這是一個PWM信號,後來發現我錯了,可以看一下電路圖中的放大器A,是作爲一個比較器使用的。其實只要在檢測回波信號的時候將其拉高就行了。(目前我是這樣做的)

5、P35(CHK):回波檢測;
    配置爲高阻輸入;可以利用INT3來檢測下降沿並使用Timer2(0)計算週期,並檢測回波頻率,判斷是否爲發射出去的40KHz信號,檢測完成後將SIG拉高,完成一次測量。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章