Stránka 1 z 1

HC12 test komunikacie

Napsal: 02 říj 2021, 08:26
od Sperhak
Zdravím chcem si otestovat moduly a rôzne typy anten na aku vzdialenost mi to pôjde. Mám 2 identické hardware zariadenia to je arduino hc12modul a ledka. Chcel by som aby to fungovalo priblizne takto:
Arduino c1 posle data
Arduino c2 prijme data
Arduino c2 zapne led
Arduino c2 posle data
Arduino c1 prijme data
Arduino c1 zapne led
Arduino c1 posle data

A takto dokola. Napisal som takyto kod ale ono sa to casom rozsynchronizuje a potom kusne na tom ze obidva posielaju rovnake data.

Kód: Vybrat vše

 if(smer_receive == 21 ){               //toto prehod navzajom medzi sebou (hodnotu 21 za 20)
  delay(1000);                          //toto prehod navzajom medzi sebou (hodnotu 1000 za 500)
  digitalWrite(led, HIGH);
     HC_12.println("<101, 21, 0>");
          
  }
   if(smer_receive == 20 ){            //toto prehod navzajom medzi sebou (hodnotu 20 za 21)
     delay(500);                       //toto prehod navzajom medzi sebou (hodnotu 500 za 1000)
     digitalWrite(led, LOW);
     HC_12.println("<101, 20, 0>");
  }
Do jedneho arduina som to nahral takto a do druheho tak ako je v poznamkach.
Dakujem za pripadnu pomoc, ak nepomozete tak nedakujem :D

Re: HC12 test komunikacie

Napsal: 02 říj 2021, 08:50
od analytik
Ahoj! V případě testování dosahu dvou identických zařízení se nabízí jednodušší metoda.
Jedno zařízení vysílá periodicky signál 1 / 0, druhé ho přijímá a bliká LED.
Dokud bliká, jdu s přijímačem dál od vysílače, až přestane, mám maximální dosah platný pro obě shodná zařízení.
Odpadne problém se synchronizací a s hlídáním stavu dvou vzdalujících se zařízení.

Re: HC12 test komunikacie

Napsal: 02 říj 2021, 10:14
od kiRRow
Jinak problém s tou resynchronizací bych viděl v použití delay. Tady se bez přerušení neobejdeš.

Re: HC12 test komunikacie

Napsal: 02 říj 2021, 11:34
od Sperhak
analytik píše:
02 říj 2021, 08:50
Ahoj! V případě testování dosahu dvou identických zařízení se nabízí jednodušší metoda.
Jedno zařízení vysílá periodicky signál 1 / 0, druhé ho přijímá a bliká LED.
Dokud bliká, jdu s přijímačem dál od vysílače, až přestane, mám maximální dosah platný pro obě shodná zařízení.
Odpadne problém se synchronizací a s hlídáním stavu dvou vzdalujících se zařízení.
Takto nie lebo komunikacia nieje spojena nejakym protokolom vysiela to naslepo preto potrebujem aj odozvu z druhej strany. Mohlo by nastat to že signal prijme jeden ale nedokaze ho vyslat k druhemu.

Re: HC12 test komunikacie

Napsal: 02 říj 2021, 11:42
od analytik
Moje chyba. Nepochopil jsem zadání. Sorry!

Re: HC12 test komunikacie

Napsal: 02 říj 2021, 13:17
od Caster
Nedělal bych to nijak složitě. Jak tady poradil analytik, dal bych LEDky na oba konce a signál posílal navzájem. Tak jednoduše uvidíš, na jakou vzdálenost funguje obousměrná komunikace.

V případě větší vzdálenosti, lze na přijímací straně upravit LED tak, že blikne, jen pokud předtím odešle potvrzení vysílači zpět a obdrží od vysílače znovu stejný signál (např. vzestupná binární řada čísel) u něhož bude přidáno potvrzení (např. 1 potvrzovací bit).

Re: HC12 test komunikacie

Napsal: 02 říj 2021, 19:16
od peterple
Zadanie má pomerne jednoduché riešenie:
  1. východzí stav je že nikto nevysiela ale obaja počúvajú a merajú si uplynutý čas
  2. Ak uzol prijme správu tak blikne LED a pošle správu.
  3. Po uplynutí určitého času rôzneho pre každý uzol (napr. 0,5s a 1 sek) uzol odvysiela správu a ide na bod 1.
Samozrejme že to nepôjde cez delay ale treba použiť millis.
Môžes behať, dokiaľ to bliká si v dosahu. Keď to prestane stratil si príjemty alebo ten druhý. Keď sa opäť dostaneš do dosahu tak sa to samo do sekundy opäť rozbliká.

Re: HC12 test komunikacie

Napsal: 02 říj 2021, 21:56
od Sperhak
peterple píše:
02 říj 2021, 19:16
Zadanie má pomerne jednoduché riešenie:
  1. východzí stav je že nikto nevysiela ale obaja počúvajú a merajú si uplynutý čas
  2. Ak uzol prijme správu tak blikne LED a pošle správu.
  3. Po uplynutí určitého času rôzneho pre každý uzol (napr. 0,5s a 1 sek) uzol odvysiela správu a ide na bod 1.
Samozrejme že to nepôjde cez delay ale treba použiť millis.
Môžes behať, dokiaľ to bliká si v dosahu. Keď to prestane stratil si príjemty alebo ten druhý. Keď sa opäť dostaneš do dosahu tak sa to samo do sekundy opäť rozbliká.
Ano tak nejak by som to chcel takze stacilo by delay vymenit za millis a uz by to nemalo mrznut?

Re: HC12 test komunikacie

Napsal: 02 říj 2021, 22:02
od peterple
Nestačilo. Musíš ešte testovať či neprišla správa. Ak prišla (a platná, nie nejaký blud) tak odpovedáš. Ak nepríde nič po ten nastavený čas tak odvysielaš svoju správu.
Ešte som si uvedomil že 0,5 a 1sek nie je dobré časovanie. Lepšie bude 0,5 a 0,8 sek. V tom prvom prípade by teoreticky mohli nastať opakované kolízie keď by sa oba uzly pokúšali neustále vysielať v rovnakom čase.

Re: HC12 test komunikacie

Napsal: 02 říj 2021, 23:10
od Sperhak
Nechcelo sa mi to teraz pisat tak som skusil to najjednoduchsie vymenit 1000 za 800 ako si pisal a uz mi to tu pol hodinu bezi bez zaseknutia takze diki nasmeroval si ma.