W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
無線發(fā)射器和接收器模塊工作在315 Mhz。它們可以輕松地裝入面包板,并可很好的與微控制器配合使用,創(chuàng)建一個非常簡單的無線數(shù)據(jù)鏈路。使用一對發(fā)射器和接收器,模塊將只能單向傳輸數(shù)據(jù),因此,你將需要兩對(不同頻率)作為發(fā)射器/接收器對。
注意 - 這些模塊是任意的,并會接收相當(dāng)大量的噪音。發(fā)射器和接收器都在共同的頻率下工作,并且沒有ID。
你將需要以下組件:
按照電路圖進行連接,如下圖所示。
在計算機上打開Arduino IDE軟件。使用Arduino語言進行編碼控制你的電路。通過單擊“New”打開一個新的草圖文件。
注意 - 你必須在Arduino庫文件中包含鍵盤庫。將VirtualWire.lib文件復(fù)制并粘貼到庫文件夾中,如下面屏幕截圖的高亮部分所示。
//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); }
這是一個簡單的代碼。首先發(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”時,連接到Arduino板上引腳5的LED亮起,當(dāng)接收到字符“0”時,LED熄滅。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: