Stránka 1 z 4

Arduino - rušení elektromotorem.

Napsal: 23 dub 2016, 20:59
od TomasN
Mám potíže s rušením Arduina UNO elektromotorem.
Uno normálně uvedu do provozu, jakmile spustím třeba cirkulárku, CPU okamžitě vytuhne. UNO napájím z PC zdroje Fortron nebo průmyslovým zdrojem 12V, na výstupu zdroje mám transil P6KE12A, kondenzátory 470mikroF a 100nF. Pokud zapojím UNO na baterii, rušení se nekoná. Máte někdo nějaký nápad, co s tím?

Napsal: 23 dub 2016, 21:13
od rnbw
A co k tomu mas este pripojene? Ci len samotne Arduino na zdroji?

Napsal: 23 dub 2016, 21:26
od TomasN
Mám připojené LCD 20x4 přes I2C, bezkontaktní čidlo teploty, 3 potenciometry pro vstup parametrů, 1 tlačítko

Napsal: 23 dub 2016, 21:36
od Zaky
Pokud nelze jinak, digitální vstupy a výstupy oddělit optočleny, nebo jinými izolovanými oddělovači (třeba řada ADUM od Analog Devices), tím se zajistí, že přes obvody okolo procesoru nepotečou nějaké proudy způsobené úbytkem na přívodech v napájení výkonových prvků, které MCU v lepším případě pouze rozhodí, v horším i odpraví do křemíkového nebe. Ona automatizace není jen vzít Arduino, nadrátovat bastl a napsat sketch. Na hraní je Arduino dle mého názoru super věc, ale realizovat robustní obvod pro automatizaci vyžaduje správně provedený HW a použít jen tak nějakou knihovnu od někoho jiného bych si bez důkladného prozkoumání kódu taky nedovolil. Arduino je začátek, pak je potřeba začít více psát vlastní kód a snažit se vše pochopit, ne jen použít, co udělal někdo jiný. A u HW dbát zejména na zásady správného řešení zemních spojů, když už se dostaneš do stavu, že budeš řešit, že to sice bez problémů funguje, ale je potřeba zlepšovat, jak omezit pronikání rušení do měřených analogových signálů, znamená to, že už něco umíš a jsi na dobré cestě. Pro radu je nejlepší dát sem schéma a fotky realizace (DPS, kabeláž).

Napsal: 23 dub 2016, 22:18
od TomasN
Ano, máš pravdu. Pomalu zjišťuji, že nestačí vzít Arduino, k tomu shieldy a další možné moduly a z nich postavit funkční a hlavně robustní systém. Bohužel, za tohle všechno můžou weby plné všemožných tutoriálů, kde autoři tvrdí, jak je jednoduché kdeco z Arduina postavit. Vše teoreticky funguje, někdy i prakticky. Bohužel, pouze do doby, než tohle člověk nasadí do provozu. Pak jen kouká, co se děje a nestačí se divit.
Musím říct, že nějakou zkušenost z provozu mám. Pro bráchu jsem stavěl řízení polymerizátoru, kde se ovládá pár elektorventilů a čerpadílek, která se mi podařila odrušit. Ale po mé momentální zkušenosti, vůbec nechápu, jak to může už několik let fungovat.
No s programováním tak zásadní problém nemám. Pokud mám UNO připojeno na baterii, vše chodí, jak má.
Můj problém je určo el.část. Bohužel nejsem elektrotechnik, takže mi chybí znalost hromady věcí, které pro toto potřebuji. Takže se snažím postupovat krok po kroku.
Čím tedy začít?
Potenciometr mám připojen na +5V, GND a připojení přímo na analogový pin.
Tlačítko je připojeno klasicky s 10k odporem. LCD přímo na I2C a totéž modul čidla teploty.
Schema k tomu neexistuje.

Napsal: 24 dub 2016, 13:54
od TomasN
Martin Pihrt mi poradil použít klasické trafo. Tak jsem to zkusil a vše funguje, jak má. Žádné rušení přes napájení se nekoná. Co dále?
Je třeba nějak oddělit potenciometr, tlačítko, LCD?

Napsal: 24 dub 2016, 21:02
od fero_b
riadiacu CPU je najlepsie oddelit optoclenmi uplne od ostatnych (vykonovych) casti, a cele CPU napajat nejakym DC/DC (galvanicky oddelenym) menicom napr. od Traco Power

Napsal: 24 dub 2016, 21:34
od frpr666
Přesně tak, klasický trafo vinuté. Na přívody dej tlumivky a blokovací kondezátory.
Celé arduino "oplechuj" ať nelezou RF emise z okolí na desku. Je třeba si uvědomit, že UNO má krystal 16MHz, a silné RF ti to můžou "rozhodit"

Kabely I2C a "analogy" udělej "stíněně". Na vstupy si dej zvenku pull-up nebo pull-down rezistor (SMD) 10k.

Napsal: 25 dub 2016, 08:17
od TomasN
Krabičku na UNO mám, kabely používám stíněné. Tlačítko dělám vždy s pull-up rezistorem. Potenciometr se snad přes něj nezapojuje..Jiné vstupy nemám...

Napsal: 25 dub 2016, 13:47
od Atlan
Analogove vstupy pripoj kondikom 100n na zem,ak ti to nicomu nevadi. Ak tam mas tlacitka a pullup tak tiez kondik 47 az 100n na zem. Zvysok pol povedany, a netahat vystupy blizko vstupoch a podobne

Napsal: 25 dub 2016, 15:27
od termit256
A co takhle WDT? u aplikace typu teplomer bys obcasny restart ani nepostrehl

Napsal: 25 dub 2016, 20:04
od TomasN
To není aplikace typu teploměr, to je mikrovlnná sušička na dřevo. Takže občasné restarty by mohly být na závadu...Jedině ukládat před restartem aktuální data o procesu a pak tyto informace vyčíst...
Bude stačit ty blokovací kondenzátory dát na prototypovou desku? Jinam se nevejdou. Jedině navrhnout tišťák a použít z arduina jen CPU...

Napsal: 25 dub 2016, 20:56
od termit256
Nejlepsi by bylo nepouzit z arduina vubec nic, pro takovou aplikaci. Napsat program poradne a ne ho postavit na postahovanych castech ktere klidne mohl slatat nekdo jeste min zkusenejsi nez jsi ty.
Zacni tim ze navrhnes poradnou desku, pekne oboustranou s rozlitou zemi, nesetri blokovacimi kondiky, jakykoliv drat co vede z desky dal nez 30cm oddel optocleny nebo necim podobnym, pred trafo dej poradny filtr, do napajeni transily, tlumivky... Pouzivej v logice vetsi proudy, zadne uA. Odolnost vuci ruseni se podstatne zvysi.

Proste veci ktere tu byly popsany uz milionkrat. Pokud budes mit nejakou slataninu na nepajivem poli, muzes vymyslet vsechno mozne, ale stejne se budes bat roznout svetlo abys cvaknutim vypinace nerozhodil program a neznicil matros v susicce.

Pred restartem od WDT nic neulozis, tan je tam prave proto, ze kdyz se MCU nekde zacykli a nevynuluje ho do nejake doby, provede restart a program bezi od zacatku. Pro tvou aplikaci je to nepouzitelne.

Napsal: 25 dub 2016, 21:02
od TomasN
Program není žádná slátanina. Funguje bez potíží.
S tím návrhem desky bude asi problém. Nemám dostatek zkušeností....Ale pokusím se...

Napsal: 25 dub 2016, 21:05
od termit256
Muze byt klidne chyba i v programu. Proste dostane ze vstupu neco co by bezny arduinista nikdy neocekaval (napr. kratky sled rusivych pulzu) a kousne se.