無線發(fā)射器和接收器模塊工作在315 Mhz。它們可以輕松地裝入面包板,并可很好的與微控制器配合使用,創(chuàng)建一個(gè)非常簡單的無線數(shù)據(jù)鏈路。使用一對發(fā)射器和接收器,模塊將只能單向傳輸數(shù)據(jù),因此,你將需要兩對(不同頻率)作為發(fā)射器/接收器對。
注意 - 這些模塊是任意的,并會(huì)接收相當(dāng)大量的噪音。發(fā)射器和接收器都在共同的頻率下工作,并且沒有ID。
你將需要以下組件:
按照電路圖進(jìn)行連接,如下圖所示。
在計(jì)算機(jī)上打開Arduino IDE軟件。使用Arduino語言進(jìn)行編碼控制你的電路。通過單擊“New”打開一個(gè)新的草圖文件。
注意 - 你必須在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); }
這是一個(gè)簡單的代碼。首先發(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熄滅。
更多建議: