XY-MK 433Mhz Rádió adó vevő

Ehhez a példafeladathoz sajnos nem lesz fritzing-es kapcsolási rajz, mert nem találtam hozzá kész adó-vevő elemeket és bevallom őszintén lusta voltam csinálni. Ami viszont lesz az egy részletes leírás a kipróbáláshoz. XY-MKA 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.

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 az XY-MK modul 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.

(Statisztika: 143 megtekintés)

Vélemény, hozzászólás?

Az email címet nem tesszük közzé.