A 433Mhz Rádió adó vevő pároshoz tarozó példafeladathoz sajnos nem lesz fritzing-es kapcsolási rajz, mert nem találtam hozzá. Az Adó-vevő elemeket bevallom őszintén lusta voltam megrajzolni. Ami viszont lesz az egy részletes leírás a kipróbáláshoz. A képen látható egységek közül a megkülönböztethetőség érdekében itt hagy jegyezzem meg, hogy mindig az az adó egység, amin a kristály van. Jelen esetben a 3 lábú felső modul. Látható rajta, hogy az antennát nekünk kell beforrasztani, és itt javasolnék egy λ/4-es 17,3 cm-es sima drót antennát. Aki késztetést érez arra, hogy antennát készítsen az akár az adóra készíthet egy λ/2-es dipól antennát is. Mindenki maga dönti el, hogy hol szeretné alkalmazni, lakáson belül nem biztos, hogy jó ötlet egy relatíve nagyméretű antenna.
Ennél a példánál, mivel ábrát nem készítettem, inkább a kódót magyarázom.
433Mhz Rádió adó egység:
#include < VirtualWire.h > char *controller; int a; int b; void setup() { vw_set_ptt_inverted(true); vw_set_tx_pin(12); vw_setup(4000);// speed of data transfer Kbps a = 0; b = 0; } void loop(){ controller="1"; while (a!=4) { vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone delay(50); a=a+1; } delay(2000); while (b != 4) { controller="0" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone delay(50); b=b+1; } delay(2000); a=0; b=0; }
A program lefutásához kelleni fog a VirtualWire könyvtár amit itt egy kattintással letölthetünk. Ezt a szokott módon be kell másolni a libraries mappába. Ezután az adó modult csak rákötjük az arduino-ra és feltöltjük rá a programot. A VCC-t értelemszerűen az 5 V-ra a GND-t pedig a GND-re kötjük. Ahogy azt a programban látjuk a TX-et pedig a D12-es lábra kötjük. Itt jegyezném meg, hogy az amíg ciklusra valójában nincs szükség, de én azt a jelenséget figyeltem meg, hogy 2-3 betonfal után a vevőegység nem mindig érzékelte az elküldött jelet. A hatásfokot javítottam ezzel, hogy megismételtem 50 ms-ként az adást. Ezután a kimaradó jelek megszűntek.
Vevő egység:
#include < VirtualWire.h > void setup() { vw_set_ptt_inverted(true); vw_set_rx_pin(12); vw_setup(4000); pinMode(13, OUTPUT); vw_rx_start(); } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) { if(buf[0]=='1'){ digitalWrite(13,1); } if(buf[0]=='0'){ digitalWrite(13,0); } } }
A bekötés itt is egyszerű, ugyan az a séma, mint az adónál, ami változik, hogy itt csak a VCC melletti lábat kell a D12-es lábra kötni. Eztán fogunk egy strapabíró ledet és becsúsztatjuk a D13 és a mellette lévő GND közé. A program végeredményben azt fogja csinálni, hogy a vevő által vett jelet érzékelve, amikor az 1-es akkor a led világít, amikor nulla, akkor a led kikapcsol. Tehát a led 2mp-ig világít, majd 2 mp-ig nem.
Remélem mindenki számára érthetően vázoltam a 433Mhz-es modulok működését, ha még sem, akkor a hozzászólásokban lehet kérdezni, és mihelyst tudok válaszolok rá, vagy más kedves olvasó megteszi ezt helyettem.
A 433Mhz Rádió adó vevő megvásárolható a Webshopban