sâmbătă, 13 aprilie 2019

Comunicare unidirectionala intre 2 placi Arduino

english version

   Pentru a transmite unidirectional (adica doar de al un Arduino catre altul), dar si oarecum securizat  (adica fara sa apara erori de comunicare), se pot folosi mai multe metode, una find prin legare directa folosind comunicarea seriala (de fapt doar o parte din ea, TX de la cel care trimite si pinul RX de la cel ce primeste si firul de masa GND); alta metoda e cea prin transmisie radio (emitator RF -> receptor RF), comunicatii prin Wi-Fi, etc.
   Am testat, pentru simplitate, varianta cu legarea pe 2 fire (comunicatie unidirectionala) si masa (GND), schema de conectare este extrem de simpla:
   Pentru un exemplu de utilizare a unor transmissi simple dintre cel din stanga catre cel din dreapta, vedeti articolul Tech Thurday #005: Arduino to Arduino Serial Communication.
   Pentru a fi un experiment ce poate fi folosit la ceva practic, am ales sa folosesc pentru placa Arduino, ce trimite comenzi, un shield cu afisaj LCD1602 si 5 butoane conectate intr-un divizor rezisistiv, cum e cel prezentat la https://www.dfrobot.com si cel folosit de mine sa realizez un termistat; este cel prezentat in articolul Termostat cu control umiditate (higrostat) - partea a 3-a
Divizorul rezisitiv poate avea valorile astea, dar exista versiuni cu alte valori:
O schema mai detaliata se gaseste la https://www.dfrobot.com
Oricum sketch-ul de la https://www.dfrobot.com/ are posibilitatea alegerii din cele 2 versiuni
   Shiled-ul care l-am gasit eu primul este cel cu versiunea 1.0, asa ca am activat partea aceea:
   Am montat pini pentru a putea lega fire si am realizat un mic montaj la al 2-lea Arduino cu 5 led-uri (LED1 la D4, LED2 la D5, LED3 la D6, LED4 la D7 si LED5 la D8) la masa (GND, cu o rezistenta de limitare a curentului prin leduri de 220 ohmi (100 ohmi ... 1kohm) catre masa (GND).
   Pentru partea de codificare si transmitere a informatiei am folosit programul transmiter_v0.ino, iar pentru receptor si decodificator programul receiver_v0.ino.
   Starile sunt:
- nici un buton apasat
- apasat butonul SELECT (selectie)
- apasat butonul LEFT (stanga)
- apasat butonul RIGHT (dreapta)
- apasat butonul UP (sus)
- apasat butonul DOWN (jos)
  Am facut si un filmulet pentru a fi mai usor de inteles cum apar starile, este cel numit comunicare unidirectionala intre 2 Arduino
   Pentru a intelege cum functioneaza partea de codare din emitator, voi explica partea de divizor rezistiv.
- buton neapasat:
- buton RIGHT apasat
- buton UP apasat
- buton DOWN apasat
- buton LEFT apasat
- buton SELECT apasat
   Am mai facut 2 filmulete;
comunicare unidirectionala intre 2 Arduino (2)
Unidirectional Communication between 2 Arduino boards

Niciun comentariu:

Trimiteți un comentariu