# 超音波測距實習

這次的主角，HC-SR04，正反面的照片如下：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LQ1zKsLlQq1VcOnf2OC%2F-LQ1zvkY6oIYzTX_RFnp%2F2017-12-25-09.24.29.jpg?alt=media\&token=dc27c4a8-6552-41f6-a3d4-26bd9fed0cea)

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LQ1zKsLlQq1VcOnf2OC%2F-LQ2--AbrIa_ZMvVYyOk%2F2017-12-25-09.24.38.jpg?alt=media\&token=272a5b14-9ead-4c6f-8266-33cbfa579634)

它的4支接腳中，Vcc需要5V的電源，而Gnd當然直接接地就可以了。另外，Trig和Echo可以分別接到P0和P1，到時候在積木中可以指定。由於micro:bit只能供應3.3V的電源，所以我們使用了外部的電源，此外，由於我們打算把結果顯示在前一單元的OLED上，因此之前的電路就留著，不需要重新，但是我們把電源的部份都連接到麵包板上的電源匯流排了。

電路連接的樣子如下所示：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LQ1zKsLlQq1VcOnf2OC%2F-LQ2-y3B7rpWT9lYdEoH%2F2018-10-30%2011.27.09.jpg?alt=media\&token=d8d867d2-b476-4633-955d-1c47bd3f8f3d)

電路連接完畢之後回到micro:bit的程式開發環境中，也是一樣到擴展積木的地方，然後輸入sonar再搜尋，即可看到如下所示的畫面：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LQ1zKsLlQq1VcOnf2OC%2F-LQ20Nw4ywp1DsLuE8bq%2F2018-10-30_11-29-57.png?alt=media\&token=75afabb2-9162-4cb6-848a-4daca8b6b089)

我們選用左邊這個，過一會兒就可以在環境中看到Sonar的積木了，如下所示：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LQ1zKsLlQq1VcOnf2OC%2F-LQ20azGJlI9ceDhrtN6%2F2018-10-30_11-30-59.png?alt=media\&token=3eaa6f65-790f-4282-b313-b409875ddb94)

Sonar只有一個積木，就是直接取得想要的資訊：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LQ1zKsLlQq1VcOnf2OC%2F-LQ20qfAjUXWOGhdY-ln%2F2018-10-30_11-32-00.png?alt=media\&token=2fb09095-52bd-45ae-930f-e0a7b9f7f888)

只要設定trig以及echo的連接接腳以及想要的傳回值，就可以直接把它指定到某一個變數中再拿出來使用即可。以下是我們的測距程式：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LQ1zKsLlQq1VcOnf2OC%2F-LQ21U6wN9lye7F16bt8%2F2018-10-30_11-34-48.png?alt=media\&token=42f25876-e827-4b11-8725-7e642ac3b6cb)

這個程式每隔2秒鐘就會更新一次偵測到的距離，非常方便喔。

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-LQ1zKsLlQq1VcOnf2OC%2F-LQ221QkaQgH2PnIHz_Q%2F2018-10-30%2011.36.12.jpg?alt=media\&token=7803972d-327a-426c-8ebc-1a325365e032)
