<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PIC16F877單片機的超聲波測距系統設計

基于PIC16F877單片機的超聲波測距系統設計

作者: 時(shí)間:2011-09-16 來(lái)源:網(wǎng)絡(luò ) 收藏

  引言

  在自主行走機器人系統中,機器人要實(shí)現在未知和不確定環(huán)境下行走,必須實(shí)時(shí)采集環(huán)境信息,以實(shí)現避障和導航,這必須依靠能實(shí)現感知環(huán)境信息的傳感器系統來(lái)實(shí)現。視覺(jué)、紅外、激光、超聲波等傳感器都在行走機器人中得到廣泛應用。由于方法設備簡(jiǎn)單、價(jià)格便宜、體積小、設計簡(jiǎn)單、易于做到實(shí)時(shí)控制,并且在測量距離、測量精度等方面能達到工業(yè)實(shí)用的要求,因此得到了廣泛的應用。本文所介紹的機器人采用三方系統,該系統可為機器人識別其運動(dòng)的前方、左方和右方環(huán)境而提供關(guān)于運動(dòng)距離的信息。

  1 原理

  超聲波發(fā)生器內部由兩個(gè)壓電片和一個(gè)共振板組成。當它的兩極外加脈沖信號,且其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會(huì )發(fā)生共振,并帶動(dòng)共振板振動(dòng),便產(chǎn)生超聲波。反之,如果兩極間未加外電壓,當共振板接收到超聲波時(shí),就成為超聲波接收器。超聲波測距一般有兩種方法:①取輸出脈沖的平均電壓值,該電壓與距離成正比,測量電壓即可測量距離;②測量輸出脈沖的寬度,即發(fā)射超聲波與接收超聲波的時(shí)間間隔t,根據被測距離s=vt?2來(lái)得到測量距離,由于超聲波速度v與溫度有關(guān),所以如果溫度變化比較大,應通過(guò)溫度補償的方法加以校正。

  本測量系統采用第二種方法,由于測量精度要求不是特別高,所以可以認為溫度基本不變。

  本系統以單片機為核心,通過(guò)軟件編程實(shí)現其對外圍電路的實(shí)時(shí)控制,并提供給外圍電路所需的信號,包括頻率振動(dòng)信號、數據處理信號等,從而簡(jiǎn)化了外圍電路,且移植性好。系統硬件電路方框圖見(jiàn)圖1。

基于PIC16F877單片機的超聲波測距系統設計

  由于本系統只需要清楚機器人前方、左方、右方是否有障礙物,并不需要知道障礙物與機器人的具體距離,因此不需要顯示電路,只需要設定一距離閥值,使障礙物與機器人的距離達到某一值時(shí),單片機控制機器人電機停轉,這可通過(guò)軟件編程實(shí)現。

  2 超聲波發(fā)射電路

  超聲波的中心頻率為40kHz,該頻率可以通過(guò)以下程序產(chǎn)生(部分源程序):

基于PIC16F877單片機的超聲波測距系統設計

基于PIC16F877單片機的超聲波測距系統設計

  2.1 超聲波發(fā)射電路

  超聲波發(fā)射電路以為核心,當單片機上電時(shí),單片機從RA0口產(chǎn)生40kHz的超聲波信號,但是此時(shí)該信號無(wú)法通過(guò)與非門(mén)進(jìn)入放大電路使超聲波發(fā)射頭發(fā)射超聲波,只有閉合開(kāi)關(guān)S1時(shí),從RA1口發(fā)射出一門(mén)控信號,該信號的頻率為4kHz,同時(shí)啟動(dòng)單片機內部的定時(shí)器TMR1,開(kāi)始計數。該門(mén)控信號每發(fā)射一個(gè)周期的波形,超聲波就會(huì )發(fā)射10個(gè)完整的波形,這可由它們的頻率得出。超聲波的周期為1(40kHz)=01025ms,而門(mén)控信號的周期為1(4kHz)=0125ms。最后根據s=vt2求出障礙物與移動(dòng)機器人的距離。當超聲波接收頭收到反射回來(lái)的超聲波時(shí),計數器停止計數,時(shí)間t可以根據計數器的計數與門(mén)控信號的周期求出。RA2口接RS觸發(fā)器,RS觸發(fā)器可以自動(dòng)控制超聲波的發(fā)射和停止。本系統的電路還包括人工復位電路,由單片機的MCLR引腳接S2來(lái)控制,超聲波發(fā)射電路圖見(jiàn)圖2。

基于PIC16F877單片機的超聲波測距系統設計

  2.2 門(mén)控電路(RS觸發(fā)器)

  為實(shí)現對超聲波發(fā)射和接收的自動(dòng)控制,須在電路中加一門(mén)控電路,該門(mén)控信號頻率為4kHz,如把輸出脈沖作為閘門(mén)信號,讓已知頻率fc的脈沖恰好通過(guò)閘門(mén),那么t=NTc,其中,Tc為已知脈沖的周期,N為脈沖的個(gè)數。

  門(mén)控電路由RS觸發(fā)器組成,當輸入端R=1(S=0)時(shí)復位,即輸出端Q=0;當R=0(S=1)時(shí)置位,即Q=1。RS觸發(fā)器與單片機的RA2口相連。

  2.3 超聲波放大電路

  超聲波放大電路由三極管等組成,由于單片機RA口最多只有20mA~25mA上拉電流,而超聲波發(fā)射器最小需要60mA的電流,所以在與非門(mén)后加一級放大電路來(lái)放大電流,以完成超聲波的發(fā)射。超聲波放大發(fā)射電路見(jiàn)圖3。

基于PIC16F877單片機的超聲波測距系統設計


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: PIC16F877 超聲波測距

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>