吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

樹莓派連接超聲波測距傳感器

CHANBAEK ? 來源:和娃一起玩樹莓派 ? 作者:老孟K ? 2023-07-02 15:14 ? 次閱讀

今天我們來玩超聲波測距傳感器。我購買的是型號是US-015,長得是下面這個樣子:

可以看到它有四個引腳,除了電源VCC和地線GND外,主要靠Trig(觸發)引腳和Echo(回波)引腳來測距。其工作原理如下圖

圖片

其工作的時序圖如下:

圖片

由于超聲波電源為5V,在樹莓派的官方文檔中,5V的電壓如果接到GPIO引腳,會燒壞樹莓派(樹莓派使用3.3V電壓)。所以推薦在連接Echo引腳時通過電阻來做分壓處理,其電路如下圖所示:

圖片

如果我們手邊沒有330歐和470歐的電阻,也可以使用2個完全相同的電阻來做分壓,電阻的大小不限,這樣分壓后的GPIO引腳可以得到2.5V的電平,仍然會讀入為高電位(一般集成電路會把超過2伏作為高電位),可以得到同樣的效果。(多說一句:我看到網上很多文章提供的電路都是讓5v的Echo直接連接GPIO,也可以成功,我自己也試了一下,從我的經歷看,樹莓派沒有被5v的電壓燒毀,其原因應該是Echo一直輸出低電位,只有在trig觸發后的檢測到回波時才短暫的輸出5v高電位,所以很幸運的沒有對樹莓派造成影響,但 不建議大家嘗試,否則后果自負!

最終的電路連接好后如下圖所示:

圖片

然后執行下面的程序,這段程序的邏輯就是向Trig引腳發送10us的高電平,觸發超聲波模塊發送8個40khz的方波,然后讀取Echo的高電位時間,此時間就是超聲波從發送到返回的時間,也就是2個從傳感器到阻擋物體的距離。

import RPi.GPIO as GPIO

from time import sleep,time

TRIG = 6      #傳感器tirg引腳接GPIO6
ECHO = 17     #傳感器Echo引腳接GPIO17,大家需要根據自己電路連接情況修改

GPIO.setmode(GPIO.BCM)    #設置為BCM模式。
GPIO.setup(TRIG,GPIO.OUT)  #把 GPIO6設置為輸出
GPIO.setup(ECHO,GPIO.IN)   #把GPIO17設置為輸入
GPIO.output(TRIG,0)    # 給Trig輸出低電平
i = 1     # 測距計數器  
while True:
    print("-----start----",i)
    sleep(0.00002)    #讓低電平保持20us
    GPIO.output(TRIG,1)   #觸發trig,設置為高電位10us
    sleep(0.00001)       # 保持高電位10us
    GPIO.output(TRIG,0)  # 然后把trig設置為低電位
    while GPIO.input(ECHO) == 0:  # 當Echo為低電位時在此循環等待
        a = 1
    time1 = time()      # 當Echo為高電位時跳出上面的while循環,讀取此時時間
    while GPIO.input(ECHO) == 1:   # 當Echo為高電位是循環,直到變為低電位
        a = 2
    time2 = time()      # 當Echo變為低電位時跳出上面while循環,讀取當前時間   
    #print("time2:",time2)
    during = time2-time1   # 計算保持高電位的時間
    #print("during:",during)
    distance = during*340*100/2   # 高電位的時間 * 340米(聲音速度)/2(往返),乘100轉為厘米
    print("time1:",time1)
    print("time2:",time2)
    print("during:",during)
    print("distance:",distance)   # 顯示測算的距離
    sleep(2)     
    i = i+1

運行程序時,在超聲波前面移動書本,可以看到輸出如下:

圖片

其實,GPIOZero其實已經實現了距離傳感器,并且封裝為可以直接使用的類DistanceSensor,用它的話代碼會非常簡單,其底層實現的機理和我們上面的代碼其實是一樣的。

from gpiozero import DistanceSensor
from time import sleep


sensor = DistanceSensor(echo=17, trigger=6)
while True:
    print('Distance: ', sensor.distance * 100)
    sleep(1)

運行結果如下:

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2553

    文章

    51390

    瀏覽量

    756586
  • 超聲波
    +關注

    關注

    63

    文章

    3040

    瀏覽量

    138690
  • 引腳
    +關注

    關注

    16

    文章

    1220

    瀏覽量

    50901
  • GND
    GND
    +關注

    關注

    2

    文章

    540

    瀏覽量

    38900
  • 樹莓派
    +關注

    關注

    117

    文章

    1710

    瀏覽量

    105876
收藏 人收藏

    評論

    相關推薦

    在全志H616核桃開發板上實現超聲波傳感器測距

    實現超聲波傳感器測距。 實驗講解? 下圖是一款市面上常用的HCSR04超聲波模塊: 模塊參數 供電電壓 3.3V~5V (核桃需要使用
    發表于 05-08 16:21

    超聲波傳感器測距電路

    超聲波傳感器測距電路超聲波測距電路原理圖本系統的特點是利用單片機控制超聲波的發射和對
    發表于 10-20 08:43

    基于超聲波傳感器測距系統設計

    ;><strong>基于超聲波傳感器測距系統設計<br/></strong><
    發表于 12-15 10:20

    超聲波測距原理

    為此,文中嘗試以單片機AT89S52為核心,利用一對40 kHz壓電超聲傳感器設計一款體積較小、價格低廉、精度較高、具有溫度補償、實時LCD顯示和報警的超聲波測距儀。1
    發表于 04-25 11:32

    超聲波傳感器及應用

      一、原理簡述:  超聲波傳感器是利用超聲波的特性研制而成的傳感器。超聲波是一種振動頻 率高于聲波
    發表于 10-29 14:53

    超聲波傳感器測距系統如何設計

    超聲波測距主要應用于非接觸測量領域。目前測距專用超聲波系統由于成本高等的原因,在一些中小規模的應用領域中難以廣泛應用。隨著汽車智能化的發展,需要研制出能夠以更高的精度
    發表于 04-23 07:34

    超聲波傳感器的優勢及原理

    長度等一些工業現場,需要自動進行非接觸測距的場合經常見到其身影。那么,超聲波傳感器有哪些優勢,使得其在這些場合大顯身手呢?  概況而言,超聲波傳感器
    發表于 06-19 11:46

    超聲波測距原理

    1.超聲波測距原理超聲波是利用反射的原理測量距離的,被測距離一端為超聲波傳感器,另一端必須有能反
    發表于 07-21 07:01

    如何去實現一種基于樹莓4B的超聲波測距和顯示設計

    如何去實現一種基于atmegal16單片機的超聲波測距短信上傳設計?如何去實現一種基于樹莓4B的超聲波
    發表于 09-23 07:29

    超聲波測距實驗

    超聲波測距實驗一、 實驗目的1、 了解超聲波的產生及其在介質中的傳播特性2、 了解超聲波傳感器基本結構及其工作原理3、 了解
    發表于 03-07 11:18 ?7358次閱讀
    <b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>實驗

    Arduino應用_Arduino連接超聲波傳感器測距

    超聲波傳感器適用于對大幅的平面進行靜止測距。普通的超聲波傳感器測距范圍大概是 2cm~450cm
    發表于 09-24 16:00 ?148次下載
    Arduino應用_Arduino<b class='flag-5'>連接</b><b class='flag-5'>超聲波</b><b class='flag-5'>傳感器</b><b class='flag-5'>測距</b>

    超聲波傳感器測距方法詳解

    在日常生產生活中,超聲波測距傳感器主要應用于汽車的倒車雷達、及機器人自動避障行走、建筑施工工地以及一些工業現場例如:液位、井深、管道長度等需要自動進行非接觸測距的場合。目前有兩種常用的
    的頭像 發表于 03-29 08:27 ?3.5w次閱讀
    <b class='flag-5'>超聲波</b><b class='flag-5'>傳感器</b><b class='flag-5'>測距</b>方法詳解

    超聲波位移傳感器與激光測距儀/測距傳感器之間有何區別

    超聲波位移傳感器和激光測距儀/測距位移傳感器是兩個廣泛用來測量距離的工具,兩者之間互有優勢,在選擇的時候要根據實際情況具體分析,看哪個類型的
    的頭像 發表于 04-21 11:02 ?2005次閱讀

    超聲波傳感器的工作原理 超聲波傳感器的應用

    超聲波傳感器是一種基于超聲波的無接觸式測距傳感器,可以廣泛應用于工業、醫療、軍事等領域。本文將詳細介紹
    的頭像 發表于 01-18 14:04 ?1912次閱讀

    超聲波測距原理 超聲波測距傳感器接線方法

    超聲波測距是一種常用的測距方法,通過發射超聲波脈沖,利用其在空氣中傳播速度較快的特點,測量出從傳感器到目標物體的時間差,并進而計算出距離。
    的頭像 發表于 01-22 15:22 ?2682次閱讀
    BB百家乐HD| 百家乐转盘| 试玩百家乐游戏机| 百家乐官网翻天百度影音| BB百家乐官网HD| 真人百家乐官网代理合作| 和乐娱乐| 威尼斯人娱乐城代理| 百家乐透视牌靴哪里有| 百家乐开户博彩论坛| 百家乐必胜| 百家乐代理加盟| 百家乐下注时机| 百家乐游戏论坛| 百家乐开户百家乐技巧| 24山认龙立向| 24山在风水学中应用| 做生意带什么招财| 百家乐赌场老千| 24山安葬择日吉凶| 全讯网开奖直播| 大发888线上娱乐加盟合作| 大发888娱乐城赢钱| 百家乐麻将牌| 大发888游戏平台888| 大发888娱乐场下载iypuqrd| 全讯网找新全讯网| 做生意开店风水| 百家乐翻天腾讯视频| 网上百家乐破战| 申博太阳城官方网站| 棋牌类玩具| 桐庐县| 大发888m摩卡游戏| 皇冠888线上投注| 百家乐官网娱乐城主页| 百家乐官网网络赌博真假| 网上百家乐官网的玩法技巧和规则 | 丽景湾百家乐官网的玩法技巧和规则| 百家乐官网网站| 百家乐庄闲统计数|