Stránka 1 z 1

Odfiltrování impulzů z ohradníku

Napsal: 16 dub 2023, 19:10
od Energizer7
Zdravím, obracím se zde pro radu.

Mám obvod na Arduino Nano, které ovládá dveře kurníku zapomocí motoru a L298N. Celý obvod je napojení na Solární panel do nějaké běžného Solar charge controlleru, který je připojen na 12v gelovou baterii. Dále je na tuto baterii napojen i ovládací panel ohradníků. Objevuje se problém, že s vypnutým ohradníkem funguje celý kód z Arduina úplně bez problému. Jakmile je ovšem ohradník zapnut, Arduino zůstává v jakýchsi mezistavech, ovšem tuším, že za to může zmiňovaný LN298N, který ovládá motor. Je nějakým způsobem možno "odstínit" případně odflitrovat impulzy z ohradníku?

Díky za jakoukoliv radu, samozřejmě bude-li potřeba doplním odpovědi na případné dotazy.

Re: Odfiltrování impulzů z ohradníku

Napsal: 17 dub 2023, 09:25
od ondraN
Za to může elektromagnetický impuls od trafa ohradníku a případná špička, která projde po napájení. Jediná pomoc je důkladná fitrace napájení a odstínění obou zařízení. Také případné umístění blízko sebe má velký vliv, takže co nejdále od sebe. Také by bylo dobré použití WDT v arduinu, aby se tyhle záseky vyřešily.

Re: Odfiltrování impulzů z ohradníku

Napsal: 17 dub 2023, 12:03
od Energizer7
Děkuji za radu, pokusil jsem se zakreslit schéma, které by mohlo být nápomocné. Ještě uvedu, že cesta od Sollar Charge Controlleru ke krabici s arduinem je zhruba +- 5m. Tudíž ten ovládací panel je v dostatečné vzdálenosti, ovšem nebude zde dodrženo Vámi zmiňované odstínění. Ještě k použítí WDT v arduinu, zajímavý nápad. Abych ještě dodal vhled do kódu. Vše je ovládáno světelným senzorem (BH1750 uvedeno na skice). Pokud je tma, sepne se relé na 1h (rozsvítí se světlo) a poté sjede motor. Na obvod jsou ještě připojeny 2 magnetické kontakty - abychom dokázali odlišit, zda má motor ještě jet nahoru/případně dolů. To poznáme tím, že se nám sepnou buď magnety nahoře případně dole. Právě během této hodinové pauzy zůstává arduinu v podivných stavech a motor nesjede, případně sjede pouze nějaký kousek. Ovšem tyto podivné stavy nastávájí pouze, pokud je zapnutý ohradník. Když je ohradník vypnutý vše funguje v pořádku. Možná ještě úplně nakonec dodám, že toto rozsvícení na 1h je realizováno pomocí funkce delay(), zda i toto nemůže být příčinou.
Untitled Sketch_bb.jpg

Re: Odfiltrování impulzů z ohradníku

Napsal: 17 dub 2023, 12:33
od ondraN
Jak jsou řešené vstupy do arduina od těch kontaktů? Jsou nějak ošetřené proti impulsnímu rušení? To bývá taky cesta, někdy lepší než napájení, jak se může impuls dostat do MCU a rozhodit ho.
Jinak, ten odstup byl myšlen, jako vzdálenost od generátoru ohradníku od arduina.

Re: Odfiltrování impulzů z ohradníku

Napsal: 17 dub 2023, 12:41
od Energizer7
ondraN píše:
17 dub 2023, 12:33
Jak jsou řešené vstupy do arduina od těch kontaktů? Jsou nějak ošetřené proti impulsnímu rušení? To bývá taky cesta, někdy lepší než napájení, jak se může impuls dostat do MCU a rozhodit ho.
Jinak, ten odstup byl myšlen, jako vzdálenost od generátoru ohradníku od arduina.
Zdravím, vstupy do Arduina od LN298N, které ovládá motory tak i od jiných součástek nejsou nijak ošetřeny proti impulsnímu rušení, jsou připojeny klasickým vodičem, snad chápu správně Váš dotaz.

Re: Odfiltrování impulzů z ohradníku

Napsal: 17 dub 2023, 13:19
od ondraN
Tak bych nejdříve zkusil tyhle vstupy ošetřit, nejlépe nějakým RC členem. Dále připojit ten generátor ohradníku přes nějaké tlumivky (v obou větvích napájení) a mezi tlumivkami a generátorem blokovat kondenzátory (kombinace několika keramik (cca 1M) a lowESR elytů(cca 1000M)).
Pokud je program koncipován, jak píšete, tak použití WDT bude problém, protože po resetu nebude arduino vědět, kolik času již uplynulo v čekací smyčce, pokud byla aktivní. Jedině si to ukládat do vniřní EEPROM, ale ta má omezený počet zápisů na buňku, takže to jedině řešit ukládáním na proměnnou adresu cirkulárně.

Re: Odfiltrování impulzů z ohradníku

Napsal: 17 dub 2023, 16:59
od kiRRow
No velmi snadno můžeš rozlišit odkud se ten rušící element bere tak, že pro test napojíš arduino přes usb na nějakou power banku. Časová náročnost minimální. Tím obejdeš napájení a pokud se to stále bude zasekávat, tak rušení jde přes vodiče připojené na IO ( ono je dobré i tak mít veškerou kabeláž stíněnou - hlavně když to jde mimo "krabičku", důležité je stínění vodičů ukostřit všechno pouze v jednom jediném bodě - jinak to může nasekat více škody jak užitku ).

Ano, EEPROM se časem zničí, ale taky vydrží stovky tisíc zápisů, člověk se musí fakt snažit, aby jí zlikvidoval - a nebo fakt fatalerror. Jsou RTC moduly s vlastní eeprom, externí eeprom - vyhodím švába, dám novýho ... SD karta z hlediska arduina udrží obrovské množství dat a je prakticky nezničitelná ... jsou švábi co pracují jako RAM ale mají vlastní EEPROM do které přepíší svůj obsah při výpadku napájení.

Re: Odfiltrování impulzů z ohradníku

Napsal: 17 dub 2023, 21:25
od peterple
Ohľadom resetu od watchdoga. SRAM sa resetom nenuluje, robí to len default C kód ktorý nuluje globálne premenné. Assembleristi to teda vedia vyriešiť ľahko. V C existujú aj nenicializované globalne premenné ale neviem ako sa to v arduine deklaruje. ATMEGA má však okrem tejto SRAM aj zopár IO buniek ktoré sa dajú využiť ako pamäť ktorá prežije reset. Zdroj resetu sa dá zistiť, teda po resete môžem pokračovať v časovaní kde som skončil. Počítanie času netreba ukladať do EEPROM. Môže zostať v SRAM. Samozrejme je tu určité riziko že tá šupa poškodí aj obsah SRAM. To sa rieši kontrolnou sumou.

A najprv treba urobiť všetky hw úpravy preto aby sa tie šupy žiadnou cestou nedostali do arduina. To už ale chce aj nejaké znalosti z elektrotechniky, prípadne veľa študovania.

edit:
tu je link kde riešia ako urobiť premennú ktorá sa po resete nenuluje
https://forum.arduino.cc/t/how-to-not-i ... es/56805/6

Re: Odfiltrování impulzů z ohradníku

Napsal: 17 dub 2023, 21:58
od gilhad
Jen sem plácnu něco o filtraci napájení a pokud mě tazatel odpálkuje, že tohle přece dávno ví "každý a jeho pes", tak jen dobre :lol:

https://kubac.jecool.net/petr-kubac.blo ... akuje.html
https://kubac.jecool.net/petr-kubac.blo ... dil-1.html