Arduino - rušení elektromotorem.

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

Arduino - rušení elektromotorem.

#1 Příspěvek 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?
Uživatelský avatar
rnbw
Příspěvky: 37416
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#2 Příspěvek od rnbw »

A co k tomu mas este pripojene? Ci len samotne Arduino na zdroji?
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#3 Příspěvek od TomasN »

Mám připojené LCD 20x4 přes I2C, bezkontaktní čidlo teploty, 3 potenciometry pro vstup parametrů, 1 tlačítko
Uživatelský avatar
Zaky
Příspěvky: 7050
Registrován: 30 říj 2010, 00:00
Bydliště: Praha

#4 Příspěvek 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áž).
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#5 Příspěvek 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.
Přílohy
IMG_20160423_215846a.jpg
prototyp deska s kabeláží. Použil jsem měděné kabely s Dupont konektory.
(269.57 KiB) Staženo 349 x
IMG_20160423_215935a.jpg
ovládání zezadu. Je to PC case, ve kterém je to celé uloženo...
(269.85 KiB) Staženo 372 x
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#6 Příspěvek 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?
Uživatelský avatar
fero_b
Příspěvky: 581
Registrován: 17 kvě 2004, 00:00
Bydliště: Kosice

#7 Příspěvek 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
Uživatelský avatar
frpr666
Příspěvky: 1051
Registrován: 28 pro 2009, 00:00

#8 Příspěvek 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.
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#9 Příspěvek 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...
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#10 Příspěvek 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
termit256
Příspěvky: 10029
Registrován: 06 pro 2007, 00:00

#11 Příspěvek od termit256 »

A co takhle WDT? u aplikace typu teplomer bys obcasny restart ani nepostrehl
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#12 Příspěvek 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...
termit256
Příspěvky: 10029
Registrován: 06 pro 2007, 00:00

#13 Příspěvek 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.
Uživatelský avatar
TomasN
Příspěvky: 64
Registrován: 15 dub 2016, 00:00
Bydliště: Šumperk

#14 Příspěvek 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...
termit256
Příspěvky: 10029
Registrován: 06 pro 2007, 00:00

#15 Příspěvek 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.
Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“