HC12 test komunikacie

Odpovědět
Sperhak
Příspěvky: 43
Registrován: 22 čer 2018, 19:49
Reputation: 0

HC12 test komunikacie

Příspěvek od Sperhak » 02 říj 2021, 08:26

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

analytik
Příspěvky: 98
Registrován: 26 čer 2020, 12:48
Reputation: 0
Bydliště: Děčín

Re: HC12 test komunikacie

Příspěvek od analytik » 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í.

Uživatelský avatar
kiRRow
Příspěvky: 658
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: HC12 test komunikacie

Příspěvek od kiRRow » 02 říj 2021, 10:14

Jinak problém s tou resynchronizací bych viděl v použití delay. Tady se bez přerušení neobejdeš.

Sperhak
Příspěvky: 43
Registrován: 22 čer 2018, 19:49
Reputation: 0

Re: HC12 test komunikacie

Příspěvek od Sperhak » 02 říj 2021, 11:34

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.

analytik
Příspěvky: 98
Registrován: 26 čer 2020, 12:48
Reputation: 0
Bydliště: Děčín

Re: HC12 test komunikacie

Příspěvek od analytik » 02 říj 2021, 11:42

Moje chyba. Nepochopil jsem zadání. Sorry!

Caster
Příspěvky: 184
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: HC12 test komunikacie

Příspěvek od Caster » 02 říj 2021, 13:17

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).

peterple
Příspěvky: 18
Registrován: 22 zář 2021, 20:20
Reputation: 0

Re: HC12 test komunikacie

Příspěvek od peterple » 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á.

Sperhak
Příspěvky: 43
Registrován: 22 čer 2018, 19:49
Reputation: 0

Re: HC12 test komunikacie

Příspěvek od Sperhak » 02 říj 2021, 21:56

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?

peterple
Příspěvky: 18
Registrován: 22 zář 2021, 20:20
Reputation: 0

Re: HC12 test komunikacie

Příspěvek od peterple » 02 říj 2021, 22:02

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.

Sperhak
Příspěvky: 43
Registrován: 22 čer 2018, 19:49
Reputation: 0

Re: HC12 test komunikacie

Příspěvek od Sperhak » 02 říj 2021, 23:10

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.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti