掌控板教程 | 掌控超聲波傳感器?可能沒你想的那麼簡單!

問題來源

在創客教育教學過程中,超聲波傳感器是最常用的元器件。但是一不小心也容易出現一些問題,甚至某些問題還比較隱蔽,沒有經驗的話可能要查很久才能查到問題所在。

前幾天就有幾個老師來問我,爲什麼掌控板連接超聲波傳感器,測出來的距離總是不準呢?如下圖所示,測出來的距離,四捨五入後基本都是爲 0。

超聲波測距不正常

問題探究

這個問題很有趣,現在大家習慣了 Arduino,在玩 Arduino 的時候很少會出現這個問題,不出現這個問題的話可能大部分人都沒意識到。正好前兩天拿到了掌控板的擴展板“掌控寶”,就拿超聲波傳感器來獻祭一下吧。

我們先來看一下上面動圖中對應的程序,該程序是在 mPython X 0.3.3 版本上編寫。好像也沒啥毛病啊?課時在掌控板上爲啥就不行了呢?難道是掌控板的軟件底層有 bug?

超聲波測距程序

我們來看一下 mPython X 圖形化編程軟件上對應的超聲波模塊型號:HC-SR04,這也是我們在教學中最常用超聲波傳感器型號。

mPythonX超聲波模塊

HC-SR04 超聲波模塊外觀對應如下圖所示:

HC-SR04超聲波傳感器模塊

再來看一下這個模塊的技術參數,從下表中可以看到,它的工作電壓一欄寫着 5V,好像也沒有什麼問題啊,Arduino 的工作電壓不就是 5V 麼?

5V超聲波模塊

可是再回到掌控板,我們從掌控板的官方 wiki 上可以看到它的技術參數,在它的“工作電壓”這一欄上赫然寫着 3.3V,似乎找到了問題所在。

掌控板技術參數

問題解決

那有沒有辦法解決這個問題呢?一般有幾個辦法:

  • 方法一(不推薦):使用一個 3.3-5V 電壓轉換模塊,將它們的電壓轉換一致即可,可是這種方法對課堂教學來說可能很不方便;
  • 方法二(不推薦):使用引腳電壓是 5V 的擴展板,但是也可能會跟其他傳感器衝突;
  • 方法三(推薦):使用同時兼容 3.3V、5V 的寬電壓版超聲波傳感器模塊或其他兼容掌控板的超聲波傳感器模塊。

我們可以從淘寶上找到相應的模塊,價格和普通的 HC-SR04 超聲波模塊也差不多,這種超聲波模塊,一般型號名稱爲 HC-SR04+,後面多了一個“+”號,但有些店家的模塊,名稱上面也沒有“+”號,具體還得看技術參數。

寬電壓超聲波傳感器

當然市面上還有其他兼容 3.3V 的超聲波模塊,此處僅以寬電壓版本的 HC-SR04+ 爲例。同樣的程序,換上 HC-SR04+ 這個超聲波模塊後,效果就正常了,如下圖所示。

超聲波測距正常

擴展思考

其實這個問題除了在掌控板上會出現之外,在使用 micro:bit 的過程中我們可能也會碰到類似的問題,另外在其他基於 ESP32 或 ESP8266 芯片的主控板上也有同樣的問題,因爲這些主控板的工作電壓都是 3.3V。

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