Stránka 1 z 3

Zaseknutí Una uprostřed výpisu na LCD

Napsal: 31 říj 2022, 10:32
od LukasO
Dobrý den,
potřebuji radu, jestli se někdo nesetkal s podobným problémem.
Na Unu mám přes i2c LCD, modul času, pak přes uart čidlo CO2 a DHT 22. Vše funguje více méně tak jak má. Občas čidlo ukáže nesmyslnou hodnotu,ale jinak prostě dělá více méně to co má.
Problém nastane, když na desku připojím rele shield. Připadá mi, jak kdyby ho nemohla deska (regulátor napětí) utáhnout. Už jsem si ošetřil i to, aby se zapnulo vždy jen jedno relé... ale i přes to se po nějakém čase program sekne (shodou okolností uprostřed výpisu na display). Pokud shield odpojím, resetuju, program opět jede jak má.
Za radu předem děkuji.

Re: Zaseknutí Una uprostřed výpisu na LCD

Napsal: 31 říj 2022, 13:08
od KamilV
No a jak je to uno napájeno? Měřil si VIN v okamžiku výpisu na LCD? Relátka jsou napájena z čeho?
Uno se sekne a zůstane, nebo resetuje? Tipuji na kolísavé napájení.

Re: Zaseknutí Una uprostřed výpisu na LCD

Napsal: 01 lis 2022, 06:32
od LukasO
Celý projekt byl napájen z jednoho zdroje (12V/150W) a zřejmě byl problém v tomto napájení. Relé je shield, bere si napětí z desky. A spíná zátěž, která je skokově 80W (peltierův článek, který v měřeném boxu udržuje konstantní teplotu). Toto zřejmě způsobovalo zaseknutí. Včera jsem zapojil uno na zvlášť zdroj a už sekání nenastalo.
Nicméně ráno jsem přišel a program ukazoval 19° ale v boxu už bylo 24°. Neměl jsem moc čas studovat, kde vznikla chyba. Ale stalo se mi několikrát, že mi DHT vrátilo špatnou hodnotu (non nebo třeba 36°). Proto tam mám kontrolu a pokud vrátí chybnou hodnotu, ponechávám původní.
Taky porovnávám float teplotu z čidla s int nastavenou programově. To taky ještě předělám. A doplním ještě jedno čidlo pro komparaci.
Měřím teplotu, vlhkost a co2. Pokud je co2 mimo limity, vyvětrám, pak vytopím/vychladím na potřebnou teplotu a nakonec zvlhčím na potřebnou úroveň.
Ale to už je trochu mimo toto téma.
Odpověď na tvou otázku - Vin sem neměřil, nicméně věřím, že Vin nekleslo (problém bude impuls a frekvence zdroje). Deska se kousla, vyfoceno nemám, ale bylo to třeba druhý řádek výpisu, někde uprostřed.

Re: Zaseknutí Una uprostřed výpisu na LCD

Napsal: 01 lis 2022, 10:04
od peterple
Máš problém s EMI. Akonáhle sa arduinisti dostanú do reálneho sveta nabehne tento problém. Dôvod je jednoduchý - nemajú ani šajnu o elektrike. A to spínať 80W odporovej záťaže je to najjednoduchšie čo môže byť. Bojuje sa s tým na dvoch frontoch - hw a sw. Na hw fronte je to filtrovanie napájacieho napätia a galvanické oddelenie riadiaceho systému od okolia. Na sw poli je to napr. použitie watchdogu. Tvoja aplikácia si vyslovene pýta aby si ho začal používať.

Re: Zaseknutí Una uprostřed výpisu na LCD

Napsal: 01 lis 2022, 10:24
od LukasO
No jako procesní inženýr v elektrotechnickém průmyslu o elektrice něco málo vím. Nedošlo mi, že by tam mohla být až taková vazba.
Jak jsem už psal, po oddělení napájení se prvotní problém vyřešil a teď se objevil druhý problém. A u toho mám taky nápad jak vyřešit. Kdybych se tomu mohl věnovat víc, došel bych na to, jen je to bohužel jen koníček a času není mnoho.
Na druhou stranu watchdog, to si budu muset nastudovat, protože nevím. Díky za nasměrování.

Re: Zaseknutí Una uprostřed výpisu na LCD

Napsal: 01 lis 2022, 12:47
od ondraN
U arduino knihoven nejsou vůbec ošetřené chybové stavy I2C sběrnice. Pokud se tam vyskytne nějaký problém, zůstane to viset v té knihovně (tomu by odpovídal nedokončený zápis na displej). WDT by byl rozhodně na místě.

Re: Zaseknutí Una uprostřed výpisu na LCD

Napsal: 01 lis 2022, 14:03
od peterple
Tak si na to prines nejaké poriadne PLC z roboty a máš po probléme. Ušetríš veľa času. Na druhej strane sa nič nenaučíš, lebo tam už to iný inžinieri všetko vychytali, aj sw aj hw. Preto to stojí také peniaze.

Re: Zaseknutí Una uprostřed výpisu na LCD

Napsal: 01 lis 2022, 17:01
od kiRRow
Ty relé shieldy mají jumper, kterým jdou přepnout mezi napájením z desky arduina a extérním napájením.
Pokud to chápu správně, tak používáš jeden zdroj 12V ... výkonem dostatečně dimenzovaný aby utáhnul celý stroj. OK stím není problém, ale ...

Vyskytuje se ti tam spínání velké zátěže (z hlediska zdroje přes polovinu jeho wattáže) ... arduino asi používá svůj vnitřní stabilizátor ... a to napájí displej, relé desku (včetně cívky relé - to jde přepnout tím jumperem) a čidla. Na vstup napájení toho arduina umísti elektrolyt kondenzátor - dal bych 470uF na test ... ale cokoliv 10-1000uF můžeš zkusit. Další možnost je tuto zátěž nespínat nárazově, ale postupně pomocí PWM regulace. Jestli se ti tam vyskytne cokoliv s indukcí (cívka, motor) - to je taky třeba ošetřit, cívku diodou v závěrném směru (všimni si že na tom relé shieldu ta dioda je), motor rozběhovým kondenzátorem

Další věc je že I2C je původně vymyšleno pro komunikací čipů v rámci jedné desky plošeného spoje ... to že to funguje na metr a půl po kabelu je docela spíš haluz ... kabel co vede i2c by měl být stíněný a stítění uzemněno v jednom jediném bodě ... druhý problém vzniká v kapacitě vedení, i když to máš dobře stíněné, to vedení by nemělo být kroucené a jeho parazitní kapacita nesmí přesáhnout určitou hodnotu (jak tam máš UTP/FTP kabl tak zapoj třeba hnědý a zelený) ... třetí problém je občas v tom, že když zapojíš více desek na i2c, tak každá má své vlastní pull up rezistory a tím dojde k jejich paralernímu zapojení, je třeba to odpájet a nechat je jen na první desce.

Ve skutečnosti by to mělo nějak fungovat že jedno arduino po rs485 lince komunikuje s druhým klidně na kilometr daleko, a to je vzdáleno od čipu pár cm a komunikuje sním po i2c a po rs485 to posílá zpátky. A ještě mu tam posíláš raději 12V místo 5V (i když na ten kilometr by už mělo mít svůj vlastní zdroj). Málo kdy se povede postavit něco funkčního v reálném světě bez další "bižuterie" ...

Re: Zaseknutí Una uprostřed výpisu na LCD

Napsal: 02 lis 2022, 08:50
od LukasO
Suprově popsáno. Díky.

To napájení mám už vyřešeno (zvlášť zdroj pro arduino).
I2C sběrnici jsem použil kvůli úspoře, protože klasicky bojuju s nedostatkem vstupů - pokud ale je takto náchylná na rušení a v knihovnách není ošetřeno chybové stavy..). Relé sem volil kvůli jednoduchosti a možnosti přepínacího pinu (pomocí změn polarity relé měním, zda peltier topí/chladí).
Na základě toho, co tu bylo popsáno objednám mega (víc I/O portů, display přehodím na OLED (bez i2c), relátka vyměním za ssr a snad už bude klid :-)

Poznámka k radě "abych použil PLC" - tak můžu koupit profesionální (dokonce hotový) řešení, můžu na to vzít simensa... no ale, to tak nějak postrádá smysl tohoto fóra :-) Hraju si s arduinem, abych se něco naučil, ne abych tam cpal plc

Re: Zaseknutí Una uprostřed výpisu na LCD

Napsal: 02 lis 2022, 10:12
od ondraN
Ještě zkus zvážit možnost použití dvou arduin, jedno pro měření a zobrazování, to by mělo mít na to i dost pinů i bez použití I2C displeje. Druhé jen pro spínání relé. Spojit je můžeš přes sériový port, ten je naprosto bezproblémový. Dvě aduina je více zábavy, méně peněz nez jedno Mega. :mrgreen: