sâmbătă, 1 iunie 2019

Mesaje complexe intre placi Arduino pe comunicatie seriala (2)

    Pentru a vedea utilitatea celor prezentate in articolul anterior am modificat programele sa transmit intr-un singur mesaj 3 valori alese aleator: o temperatura de genul -23.50C sau +23.50C, starea unui senzor (0 sau 1) si un procent (0 la 100).
   Schema de conectare este aceeasi
   Deoarece nu pot transmite decat valori intregi, ma voi folosi de un artificiu, voi trimite prima valoare un numar de 10 ori mai mare ca temperatura, a doua valoare va fi de un numar format din semnul temperaturii (1 pentru minus si zero pentru plus) inmultit cu 10 si starea vibratiei (0 sau 1) si procentul.
   De exemplu, daca am temperatura de +2,40C, starea senzorului activata (1) si procentul de 17%, voi transmite asa:
- primul numar va fi 24
- al doilea numar va fi 1, deoarece semnul temperaturii e plus si starea senzorului 1, deci 10*0+1=1
- al treilea numar 17.
   Daca al doilea Arduino primeste: 119,11,39, vom obtine:
- temperatura este -11,90C deoarece al doilea numar este 11 = 1*10 + 1, deci semn negativ, iar primul numar e 119 = 11,9*10;
- starea senzorului e activa 1, fiind cifra unitatilor de la al doilea numar
- procentul de umplere bazin e 39%, fiind chiar la treilea numar.
    Testul l-am realizat, ca si data trecuta, cu trimiterea datelor de o placa Arduino Uno, care are un shield pe care este fixata o placa Arduino Nano:
   Programul pentru codare si transmitere este tx_2.ino, iar pentru receptie si decodare rx_2.ino !
   Am facut si 2 filmulete:

Niciun comentariu:

Trimiteți un comentariu