Bastlení
Atari Portfolio
zpět na předchozí stranu

Řadič s jednočipem pro řízení
2 krokových motorků se středem vinutí

 
 
Pouze schéma a návrh ovládání - bez programů.
Tento řadič zůstal jen ve fázi předběžného návrhu, který jsem nerealizoval ani jako hardware ani jako software. Protože se ale objevilo několik zájemců o řízení krokových motorků, nechal jsem toto zapojení zde pro inspiraci jiným .

Řadič pro řízení krokových motorků z počítače - můžete s nimi rozhýbat například robota, manipulátor - mechanickou ruku, nebo něco jiného podle vlastní fantazie.

Tento řadič se připojuje k řídícímu počítači přes sériové rozhraní, napěťové úrovně mohou být RS232 i TTL, takže je možno jej řídit nejen z PC, ale i osmibitovým nebo jednočipovým počítačem.

Řadič je určen pro přímé řízení dvou krokových motorků s vyvedeným středem vinutí. Rychlost komunikace po sériovém rozhraní je nastavitelná propojkou - 2400Bd nebo 9600Bd. Řadič je navržen tak, aby byl kompatibilní s řadičem serv SSC51 (který vychází z podobného výrobku firmy SEETRON - řadičem SSC).
Adresu řadiče krokových motorků je možné nastavit propojkami, takže je možno k jednomu sériovému rozhraní připojit až 8 těchto řadičů a řídit tak až 16 krokových motorků. Rozsah adres byl zvolen tak, aby bylo možno tyto řadiče používat současně s řadiči serv SSC51. Pokud by bylo potřeba řídit větší počet krokových motorků, byla by nutná drobná změna v programu jednočipu.

Způsob ovládání:
Z řídícího počítače se vyšle sekvence tří bajtů - značkový bajt (255), bajt s číslem vybraného krokového motorku +128 (128...143), bajt s povelem pro vybraný motorek (0...254).
Značkový bajt slouží k synchronizaci přenosu, proto žádný jiný bajt nesmí mít hodnotu 255.
Bajt s číslem krokového motorku je v rozsahu 128+(2x adresa řadiče)+(motor 0-1). Od adresy 128 se začíná kvůli možnosti používat současně i řadiče serv. Takže pro řadič s adresou 0 je rozsah adres 128-129, pro řadič s adresou 1 je rozsah adres 130-131 ... atd. až pro maximum by byla adresa řadiče 7 a rozsah adres motorků 142-143.
Bajt s povelem pro adresovaný motorek - tento bajt už je rozdělen na bity :
Bit 7 určuje, zda půjde o povel k pohybu nebo o nastavení vlastností pohybu adresovaného motorku.
Je-li bit 7=0, jedná se o pohyb. Potom má další význam bit 6, který určuje směr pohybu a bity 0-5 určují počet kroků daným směrem. Rozsah hodnot posílaných do řadiče je tedy 0-127, přitom dvě hodnoty mají speciální význam : hodnota 0 - povel k přejetí motorku do nulové (krajní) polohy a vynulování fronty povelů, hodnota 64 při rozboru po bitech by znamenala otáčení v opačném směru o 0 kroků, její význam je okamžitý stop a vynulování fronty povelů.
Je-li bit 7=1, jedná se o nastavení vlastností adresovaného motorku.
Je-li potom bit 6=0, jedná se o nastavení rychlosti krokování motorku. Rozsah je 0-63, čili hodnota posílaná do řadiče je 128-191. Hodnota 0 znamená nejrychlejší pohyb (není vkládáno žádné dodatečné zpoždění), jeden krok trvá 1ms, rychlost krokování je 1000 kroků za sekundu. Ne každý motorek je schopen tak rychlého krokování, takže hodnota po zapnutí řadiče je nastavena na 9, což znamená 1ms základního zpoždění + 9ms dodatečného zpoždění = 10ms na jeden krok, 100 kroků za sekundu. Nastavení rychlosti lze použít k plynulému rozjezdu a zpomalování na konci pohybu. Proti pevné rychlosti krokování je tak možno pohyb zrychlit, protože krokový motorek je schopen z klidového stavu rozjezdu určitou maximální rychlostí, např. 200 kroků za sekundu, ale při pohybu už je schopen krokovat rychlostí i dvojnásobnou (podle typu). Dojezd se ovšem z maximální rychlosti musí provést se zpomalením krokování, jinak dojde k přeběhu a tím ke ztrátě polohy.
Je-li bit 6=1, jedná se o další nastavení dané bity 0-5. Zde mám nachystány zatím pouze tyto možnosti:
bity 0,1 proud (default 1) :
0 .. vypnout proud do motorku, hodnota posílaná do řadiče je 192
1 .. krokování plné, proud do jednoho vinutí, hodnota posílaná do řadiče je 193
2 .. krokování plné, vyšší krouticí moment, hodnota posílaná do řadiče je 194
3 .. krokování s polovičním krokem, hodnota posílaná do řadiče je 195

Shrnutí :

bajt hodnota význam
1. 255 značka začátku přenosu
2. 128 + 2x adresa + (0-1) adresa řadiče a číslo krokového motorku
3. 0-254 00000000 0 inicializace polohy, vynuluje frontu povelů a odjede s krokovým motorkem do nulové polohy, snímané čidlem na portu P3.1 nebo P3.7 pro jeden nebo druhý motorek
01000000 64 okamžitý stop a vynulování fronty povelů
0skkkkkk s směr pohybu 0/1
k počet kroků 1-63
10rrrrrr r rychlost pohybu 0-63 (default 9)
110000vv v 00 vypnout proud do vinutí
01 plné krokování, 1 vinutí pod proudem
10 plné krokování, 2 vinutí pod proudem
11 poloviční krokování



Poznámka k ovládání:
Pokud chcete pohyb delší než 63 kroků, musíte jej rozdělit na několik dílčích povelů poslaných do řadiče postupně. Řadič si je potom sečte a pohyb odpovídá součtu dílčích kroků. Pokud by řadič před dokončením pohybu dostal povel ke krokování opačným směrem, dokončí pohyb původním směrem a potom teprve začne pohyb opačným směrem.
Pokud pošlete povel se změnou nastavení rychlosti nebo plného či polovičního krokování, dokončí se provádění předchozích povelů a teprve potom dojde ke změně nastavení a tato změna tak bude mít vliv až na následující pohyby. Všechny přijaté povely se řadí do fronty (každý motor má svou) a jsou prováděny postupně, s výjimkou povelu k vynulování - nájezdu do krajní polohy, ten je proveden okamžitě a fronta předchozích povelů je vymazána.

Poznámky ke schématu:
Princip ovládání krokového motorku najdete na stránce s popisem spínače krokových motorků s vyvedeným středem vinutí. Napájení je ze zdroje o napětí potřebném pro krokové motorky, nejméně 7V aby stabilizátor 78L05 mohl správně fungovat, proud podle spotřeby motorků, řadič má spotřebu jen několik miliampér. Stabilizátor 78L05 snižuje vstupní napětí na 5V, ale rozdíl mezi vstupním a výstupním napětím je minimálně 2V, aby byla zaručena správná činnost stabilizátoru. Jednočip 89C2051 by měl podle dokumentace výrobce fungovat již od 2,7V napájecího napětí, ale pokud by napětí pro krokové motorky bylo 5V, bylo by lepší stabilizátor odstranit a místo něj dát drátovou propojku. Na desce plošných spojů jsou osazeny ze strany spojů pod jednočipem dva odpory SMD - R7 a R8.
Na portech P3.1 a P3.7 (svorky JP7) jsou připojena čidla nulové polohy krokových motorků, při dosažení nulové polohy zde musí být log.0 - spojení vstupu se zemí. Můžete použít mikrospínače, optická nebo magnetická čidla.
Propojkou JP7 se nastavuje přenosová rychlost sériového rozhraní. Při rozpojené propojce je rychlost 9600Bd, při spojené propojce 2400Bd.
Změna nastavení jakékoliv propojky se projeví až po vypnutí a zapnutí řadiče!

Software pro jednočip nebude, vývoj přerušen
Software pro PC nebude, vývoj přerušen

Propojovací kabel PC - řadič
Je stejný jako pro řadič serv SSC51, nezapomeňte na něm propojit mezi sebou DTR, DSR a DCD (vývody 4, 6 a 1) a RTS s CTS (vývody 7 a 8). Výstup TxD je na vývodu 3 a zem na vývodu 5.



Schéma zapojení verze s tranzistorem na vstupu:

můžete si stáhnout tento obrázek ve vyšším rozlišení (50kB)

Deska plošných spojů a její osazení (rozměr desky je 50,8x43,2mm) :

můžete si stáhnout tyto obrázky ve vyšším rozlišení : plošný spoj (13kB), osazení plošného spoje (18kB)
Obrázky jsou vygenerovány v 300dpi, takže pokud si je v tomto rozlišení vytisknete, budou ve skutečné velikosti.

Reakce na tento popis.