曲鎮(zhèn)幫 田江偉 鄭琳
【摘要】本文介紹基于NRF24L01的超聲波無(wú)線(xiàn)測(cè)距系統(tǒng),通過(guò)HC-SR04超聲波測(cè)距模塊和NRF24L01無(wú)線(xiàn)傳輸模塊將采集端采集到的距離數(shù)據(jù)實(shí)時(shí)發(fā)送給STM32單片機(jī),實(shí)現(xiàn)超聲波遠(yuǎn)距離的遙測(cè)。STM32單片機(jī)主機(jī)接收顯示報(bào)警部分負(fù)責(zé)接收超聲波檢測(cè)的距離并在OLED12864顯示屏上顯示。
【關(guān)鍵詞】NRF24L01;超聲波數(shù)據(jù)采集;OLED12864顯示
一、系統(tǒng)硬件電路設(shè)計(jì)
整個(gè)系統(tǒng)主要分為兩大部分,即兩塊無(wú)線(xiàn)收發(fā)系統(tǒng)部分,無(wú)線(xiàn)數(shù)據(jù)傳輸接收系統(tǒng)模塊電路和無(wú)線(xiàn)數(shù)據(jù)傳輸發(fā)送系統(tǒng)模塊電路,系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
(一)HC-SR04超聲波測(cè)距電路設(shè)計(jì)
超聲波測(cè)距模塊選用的是HC-SR04模塊,測(cè)距精度最高達(dá)到3mm。此模塊包含控制電路、超聲波發(fā)生器與接收器。超聲波測(cè)距模塊采用IO口TRIG觸發(fā)測(cè)距,至少給10us的高電平信號(hào)。模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回。有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。
(二)NRF24L01無(wú)線(xiàn)收發(fā)電路設(shè)計(jì)
NRF24L01工作于2.4 GHz~2.5 GHz ISM頻段。NRF24L01內(nèi)置很多功能模塊,包括晶體振蕩器、功率放大器、頻率合成器、調(diào)制器等模塊,通過(guò)程序進(jìn)行配置輸出功率和通信頻道。NRF24L01是高斯頻移鍵控調(diào)制,硬件集成OSI鏈路層,它有自動(dòng)應(yīng)答、自動(dòng)再發(fā)射功能,片內(nèi)自動(dòng)生成報(bào)頭和CRC校驗(yàn)碼,SPI速率為0 Mb/s~10 Mb/s,與其他NRF24系列射頻器件相兼容,供電電壓為1.9 伏~3.6 伏,傳輸距離小于5米。
(三)OLED數(shù)據(jù)顯示電路設(shè)計(jì)
OLED12864是128×64行點(diǎn)陣的OLED單色、字符、圖形顯示模塊,其接口電路和操作指令簡(jiǎn)單,具有8位并行數(shù)據(jù)接口,讀寫(xiě)時(shí)序適配6800系列時(shí)序,可直接與8位微處理器相連。其中2管腳與單片機(jī)PB6鏈接,控制OLED12864 12C總線(xiàn)的SCL功能。1管腳與單片機(jī)PB7鏈接,控制OLED12864 12C總線(xiàn)的SDA功能。
二系統(tǒng)軟件設(shè)計(jì)
(一)無(wú)線(xiàn)數(shù)據(jù)傳輸系統(tǒng)主程序設(shè)計(jì)
首先對(duì)發(fā)送和接收部分分別進(jìn)行系統(tǒng)初始化,然后發(fā)送部分的超聲波模塊檢測(cè)距離,經(jīng)過(guò)初始化后接收部分開(kāi)始接受發(fā)送端發(fā)送的數(shù)據(jù)并進(jìn)入判斷程序當(dāng)接收到數(shù)據(jù)未到達(dá)報(bào)警值時(shí),程序直接進(jìn)入OLED顯示模塊顯示出來(lái);當(dāng)接收到的數(shù)據(jù)達(dá)到報(bào)警值時(shí),會(huì)產(chǎn)生聲光報(bào)警,并在OLED顯示模塊上顯示出來(lái)。
無(wú)線(xiàn)數(shù)據(jù)傳輸系統(tǒng)主程序流程圖如圖2所示。
(二)HC-SR04超聲波測(cè)距電路子程序設(shè)計(jì)
HC-SR04超聲波測(cè)距電路在工作之前會(huì)對(duì)串口1進(jìn)行初始化,對(duì)SPI接口初始化,顯示器初始化。初始化后進(jìn)行數(shù)據(jù)采集,將數(shù)據(jù)通過(guò)NRF24L01芯片、STM32單片機(jī)發(fā)送到無(wú)線(xiàn)數(shù)據(jù)傳輸接收系統(tǒng)。
(三)無(wú)線(xiàn)數(shù)據(jù)傳輸收發(fā)系統(tǒng)子程序設(shè)計(jì)
發(fā)送端:首先對(duì)系統(tǒng)進(jìn)行初始化,設(shè)置為發(fā)送模式,超聲波傳感器開(kāi)始工作對(duì)距離進(jìn)行測(cè)量,然后將結(jié)果送至顯示器與無(wú)線(xiàn)收發(fā)電路進(jìn)行顯示與數(shù)據(jù)發(fā)送,在顯示屏上顯示HC-SR04距離檢測(cè)傳感器測(cè)的數(shù)據(jù)值。檢測(cè)到數(shù)據(jù)后,通過(guò)NRF24L01模塊將數(shù)據(jù)信息發(fā)送給接收模塊,在顯示屏上顯示當(dāng)前檢測(cè)出的距離。
接收端:無(wú)線(xiàn)數(shù)據(jù)傳輸接收系統(tǒng)與無(wú)線(xiàn)數(shù)據(jù)傳輸發(fā)送系統(tǒng)相類(lèi)似,系統(tǒng)在工作之前要進(jìn)行初始化,按照程序設(shè)計(jì)開(kāi)始讀取接收到的數(shù)據(jù),判定后進(jìn)行數(shù)據(jù)處理與顯示,在顯示屏上顯示HC-SR04超聲波檢測(cè)傳感器測(cè)的距離值。檢測(cè)到數(shù)據(jù)后,在OLED顯示屏上顯示當(dāng)前檢測(cè)出的距離,通過(guò)接收端讀取NRF24L01寄存器。并通過(guò)OLED顯示模塊進(jìn)行顯示,顯示完畢后返回NRF24L01。如果超出設(shè)定的距離,報(bào)警器進(jìn)行報(bào)警。如果接收不到數(shù)據(jù)則繼續(xù)檢測(cè)。
(四)OLED數(shù)據(jù)顯示電路子程序設(shè)計(jì)
OLED數(shù)據(jù)顯示電路在工作之前會(huì)進(jìn)行系統(tǒng)初始化。初始化后等待無(wú)線(xiàn)數(shù)據(jù)傳輸發(fā)送系統(tǒng)采集端采集到的數(shù)據(jù),接收到數(shù)據(jù)后進(jìn)入判斷程序,當(dāng)無(wú)線(xiàn)數(shù)據(jù)傳輸發(fā)送系統(tǒng)采集端發(fā)送的數(shù)據(jù)在測(cè)量范圍內(nèi)時(shí),OLED模塊上顯示數(shù)據(jù)并有聲光報(bào)警,程序流程結(jié)束;當(dāng)無(wú)線(xiàn)數(shù)據(jù)傳輸發(fā)送系統(tǒng)采集端發(fā)送的數(shù)據(jù)不在2cm-400cm范圍內(nèi)時(shí),OLED模塊上沒(méi)有顯示數(shù)據(jù),程序繼續(xù)進(jìn)入判斷部分。
三、結(jié)論
本設(shè)計(jì)的研究工作已經(jīng)基本達(dá)到預(yù)期的要求,系統(tǒng)設(shè)計(jì)了包括超聲波檢測(cè)、NRF24L01無(wú)線(xiàn)傳輸?shù)饶K,操作方便和容易修改??蓪?shí)現(xiàn)在室內(nèi)、室外測(cè)量距離,不僅方便易操作,成本低廉而且能夠?qū)崿F(xiàn)數(shù)據(jù)的實(shí)時(shí)傳輸。
參考文獻(xiàn):
[1] 李杜.基于HC-SR04的超聲波測(cè)距裝置算法研究[J].科技世界,2012,(38):38-40.
[2] 董浩,黃凱,張渭澎.單片機(jī)技術(shù)在智能電流源設(shè)計(jì)中的應(yīng)用[J].電氣時(shí)代,2015(08): 110-113.
[3] 李維諟,郭強(qiáng).最新液晶顯示應(yīng)用[M].北京:電子工業(yè)出版社,2014:56-59.
[4] 陳城,李瑞祥,劉婷婷,劉毅.基于NRF24L01的無(wú)線(xiàn)數(shù)據(jù)傳輸系統(tǒng)研究[J].電子科技, 2016,(11)22-24,27.
作者簡(jiǎn)介:
曲鎮(zhèn)幫、田江偉,男,沈陽(yáng)工學(xué)院。鄭琳(通訊作者),女,漢族,遼寧人,沈陽(yáng)工學(xué)院,教師,講師,碩士學(xué)位。