W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
無(wú)線發(fā)射器和接收器模塊工作在315 Mhz。它們可以輕松地裝入面包板,并可很好的與微控制器配合使用,創(chuàng)建一個(gè)非常簡(jiǎn)單的無(wú)線數(shù)據(jù)鏈路。使用一對(duì)發(fā)射器和接收器,模塊將只能單向傳輸數(shù)據(jù),因此,你將需要兩對(duì)(不同頻率)作為發(fā)射器/接收器對(duì)。
注意 - 這些模塊是任意的,并會(huì)接收相當(dāng)大量的噪音。發(fā)射器和接收器都在共同的頻率下工作,并且沒(méi)有ID。
你將需要以下組件:
按照電路圖進(jìn)行連接,如下圖所示。
在計(jì)算機(jī)上打開(kāi)Arduino IDE軟件。使用Arduino語(yǔ)言進(jìn)行編碼控制你的電路。通過(guò)單擊“New”打開(kāi)一個(gè)新的草圖文件。
注意 - 你必須在Arduino庫(kù)文件中包含鍵盤(pán)庫(kù)。將VirtualWire.lib文件復(fù)制并粘貼到庫(kù)文件夾中,如下面屏幕截圖的高亮部分所示。
//simple Tx on pin D12 #include <VirtualWire.h> char *controller; void setup() { pinMode(13,OUTPUT); vw_set_ptt_inverted(true); vw_set_tx_pin(12); vw_setup(4000);// speed of data transfer Kbps } void loop() { controller="1" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13,1); delay(2000); controller="0" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13,0); delay(2000); }
這是一個(gè)簡(jiǎn)單的代碼。首先發(fā)送字符“1”,兩秒后發(fā)送字符“0”,以此類推。
//simple Rx on pin D12 #include <VirtualWire.h> void setup() { vw_set_ptt_inverted(true); // Required for DR3100 vw_set_rx_pin(12); vw_setup(4000); // Bits per sec pinMode(5, OUTPUT); vw_rx_start(); // Start the receiver PLL running } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) // Non-blocking { if(buf[0]=='1') { digitalWrite(5,1); } if(buf[0]=='0') { digitalWrite(5,0); } } }
當(dāng)接收到字符“1”時(shí),連接到Arduino板上引腳5的LED亮起,當(dāng)接收到字符“0”時(shí),LED熄滅。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: