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