Ovládání krokového motoru - složitě

zz912
Příspěvky: 52
Registrován: 28 črc 2018, 13:49
Reputation: 0

Ovládání krokového motoru - složitě

Příspěvek od zz912 » 24 zář 2018, 21:34

Větrný mlýn

Chtěl bych Vás poprosit o kritiku a připomínkování tohoto schématu:

Obrázek
Obrázek

K čemu bude toto schéma sloužit?
Po zprovoznění bych jím chtěl ovládat model větrného mlýnu na kolejišti TT.
Mlýn bude mít krokový motor(svorkovnice J1, J2), který bude otáčet lopatami.
Ovládání bude probíhat stisknutím tlačítka (svorkovnice J4).
Po stisknutí tlačítka dojde k cyklu kdy mlýn udělá několik otáček s různými
rychlostmi otáček, s prodlevami a pak se zastaví.

Proč tak složitě?
Možná si říkáte proč tak složitě, když by stačil stejnosměrný motor s převodovkou
a tlačítkem. No jde o to, že mám většinu součástek doma a výsledek je jen
vedlejší produkt mých hlavních cílů.

Jaké jsou teda mé hlavní cíle?
1. nechci vyrábět miliónstou blikačku, nebo robota, nebo meteostanici, která po
výrobě skončí jako další krám v šuplíku.

2. chci si zkusit nakreslit plošný spoj a nechat si ho vyrobit. Předchozí projekt
jsem dělal na pájivým poli. Málem jsem se udrátkoval a sesypal z časového pressu.
Mám v plánu si to nechat udělat zde: https://www.plosnaky.cz/
Zanedbatelná cena ve srovnání se stresem co jsem měl.
I proto tam mám ovládání mikrokrokování, což v životě v této aplikaci nevyužiji,
ale záměrně z cvičných úkolů jsem si zkomplikoval život.

3. Chci, abych měl někde nějaké elektrozařízení které mi bude denně fungovat
po dobu pár let, abych si ověřil spolehlivost nějakého svého elektrovýtvoru.

4. chtěl jsem si zkusit odstranit problémy, které jsem měl na předchozím projektu.

Takže jaké vylepšení zde jsou oproti mému předchozímu projektu?
1. Ten nejzásadnější problém byla odolnost proti špatnému zapojení celého modulu.
Původně jsem neměl v projektu ani ochranou diodu proti přepólování. Přece se nespletu.
No dál ani psát nemusím, v 10 večer nemohu najít nějakou chybu, přepojuji co se dá, zkouším.
Pak dám černej drát na červený svorky a červený drát na černý svorky .....
Řeším to vyloženě kulometem - Graetzovo zapojení.
Proti nějaké nečekané chybě vkládám do schematu tepelnou pojistku F1. Předpokládám,
že odběr bude kolem cca 300 až 500 mA . Ovšem použiji pojistku, až podle toho co naměřím.
Krokový motor na driveru proudově utlumím co to půjde. Požadovaný kroutící moment bude minimální.
Dále jsem zde:
https://www.arduino-forum.cz/viewtopic.php?f=9&t=1352
řešil ochranu před vyšším napětím přivedeným do svorek J4 . Mám tam zenerovu diodu D3.1,
odpor R3.1 a kondenzátor C2.
Diodu jsem si vybral:
BZX 55/C 5V1
https://www.gme.cz/zenerova-dioda-bzx83v005-1
Chtěl bych, aby ten vstup byl odolný proti 48V.
V dalších projektech bych chtěl využívat i 48V, což je maximum, které umožňuje driver.
Tudíž když přivedu 48V na svorkovnici J4, tak se otevře dioda D3.1 a skrz ni a odpor R3.1
poteče proud I = U / R = 48V / 1 000 Ohm = 48 mA
Ha, a co teď ? Nějak si nejsem zda to tak může být? Nejsem z datového listu moc chytrej.
Navíc v originále měl odpor jen 22 Ohm, což by znamenalo
I = U / R = 48V / 22 Ohm = 2.18 A

2. Když mi zhořel driver, ať už z jakéhokoliv důvodu (špatně nastavený proud, špatný driver
s vnutřním zkratem, přepolólování ...), tak sebou do věčných lovišť vzal i arduino. To že jsem
zničil dvě komponenty, mi až tak nevadilo, ale děsilo mě, zda tam nějaké to šlusnutí nemohlo
ovlivnit dalších 14 arduin, které byly zapojeny k sobě přes i2c komunikaci.
Proto tam mám zenerovi diody D1.2 až D1.7 a D1.10

3. Dále mi vadilo na předchozím projektu, že po zapnutí se nejdříve spustí driver a pak až
po naběhnutí arduina se vypne:
řešeno zde:
https://www.arduino-forum.cz/viewtopic.php?f=9&t=1409
Do schématu jsem doplnil PullUp rezistor 4.1

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Ovládání krokového motoru - složitě

Příspěvek od jankop » 25 zář 2018, 07:54

1. C1 má chybný popis hodnoty, s ohledem na motor v zapojení elektroniky bych použil kapacitu cca 0,5 - 1mF/25V
2. Napájení obvodu A4988 nemůže být řešeno přes rezistor R2.10 kvůli velkému úbytku napětí.
3. Konektor J4 - proč přepěťové ochrany, když signal spínáš do GND?
4. Uvědomuješ si, že zenerovou diodou 5V1 může už při 4,8V protékat proud 5mA, který se bude se sebemenším nárůstem napětí strmě zvyšovat? Pokud bude mít interní stabilizátor napětí něco přes 5V a bude tepleji, pak můžeš přetížit Arduino jen svými ochranami.

zz912
Příspěvky: 52
Registrován: 28 črc 2018, 13:49
Reputation: 0

Re: Ovládání krokového motoru - složitě

Příspěvek od zz912 » 25 zář 2018, 12:13

1. C1 má chybný popis hodnoty, s ohledem na motor v zapojení elektroniky bych použil kapacitu cca 0,5 - 1mF/25V
Máte pravdu. Popletl jsem si převod jednotek (m místo n), podle výrobce tam má být 100uF =0.1 mF
Obrázek
2. Napájení obvodu A4988 nemůže být řešeno přes rezistor R2.10 kvůli velkému úbytku napětí.
Přes odpor R2.10 neteče napájení driveru, ale pouze napájení logiky driveru, která by měla být v uA, pokud jsem
dobře pochopil katalogový list
3. Konektor J4 - proč přepěťové ochrany, když signal spínáš do GND?
Chtěl bych aby tento obvod zvládl, když si někdo poplete svorky J3 vstup napětí 12V(u dalších projektů 24V a 35V) a J4 vstup pro tlačítko.
Tento projekt je testovací a tato ochrana zde má malý význam, když ji ale vyřeším, chtěl bych ji použít u dalších projektů.
4. Uvědomuješ si, že zenerovou diodou 5V1 může už při 4,8V protékat proud 5mA, který se bude se sebemenším nárůstem napětí strmě zvyšovat? Pokud bude mít interní stabilizátor napětí něco přes 5V a bude tepleji, pak můžeš přetížit Arduino jen svými ochranami.
Tohle jsem nevěděl. Nějak v tom všem plavu.

Co byste navrhoval?

Teď přemýšlím o tom, že bych svorky J4 ochránil optočlenem. Optočlen bych spínal nejvyšším napětím v obvodu v tomto případě 12 V. Když by někdo připojil 12V na svorky J4, tak by se nic nestalo.

No a co se týče ochrany arduina před vadným driverem, tak přemýšlím vrátit se k variantě předchozí:
Obrázek
Ale doplnit ji o PullDown rezistory. Úbytek napětí na obyčejných diodách by měl být 0.7 V, takže stále bych se měl vlézt do rozsahu 3V až 5.5V.
Otázka je, zda by pak nedělalo neplechu, kdybych měl na vstupu driveru EN před diodou PullUp rezistor a za diodou PullDown rezistor.Předpokládám, že PullDown rezistor by musel být daleko větší než PullUp rezistor.

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Ovládání krokového motoru - složitě

Příspěvek od jankop » 25 zář 2018, 14:59

Podle katalogového listu je maximální proud logiky A4988 8mA, určitě si dovedeš spočítat jaký vznikne úbytek napětí na R2.10
Principielně nemůže být funkční PullUp a PullDown rezistor současně.
Opravdu si to zbytečně komplikuješ, dej tam tedy 6 optočlenů, pro Vdd A4988 dej zvlášť stabilizátor 5V a na J4 sedmý optočlen.

zz912
Příspěvky: 52
Registrován: 28 črc 2018, 13:49
Reputation: 0

Re: Ovládání krokového motoru - složitě

Příspěvek od zz912 » 25 zář 2018, 21:53

Takhle jsem vymyslel zapojení optočlenu pro výstup J4:

Obrázek

zz912
Příspěvky: 52
Registrován: 28 črc 2018, 13:49
Reputation: 0

Re: Ovládání krokového motoru - složitě

Příspěvek od zz912 » 25 zář 2018, 23:05

Opravdu si to zbytečně komplikuješ,
No já vím, ale když jsem dělal ve firmě na LED svítidla (haly, kanceláře), tak komponenty, které jsme používaly, byly tak odolné, že buď fungovaly správně (při správném zapojením), nebo nefungovaly (při špatném zapojením). Třetí varianta, že by se zničily tak nenastávala. Běžně se stávalo, že ženský u pásu zapojily vstup 230V na proudový výstup pro LED diody, nebo kdejaké jiné šílené kombinace a vždy se to akorát přepojilo a jelo se dál.
Čtvrtá varinta, která mi teď nastává, že část plošňáku vyhoří a o druhé se modlím, aby nebyla načlá, tu jsem tehdá neznal.

Proto bych chtěl poděkovat za trpělivost, kterou se mnou máte, když se snažím aspoň trochu se přiblížit k blbovzdorným komponentám jako jsem znával.

Nakreslil jsem jak by mohlo fungovat zapojení pro ovládání vstupů A4988
Obrázek

Pořád se tam snažím nacpat ty diody, protože ani tak nevím, co by se stalo, kdy na výstupu z 7085 a na výstupu z pc817 bylo najednou 12 až 35 Voltů.
Odpor R2 1kOhm by měl být PullDown rezistor. Přiznám se, že hodnotu 1 kOhm jsem střelil.

Posílám svou motivaci, pro řešení těchto problémů:
Obrázek
Při každém shoření nějaké té komponenty jsem chtěl s Arduinem skončit a jít rozvážet odpadky.

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Ovládání krokového motoru - složitě

Příspěvek od jankop » 26 zář 2018, 12:38

Optočleny mají spoustu parametrů. Jeden z nich je i current transfer ratio - přenosový poměr, který vyjadřuje poměr přenesení proudu mezi vstupním a výstupním prvkem. Udává se v procentech.
Pro připojení J4 musíš k optočlenu na D10 přidat ještě PullUp rezistor, pokud nepoužiješ interní, zvolil bych cca 10Kohm. Ty dvě diody přímo na kontaktech nedávají smysl. Maximálně jedna u optočlenu a to jen v případě, že použiješ pro spínání J4 externí zdroj. Rezistor 470R bych nahradil hodnotou cca 3k3. Pak se dá předpokládat, že spínač bude fungovat v rozsahu 5-12V. Optimalizací rezistorů na vstupu a výstupu by bylo nepochybně možné rozsah vstupních napětí rozšířit až třeba na těch 48V. Vycházet musíš z přenosového poměru. Jestli mám na vstupu 12V, potečou rezistorem 3k3 cca 3mA. Při přenosovém poměru =>100% a rezistoru v kolektoru tranzistoru cca 10k bude tranzistor spolehlivě saturován a bude na něm cca 0,2- 0,3V tj. cca logická úroveň "LOW".
Připojení A4988 - Rezistor R1 220 je příliš malý, dal bych cca 1k2. Na vstup A4988 patří PullDown rezistor cca 10k. Je to trochu neobvyklé zapojení optočlenu se společným kolektorem, ale neměl by být problém. Při použití optočlenů a PullUp rezistorů by byly všechny signály negované. To může být problém v případě použití knihoven pro řízení krokových motorů.
Další ochranné diody již nemají smysl. Optočlen má izolační pevnost často 5000Voltů. Ani v případě poruchy 78L05 nemůže být na Vin Arduina víc jak na vstupu pro 12V.
Já bych ještě zrušil ten můstek na vstupu a nahradil ho jedinou správně polarizovanou diodou. Ono to totiž může přinášet nepříjemné důsledky při spojení více zařízení na jedné sběrnici.

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Ovládání krokového motoru - složitě

Příspěvek od jankop » 26 zář 2018, 13:55

Ještě jedno upozornění. Často používané stabilizátory 5V v Arduinu mají maximální vstupní napětí 25V. A může to být i horší. Při 35 voltech již pravděpodobně odkráčí do křemíkového nebe a vezmou sebou nejspíš i to ostatní.
Ještě se vrátím k těm optočlenům, asi bude jistější použít PullUp rezistory za cenu negace výstupního signálu. Zapojení optočlenu se společným kolektorem a emitorem není totožné a mám obavy, že by logické úrovně nemusely být garantovány. Tak raději emitor přímo na zem a PullUp. Nebo si to vyzkoušej s voltmetrem, optočlenem a jedním tlačítkem na prkénku.

zz912
Příspěvky: 52
Registrován: 28 črc 2018, 13:49
Reputation: 0

Re: Ovládání krokového motoru - složitě

Příspěvek od zz912 » 26 zář 2018, 14:44

Pro připojení J4 musíš k optočlenu na D10 přidat ještě PullUp rezistor, pokud nepoužiješ interní, zvolil bych cca 10Kohm.
Počítal jsem s interním PullUp rezistorem,ale pokud to bude výhodnější, tak použiji externí. Nechám si od Vás poradit. Výhodu v externím PullUp rezistoru vidím v tom, že budu vědět, jaký rezistor tam ve skutečnosti je. Hodnota interního PullUp rezistoru se liší v různých podkladech a používám čínská arduina, takže bůhví co tam je.
Rezistor 470R bych nahradil hodnotou cca 3k3.
Připojení A4988 - Rezistor R1 220 je příliš malý, dal bych cca 1k2.
Mohl bych poprosit o vysvětlení, jak se dá dostat k této hodnotě?
V datasheetu od PC817 jsem našel tyto hodnoty:
PC817-datasheet-001.PNG
PC817-datasheet-002.PNG
A z toho jsem si vydedukoval, že ta "led dioda" v optočlenu musí mít od 20 do 50 mA a dle toho jsem spočítal ten odpor.
V jednom případě pro 12V a v druhém pro 5V.
Já bych ještě zrušil ten můstek na vstupu a nahradil ho jedinou správně polarizovanou diodou. Ono to totiž může přinášet nepříjemné důsledky při spojení více zařízení na jedné sběrnici.
Nechám si poradit a zruším ho. U dalších projektů budu mít určitě sběrnici. Buď RS485 nebo kombinaci RS485 a i2c + spousty čidel využívají sběrnici, aniž bych to věděl. (Zapojím komponentu dle schematu a do knihovny nekoukám)
Optočleny mají spoustu parametrů. Jeden z nich je i current transfer ratio - přenosový poměr, který vyjadřuje poměr přenesení proudu mezi vstupním a výstupním prvkem. Udává se v procentech.

Při přenosovém poměru =>100% a rezistoru v kolektoru tranzistoru cca 10k bude tranzistor spolehlivě saturován a bude na něm cca 0,2- 0,3V tj. cca logická úroveň "LOW".
Mám tomu rozumět tak, že v optočlenu by měl téct stejný proud jak diodou tak tranzistorem?
Ještě jedno upozornění. Často používaný stabilizátory 5V v Arduinu mají maximální vstupní napětí 25V. A může to být i horší. Při 35 voltech již pravděpodobně odkráčí do křemíkového nebe a vezmou sebou nejspíš i to ostatní.
12V beru jako strop. Ovšem problematiku více napětí plánuji řešit až v dalším projektu. V předchozím projektu jsem měl 24V vstup. 12V čidla + arduino (byl tam DC-DC převodník 24V/12V), 5V logiku(stabilizátor arduino), 3.3V displej(stabilizátor arduino). Vyřešení hodně problémů plánuji použitím na zakázku udělaných plošných spojů, kde nebude hrozit chyba při drátkování uvnitř plošného spoje.

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Ovládání krokového motoru - složitě

Příspěvek od jankop » 26 zář 2018, 17:49

Faktem je, že třeba v prostředí se silným rušením je vhodné používat relativně nízké hodnoty PullUp rezistorů. Ty interní mívají často hodnoty několika desítek Kohm.
Forward voltage je úbytek napětí na diodě v propustném směru. Protože není úplně lineární, udává se pro nějakou rozumnou hodnotu propustného proudu, tady 20mA. To ovšem neznamená, že musíš optočlen tímto proudem budit. Forward voltage bys měl při výpočtu rezistoru pro LED odečíst od napětí, kterým budeš sériovou kombinaci LED - rezistor napájet. 50mA je Absolute Maximum Ratings, tedy mezní hodnota. Já jsem v obou případech uvažoval hodnotu proudu LED If cca 3mA. Pochopitelně čím nižší proud tím menší zátěž výstupu, na druhé straně je třeba uvažovat reálné impedance buzených vstupů, ty jsou ale často vysokoimpedanční. Je třeba volit nějaký kompromis.
Mám tomu rozumět tak, že v optočlenu by měl téct stejný proud jak diodou tak tranzistorem?
Ne to není rozhodně podmínkou, přenosový poměr udává více méně proudové "zesílení" optočlenu, které může být menší i větší než jedna (1 odpovídá pochopitelně 100%)
Ve skutečnosti při tomto použití pracuje optočlen ve spínacím režimu.

Odpovědět

Kdo je online

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