當(dāng)前所在位置:首頁(yè) > 新聞資訊
新聞資訊
如何用nRF24L01制作腕帶式對(duì)講機(jī)
此教程,是教大家如何使用nRF24L01制作一個(gè)簡(jiǎn)單的對(duì)講機(jī)。雖說這個(gè)項(xiàng)目沒有做到將裝置很好的組裝起來,但是希望大家能在制作學(xué)習(xí)的過程中有所啟發(fā)進(jìn)步。
步驟一:準(zhǔn)備工具
將全部原件焊接在面包板上,可以使得整個(gè)原型看起來比較圓滑,只是做起來效果沒那么好。材料清單如下:
2 x Arduino UNO/SparkFun RedBoard (Arduino Mega)
2 x nRF24L01
2 x駐極體傳聲器
2 x NPN晶體管
2 x按鈕
2 x3.5 mm RRS連接器
6 x 10 k 電阻
2 x 100 k 電阻
6 x 100 nF 電容
工具
烙鐵
焊接
助焊筆
焊錫線
步驟二:擴(kuò)音器電路
整個(gè)擴(kuò)音器的電路來源于互聯(lián)網(wǎng),看起來很簡(jiǎn)單。不過在原始電路上做了一點(diǎn)小小的修改,即是把電路中晶體管旁邊0.1uF的電容移除了。這個(gè)電容的作用主要是隔直流通交流,意味著我們要建立一個(gè)負(fù)電壓。在大多數(shù)情況下這個(gè)電路設(shè)計(jì)是不錯(cuò)的,但是將前置放大器的輸出連接到微控制器時(shí),電路不能輸出負(fù)電壓。不僅如此,當(dāng)把它連接到Arduino的模擬 - 數(shù)字轉(zhuǎn)換器時(shí),它也能夠直接將前級(jí)放大器電路與耳機(jī)直接掛鉤。所以可以將其刪除。
駐極體麥克風(fēng)和晶體管
駐極體麥克風(fēng)里面有一個(gè)柔性膜片,聲波觸發(fā)到它的時(shí)候就會(huì)移動(dòng)。柔性膜片是與另一個(gè)傳導(dǎo)盤平行的。這個(gè)傳導(dǎo)盤的功能是根據(jù)膜片的彎曲程度和麥克風(fēng)檢測(cè)到的聲波強(qiáng)度得到電容值。從麥克風(fēng)連接到電路的情況來看,它將會(huì)根據(jù)麥克風(fēng)檢測(cè)到的聲浪程度在晶體管產(chǎn)生一個(gè)AC電流。晶體管的基礎(chǔ)電流是經(jīng)過放大的,所以流入微控制器的聲波也是經(jīng)過放大的。
步驟3:呼叫按鈕
我們需要一個(gè)簡(jiǎn)單的按鈕來呼叫對(duì)講機(jī)另一端的人。下面使用一個(gè)簡(jiǎn)單的按鈕 ,10 k電阻,100 nF電容器。電路很簡(jiǎn)單。在典型的按鈕電路上增加一個(gè)電容器,大家可能會(huì)熟悉。該電容器有助于防止按鈕“反彈”或不穩(wěn)定信號(hào)。大家可能熟悉其他防反跳按鈕的方法,但其實(shí),添加電容器已經(jīng)足夠了。
按鈕按下時(shí)連接一個(gè)中斷引腳3來檢測(cè)。需要“中斷”代碼來提供不降低性能的非常準(zhǔn)確的定時(shí)事件(如果處理得當(dāng))。
attachInterrupt(digitalPinToInterrupt(talkButton), talk, CHANGE);
有了這段代碼,我們?nèi)ァ皌alk()”函數(shù)檢查引腳3的電壓。如果電壓高或5 V,nRF24L01將切換到發(fā)送模式(發(fā)出的聲音)。如果電壓很低或0 V,nRF24L01將切換到接收模式(接收聲音)。當(dāng)按鈕按下時(shí)引腳3的電壓應(yīng)是高的,當(dāng)松開按鈕時(shí)則應(yīng)該是低的。當(dāng)引腳3上的電壓“變化”在我們的“attachinterrupt”函數(shù)上表示時(shí),“talk()”函數(shù)將執(zhí)行。
void talk()
{
if (digitalRead(talkButton)) rfAudio.transmit();
else rfAudio.receive();
}
第四步:無線傳輸
為這個(gè)項(xiàng)目使用nRFL01射頻收發(fā)器。使用了遠(yuǎn)程模塊(天線),但這些都不是需要的。對(duì)于這一步,我們需要下載兩個(gè)Arduino的庫(kù):該RF24和RF24Audio庫(kù)(附后)。在Arduino安裝第三方庫(kù)的說明,請(qǐng)參閱本教程arduino.cc。附件為特里國(guó)王和其他貢獻(xiàn)者的arduinoinfo和NRF24L01的引腳說明。特里也有一個(gè)詳細(xì)的關(guān)于nRF24L01的教程和描述,這是很有幫助的。為了穩(wěn)定性要焊接100 nF的電容器在VCC與GND之間,這是Terry在他的維基百科里建議的。
第五步:Arduino代碼
利用rf24和rf24audio庫(kù)整理一個(gè)簡(jiǎn)單的代碼,上傳這段代碼到Arduinos。在代碼的開始默認(rèn)兩個(gè)電路為“接收”的。按“呼叫按鈕”從一個(gè)無線電傳輸音頻到另一個(gè)。 注意:RF24Audio使用PWN傳輸音頻和其他一些技術(shù)。由此產(chǎn)生的響亮的背景噪音,很刺激。暫時(shí)還沒想到方法來去掉,如果大家會(huì),可以分享出來。