<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產(chǎn)品分類

      當前位置: 首頁 > 傳感測量產(chǎn)品 > 工業(yè)傳感器 > 超聲波傳感器

      類型分類:
      科普知識
      數(shù)據(jù)分類:
      超聲波傳感器

      樹莓派 超聲波傳感器:樹莓派3B–超聲波測距(HC-SR04)的使用

      發(fā)布日期:2022-10-09 點擊率:83


      樹莓派 超聲波傳感器:樹莓派3B--超聲波測距(HC-SR04)的使用  第1張

      樹莓派 超聲波傳感器:樹莓派3B--超聲波測距(HC-SR04)的使用

      ?

      1.組件外觀:

      ?

      HC-SR04 模塊可以測量 3cm - 4m 的距離,精確度可以達到 3mm。它包含了超聲波發(fā)射器、接收器和控制電路三部分。

      ?

      2.接線方式

      一共兩個電源引腳和兩個控制引腳。
      Vcc 和 Gnd 接 5v DC 電源,但不推薦用獨立電源給它供電,應使用樹莓派或單片機的 GPIO 口輸出 5v 和 Gnd 給它供電。不然會影響這個模塊的運行。
      Trig 引腳用來接收樹莓派的控制信號。接任意 GPIO 口。
      Echo 引腳用來向樹莓派返回測距信息。接任意 GPIO 口。
      (注意 Echo 返回的是 5v信號,而樹莓派的 GPIO 接收超過 3.3v 的信號可能會被燒毀,因此需要加一個分壓電路,博主沒有加,直接用杜邦線連的)。

      ?

      3.工作原理

      (1)樹莓派向 Trig 腳發(fā)送一個 10us 的脈沖信號。
      (2) HC-SR04 接收到信號,開始發(fā)送超聲波,并把 Echo置為高電平,然后準備接收返回的超聲波。
      (3) HC-SR04 接收到返回的超聲波,把 Echo 置為低電平。
      (4)Echo 高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間間隔。
      (5)計算距離:
      ? ? 距離(單位:m) ?= ?(start - end) * 聲波速度 / 2?
      ? ? 聲波速度取 343m/s 。
      ? ? 然后再把測得的距離轉換為 cm。
      ? ? 距離(單位:cm) = (start - end) * 聲波速度 / 2 * 100?
      ? ? ? ? ? ? ? ? ? ? ? ? ? ? = (start - end) *

      4、代碼

      ?

      14、新手入手樹莓派教程--DHT11傳感器的使用
      5、運行結果

      ?

      ?

      致謝:

      1、樹莓派-超聲波測距(HC-SR04)的使用(Python)

      2、樹莓派控制超聲波傳感器(C++)

      3、基于樹莓派平臺的超聲波測距編程實現(xiàn)(C實現(xiàn))

      4、樹莓派3 + HC-SR04超聲波測距模塊(好)
      樹莓派 超聲波傳感器:樹莓派3B--超聲波測距(HC-SR04)的使用  第2張

      樹莓派 超聲波傳感器:樹莓派B+實戰(zhàn)之一 超聲波測距傳感器HC-SR04

      ? ?超聲波測距應用廣泛,本次實戰(zhàn)通過樹莓派B+連接HC-SR04超聲波測距傳感器,用python GPIO控制傳感器完成距離測定,并將距離顯示在屏幕上。

      硬件部分:
      1,HC-SR04超聲波測距傳感器
      ? ? ? ?1.1 HC-SR04超聲波測距傳感器硬件如下圖
      ? ?

      該傳感器有4個引腳:

      VCC,超聲波模塊電源腳,接5V電源即可

      Trig,超聲波發(fā)送腳,高電平時發(fā)送出40KHZ出超聲波

      Echo,超聲波接收檢測腳,當接收到返回的超聲波時,輸出高電平

      GND,超聲波模塊GND

      ?

      ?

      1.2 HC-SR04超聲波模塊工作原理:
      1)采用IO口TRIG觸發(fā)測距,給至少10us的高電平信號;
      2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;
      3)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340M/S))/2;

      ?

      ?

      ?

      1.3?HC-SR04超聲波模塊使用方法
      ?

      初始化時將trig和echo端口都置低,首先向給 trig 發(fā)送至少10 us的高電平脈沖(模塊自動向外發(fā)送8個40K的方波),然后等待,捕捉 echo 端輸出上升沿,捕捉到上升沿的同時,打開定時器開始計時,再次等待捕捉echo的下降沿,當捕捉到下降沿,讀出計時器的時間,這就是超聲波在空氣中運行的時間,按照 測試距離=(高電平時間*聲速(340M/S))/2 就可以算出超聲波到障礙物的距離。

      ?

      ?

      2、樹莓派B+ 引腳

      ?

      3. ?樹莓派與超聲波模塊連線圖
      ?
      ?

      ? ? ?HC-SR04 ? ? ? ? ? ? ? ? ?

      ? ? Raspberry Pi B+ Physical ? ? ? ? ? ? ?

      ? ? ?說明 ? ? ? ? ? ?

      VCC

      2

      +5V

      Trig

      38

      GPIO.20

      Echo

      40

      GPIO.21

      GND

      39

      GND

      ?

      ?

      ?

      軟件部分:
      1、確認python,python GPIO庫是否正確安裝
      ?在Raspbian中已經(jīng)預裝了Python2.7.9,直接在命令行輸入python即可看到如下信息
      pi@raspberrypi:~ $ python
      Python 2.7.9 (default, Mar ?8 2015, 00:52:26)
      [GCC 4.9.2] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>>

      ?

      使用Python控制GPIO時,常用的是raspberry-gpio-python模塊,在2016-05-27-raspbian-jessie版本的系統(tǒng)鏡像中,預裝了最新的版本v0.6.2,可以在Python中輸入下列命令查看:
      >>> import RPi.GPIO as GPIO
      >>> GPIO.VERSION
      '0.6.2'
      >>>

      ?

      2、創(chuàng)建一個目錄hcsr04
      pi@raspberrypi:~ $ cd /home/pi
      pi@raspberrypi:~ $ mkdir hcsr04

      ?

      pi@raspberrypi:~ $ cd hcsr04

      3、創(chuàng)建python程序
      在hcsr04目錄下創(chuàng)建一個名為hcsr04.py 的程序文件:

      ?

      import RPi.GPIO as GPIO
      import time
      Trig_Pin = 20
      Echo_Pin = 21
      GPIO.setmode(GPIO.BCM)
      GPIO.setup(Trig_Pin, GPIO.OUT, initial = GPIO.LOW)
      GPIO.setup(Echo_Pin, GPIO.IN)
      time.sleep(2)
      def checkdist():
      ? ? GPIO.output(Trig_Pin, GPIO.HIGH)
      ? ? time.sleep(0.)
      ? ? GPIO.output(Trig_Pin, GPIO.LOW)
      ? ? while not GPIO.input(Echo_Pin):
      ? ? ? ? pass
      ? ? t1 = time.time()
      ? ? while GPIO.input(Echo_Pin):
      ? ? ? ? pass
      ? ? t2 = time.time()
      ? ? return (t2-t1)*340*100/2
      try:
      ? ? while True:
      ? ? ? ? print 'Distance:%0.2f cm' % checkdist()
      ? ? ? ? time.sleep(1)
      except KeyboardInterrupt:
      ? ? GPIO.cleanup()

      ?

      然后執(zhí)行該程序
      pi@raspberrypi:~ $ ?python hcsr04.py

      ?

      驗證測試
      如圖在超聲波測距儀前放在障礙物,前后移動超聲波測距儀,電腦屏幕上會顯示測得的距離,與直尺量的距離對比,可發(fā)現(xiàn)誤差不大。完全可以勝任小車壁障等用途。

      ?

      ?

      ?

      樹莓派 超聲波傳感器:樹莓派控制HC-SR04超聲波模塊測距(新手向+C語言向)

        因為作業(yè)要求使用c語言代碼,這里先附上一段摘自網(wǎng)上的代碼
        感謝KalaerSun的c語言代碼,摘自
      1 #include

        既然我們已經(jīng)讀懂了代碼,接下來我們就是硬件方面的鏈接:
        我們先來了解一下各個硬件分別開來的屬性。
        1.樹莓派:
          樹莓派的歷史我們在此不做過多的講解,其他硬件也暫且不講,我們先來看一下樹莓派上的引腳。
          拿起樹莓派,將USB接口向下,面向你那起來,你會發(fā)現(xiàn)樹莓派右邊有兩列一共40個引腳,下邊這部分告訴了我們這些引腳各自的功能。
      +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
      | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
      +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
      |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
      |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |
      |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
      |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT5 | TxD     | 15  | 14  |
      |     |     |      0v |      |   |  9 || 10 | 1 | ALT5 | RxD     | 16  | 15  |
      |  17 |   0 | GPIO. 0 |  OUT | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
      |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
      |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
      |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
      |  10 |  12 |    MOSI | ALT0 | 0 | 19 || 20 |   |      | 0v      |     |     |
      |   9 |  13 |    MISO | ALT0 | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
      |  11 |  14 |    SCLK | ALT0 | 0 | 23 || 24 | 1 | OUT  | CE0     | 10  | 8   |
      |     |     |      0v |      |   | 25 || 26 | 1 | OUT  | CE1     | 11  | 7   |
      |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
      |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
      |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
      |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
      |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
      |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
      |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
      +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
      | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
      +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
          我們重點來介紹這次試驗用到的兩種引腳:
            ①.電源引腳:分為3.3V / 5V / 0V三種,其中0V代表接地
            ②.GPIO輸入輸出接口:這是非常重要的一類引腳,上圖中標明了GPIO的就是這類接口,樹莓派GPIO接口只能輸入輸出數(shù)字信號(0&1等)
        2.超聲波模塊
          超聲波模塊的種類有很多,我們此處選擇的模塊型號為HC-SR04,本模塊的優(yōu)點為性能穩(wěn)定,測度距離精確,模塊高精度,盲區(qū)小。探測距離為2cm-450cm。
          
          我們可以看到它一共有四個引腳:
            Vcc:接5V電源(接1號引腳)
            Trig:輸出端口(接16號引腳)
            Echo:輸入端口(接18號端口)
            Gnd:接地端(接6號端口)
        3.杜邦線
           杜邦線有三種類型,分別為公對母,母對母,公對公。我們這里需要的是四條母對母的杜邦線。
        
          接下來我們就用杜邦線將超聲波模塊與樹莓派連接,連接時一定要注意引腳之間的對應關系。連接成功后如下
          

          連接成功后我們就開始測試程序了,先將程序編譯成可執(zhí)行的二進制文件
          
          之后輸入ls 查看,我們發(fā)現(xiàn)有編譯成功后的disMeasure文件
          
          之后我們輸入sudo    開始執(zhí)行程序,程序運行效果如下。
          
          到此,我們的超聲波模塊測距部分就算完美收工了。

      以上就是超聲波模塊測距的c的代碼和解析的部分了,希望能對大家的樹莓派學習有幫助。

      樹莓派 超聲波傳感器:樹莓派3B--超聲波測距(HC-SR04)的使用  第3張

      樹莓派 超聲波傳感器:樹莓派控制HC-SR04超聲波測距傳感

      作為最常見的傳感器,本篇實現(xiàn)超聲波測距傳感的交互:
      1. 首先把樹莓派GPIO結構圖放上來:
      圖一 樹莓派GPIO結構圖
      2. 接線
      VCC,超聲波模塊電源腳,接5V電源即可
      Trig,超聲波發(fā)送腳,高電平時發(fā)送出40KHZ出超聲波,接GPIO
      Echo,超聲波接收檢測腳,當接收到返回的超聲波時,輸出高電平,接GPIO
      GND,超聲波模塊GND
      圖二 樹莓派和超聲測距傳感器的接線圖
      網(wǎng)上教程指出5V的GPIO可能會燒掉板子,建議加電阻,這里沒有加也能運行,自己有材料最好接上電阻。
      3. 程序
      #!?/usr/bin/python
      #?-*-?coding:utf-8?-*-
      import?RPi.GPIO as GPIO
      import?time
      def?checkdist():
      GPIO.setmode(GPIO.BCM)
      #發(fā)出觸發(fā)信號
      GPIO.output(2,GPIO.HIGH)
      #保持10us以上(我選擇15us)
      time.sleep(0.)
      GPIO.output(2,GPIO.LOW)
      while?not?GPIO.input(3):
      pass
      #發(fā)現(xiàn)高電平時開時計時
      t1?=?time.time()
      while?GPIO.input(3):
      pass
      #高電平結束停止計時
      t2?=?time.time()
      #返回距離,單位為米
      return?(t2-t1)*340/2
      #第3號針,GPIO2
      GPIO.setup(2,GPIO.OUT,initial=GPIO.LOW)
      #第5號針,GPIO3
      GPIO.setup(3,GPIO.IN)
      time.sleep(2)
      try:
      while?True:
      print?'Distance: %0.2f m'?%checkdist()
      time.sleep(0.5)
      except?KeyboardInterrupt:
      GPIO.cleanup()
      值得學習的模塊,而且很實用,測量精度也高,便宜好用。

      下一篇: PLC、DCS、FCS三大控

      上一篇: 電氣控制線路圖控制原

      推薦產(chǎn)品

      更多
      主站蜘蛛池模板: 国产成人亚洲综合色影视| 一本久久综合亚洲鲁鲁五月天| 狠狠色综合7777久夜色撩人| 色综合久久一区二区三区| 综合激情区视频一区视频二区 | 久久天天日天天操综合伊人av| 色综合视频一区二区三区| 丁香色欲久久久久久综合网| 亚洲国产成人久久综合一区| 天天干天天色综合网| 国产成人精品综合久久久久 | 亚洲 自拍 另类小说综合图区| 自拍三级综合影视| 色婷婷久久综合中文网站| 亚洲综合色婷婷七月丁香| 综合久久久久久中文字幕| 情人伊人久久综合亚洲| 色五月五月丁香亚洲综合网| 色婷婷综合久久久| 婷婷五月综合缴情在线视频| 国产综合色产在线精品| 香蕉综合在线视频91| 伊人色综合网一区二区三区 | 97久久综合精品久久久综合| 麻豆久久婷婷五月综合国产| 久久综合九色综合精品| 国产精品天干天干综合网| 久久丝袜精品综合网站| 色爱区综合激情五月综合激情| 亚洲精品欧美综合四区| 亚洲综合久久一本伊伊区| 天堂久久天堂AV色综合| 久久天天躁狠狠躁夜夜躁综合| 狠狠狠色丁香婷婷综合久久五月| 久久婷婷色综合一区二区| 中文自拍日本综合| 亚洲综合在线另类色区奇米| 亚洲国产精品综合久久久| 婷婷色中文字幕综合在线| 色综合视频一区中文字幕| 人人狠狠综合久久亚洲|