<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è) > 測試測量 > 設計應用 > 基于nRF24L01+與Arduino的超聲波測距系統設計

基于nRF24L01+與Arduino的超聲波測距系統設計

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

距離是描述建筑物平面結構的重要內容,建筑物尺寸的傳統測量手段都需要人員借助工具現地進(jìn)行,但面對比較危險的建筑物時(shí),傳統的測量手段勢必增加人員的傷亡幾率。隨著(zhù)科學(xué)技術(shù)的發(fā)展,測距技術(shù)和無(wú)線(xiàn)傳輸技術(shù)日趨成熟,無(wú)人距離測量在特殊領(lǐng)域中將得到廣泛應用。利用超聲波測距成本低、精度高、速度快等技術(shù)特點(diǎn),結合單片機、無(wú)線(xiàn)通信技術(shù)可對建筑物內部平面尺寸進(jìn)行測量,并將數據無(wú)線(xiàn)傳至終端設備實(shí)時(shí)顯示。

本文引用地址:http://dyxdggzs.com/article/201610/308661.htm

1 系統結構

超聲波測距系統由發(fā)射端和接收端兩部分組成。發(fā)射端由開(kāi)發(fā)板、無(wú)線(xiàn)射頻發(fā)射模塊、天線(xiàn)、超聲波模塊及電源模塊組成。接收端由開(kāi)發(fā)板、無(wú)線(xiàn)射頻接收模塊、天線(xiàn)和終端設備等組成。

在系統發(fā)射端,超聲波模塊HC—SR04對距離信號進(jìn)行實(shí)時(shí)采集,在的控制下通過(guò)無(wú)線(xiàn)射頻發(fā)射模塊將距離數字信號發(fā)送至接收端;在系統接收端,在A(yíng)rduino開(kāi)發(fā)板的作用下,通過(guò)無(wú)線(xiàn)射頻接收模塊接收發(fā)射端發(fā)送過(guò)來(lái)的距離數字信號,通過(guò)串口通信模塊與PC機進(jìn)行通信,在PC機中利用軟件讀取數據并繪制曲線(xiàn)。

2 系統硬件電路設計

2.1 Arduino控制板

本系統中所采用的Arduino UNO是一塊采用USB接口的核心電路板,處理器核心是ATmega328,包括14個(gè)數字輸入輸出IO(其中6個(gè)可提供PWM輸出),6個(gè)模擬輸入IO,一個(gè)16 MHz晶體振蕩器,一個(gè)USB口(便于在線(xiàn)進(jìn)行程序調試),一個(gè)電源插座和一個(gè)復位按鍵。

2.2 測距傳感器

HC—SR04超聲波測距模塊可提供2~400 cm的非接觸式距離感測功能,測距精度可達到3 mm,模塊包括超聲波發(fā)射器、接收器和控制電路。模塊采用IO口TRIG觸發(fā)測距,給至少10μs的高電平信號,之后模塊自動(dòng)發(fā)送8個(gè)40 kHz的方波,自動(dòng)檢測是否有信號返回,如有信號返回.通過(guò)IO口ECH0輸出一個(gè)高電平,高電平持續的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。

2.3 無(wú)線(xiàn)傳輸模塊

nRF24L01是一款新型單片射頻收發(fā)一體器件,工作于2.4~2.5 GHz ISM頻段。其內置頻率合成器、功率放大器、晶體振蕩器、調制器、低噪聲放大器等功能模塊,并融合了增強型ShocKBurst技術(shù),其中輸出功率和通信頻道可通過(guò)程序進(jìn)行配置。nRF24L01具有極低的電流消耗,當工作在發(fā)射模式下發(fā)射功率為0 dBm時(shí)電流消耗為11.3 mA,接收模式時(shí)為13.5 mA,掉電模式和待機模式下電流消耗更低。本文采用模塊,在原模塊的基礎上增加了PA和LNA。在發(fā)射端通過(guò)PA電路將nRF24L01的輸出功率放大,同時(shí)在接收端通過(guò)LNA電路增加接收信號的強度。

2.4 SPI連接

Arduino與無(wú)線(xiàn)收發(fā)模塊之間利用同步串口SPI進(jìn)行通信。nRF24L01+的SPI總線(xiàn)有GND(接地)、VCC(1.9~3.6 V電源)、CE(使能發(fā)射或接收)、CSN(片選信號)、SCK(時(shí)鐘信號)、MOSI(數據輸入)、MISO(數據輸出)、IRQ(中斷標志位)。Arduino與nRF24L01+的連接圖如圖1所示。

a.jpg

2.5 實(shí)驗電路連接圖

發(fā)射端(HC—SR04、nRF24L01+和Arduino連接)和接收端(nRF24L01+和Arduino連接)實(shí)驗電路連接如圖2所示。

b.jpg

3 系統的軟件設計

3.1 無(wú)線(xiàn)發(fā)送模式流程

對nRF24L01+的相關(guān)寄存器進(jìn)行配置,設置為增強型ShockBurstTM發(fā)送模式,通信速率為1 Mbit/s,晶振16 MHz,發(fā)射功率設置為0 dBm,MCU通過(guò)MOSI寫(xiě)入數據,通過(guò)MISO讀出數據,設置通過(guò)nRF24L01+的數據輸入,保存到TX FIFO寄存器中,開(kāi)始發(fā)送數據。在數據發(fā)送之后,讀取狀態(tài)寄存器的值并做出判斷,確定是否接收到應答信號,判斷自動(dòng)重發(fā)次數是否達到最大值(10次)。如果在設定的應答時(shí)間內接收到應答信號,則認為數據成功發(fā)送到了接收端。如果在設定的時(shí)間范圍內沒(méi)有接收到應答信號,則重新發(fā)送數據,并且自動(dòng)重發(fā)計數器自動(dòng)加1。若自動(dòng)重發(fā)次數達到最大值,則表明數據沒(méi)有發(fā)送成功,需要清除MAX_RT位讓數據繼續重發(fā)。發(fā)送程序流程圖如3所示。

c.jpg

發(fā)射程序中的主要函數如下:

void TX_Mode (void) //初始化nRF24L01+設備進(jìn)入發(fā)送模式

void Send_Data(int a) //發(fā)射數據“a”

unsigned char SPI_Read_Buf(unsigned char reg,unsigned

char*pBuf,unsigned char bytes) //從寄存器“reg”讀無(wú)符號字符型變量

3.2 無(wú)線(xiàn)接收模式流程

設置nRF24L01+為接收模式,與發(fā)射端相同的CRC配置、地址寬度、頻道和傳輸速率,拉高CE啟動(dòng)接收,通過(guò)讀取狀態(tài)寄存器的值判斷是否有數據接收,若有數據,接收端通過(guò)自身通道地址與接收到的數據包中的地址進(jìn)行匹配,若相同就接收該數據,若不同就放棄該數據,繼續等待接收。接收程序流程圖如圖4所示。

d.jpg

接收程序中的主要函數如下:

void RX_Mode (void) //初始化nRF24L01+設備進(jìn)入接收模式

void Recive Data() //接收數據

unsigned char SPI_Write_Buf(unsigned char reg,unsigned

char*pBuf,unsigned char bytes) //將nRF24L01+的內容寫(xiě)入緩沖區“*PBUF”

4 實(shí)驗結果

按照本方案設計的超聲波測距系統(實(shí)物如圖5所示)經(jīng)過(guò)建筑物現地測試,測量最大寬度8 m,最大高度4 m,超聲波模塊工作穩定,無(wú)線(xiàn)傳輸模塊傳輸距離符合要求,完全可以達到實(shí)際應用的目的。由于該系統目前還是初具功能的試驗品,測距平臺上功能模塊不夠豐富,應搭配更多的傳感器模塊,提升系統功能。

e.jpg

5 結束語(yǔ)

本文著(zhù)重介紹了基于nRF24L01+與Arduino的超聲波測距系統的設計,通過(guò)較低的成本實(shí)現了超聲波測距、數據無(wú)線(xiàn)傳輸、PC機實(shí)時(shí)接收顯示并繪制曲線(xiàn)等功能,可搭載不同的移動(dòng)平臺,完成建筑物測距任務(wù),具有一定的實(shí)用價(jià)值。



評論


相關(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>