0707
Krokový motor - 7
15.11.2011

Poslední deska nám zjednoduší práci s programováním. Požadované hodnoty budeme posílat na stále stejné výstupy. Jenom úrovní na signálu MOTOR si zvolíme pořadovaný motor který chceme ovládat. Pro přepínání jsem zvolil budiče sběrnice 74HCT126N a 74HCT126N. Za nimi následují "zdvíhací odpory" (Pull up rezistor). Na každém logickém vstupu musí být definovaná log. úroveň. V případě nezapojeného vstupu, nebo vstupu, ke kterému je připojena vysoká impedance může dojít k neočekávaným stavům. Zdvihací odpor slouží k udržení logické hodnoty 1.

H = vysoká úroveň          
L = nízká úroveň           
X = libovolný stav          
Z = vysoká impedance  
74HCT125N
 VSTUP VÝSTUP
nOE nA nY
L L L
L H H
H X Z
74HCT126N
 VSTUP VÝSTUP
nOE nA nY
H L L
H H H
L X Z



Aby na výstupech byla logická nula je potřeba za zdvíhací odpory zařadit invertory (74HC04N). Volbou jedničky nebo nuly na vstupu motor určíme který motor chceme ovládat.
Každý integrovaný obvod je na vstupu blokovaný kondenzátorem 100n a vstup napájení na desku je blokován elektrolytem. Možná, že se to bude vzhledem k použitému kmitočtu zdát zbytečné. Musíme si ale uvědomit, že se stále pohybujeme v blízkosti VF zařízení o  výkonu většinou okolo 100W.
Nezapojené budiče jsou připojeny tak, aby na jejich výstupu byla vysoká impedance. Vstupy i výstupy mají jednoznačně definovanou úroveň.
S vývodem home již v dalším zařízení nepočítám. Je ale vyveden na pin a v případě nutnosti ho můžu použít.


Dosažená přesnost.
Na grafu jsou znázorněné odchylky polohy. Červené jsou odchylky mezi jednotlivými pozicemi a modrá znázorňuje absolutní odchylku od nuly.
Odchylky jsem odečítal vždy po ukončení jednoho cyklu. Ten se skládal z přesunů na naprogramované polohy. Poloha byla vyjádřena počtem impulzů k jejímu dosažení, počítáno od nulové polohy. Polohy z kterých se cyklus skládal:
0, 400, 0, 1300, 200, 500, 1000, 0.
To znamená čtyři přesuny směrem nahoru a tři přesuny směrem dolu. Maximální odchylka mezi pozicemi byla +3/-2 stupně, minimální +0/-0,5 stupně k dosažení požadované polohy.
Maximální odchylka ve dvaceti cyklech byla +10°. Tendence odchylky byla ke stálému nárůstu. Pokud je převaha přesunů v opačném směru, odchylka také v opačném směru narůstá.


Když se pravidelně střídaly pohyby nahoru, dolu a jejich počet byl stejný, žádné odchylky od požadované polohy nevznikly. Přesun do požadovaných hodnot mohl mít přitom libovolný počet impulzů. Je možné chybu kompenzovat pravidelným střídáním směrů. Proto po kalibraci odjedu do výchozí polohy (pozice 0) a odtud se teprve najede na novou polohu. Času je na to dost.


Při odečítání pod nulu se při prvním odečtení o jednu se u procesorů PICAXE objeví maximální hodnota proměnné. Musíme proto zajistit abychom se pohybovali pouze v oboru kladných čísel.
K ovládání jsem použil testovací desku s procesorem PICAXE 28X1 společně s programovacím SW Picaxe Programming Editor 5.3.1.
Procesory PICAXE mají omezení víc. Proto se v současné době učím programovat procesory AVR, řadu ATTINY. Nebojte se, nebudu s nimi unavovat na stránkách. Na internetu jsou o nich bohaté informace (GOOGLE, přes půl milionu odkazů) a literatura v češtině s přiloženým CD je dostupná v nakladatelství BEN.

Tím končí miniseriál o ovládání bipolárního dvoufázového hybridního krokového motorku. Pokud se vám z toho něco hodilo, budu rád. Snažil jsem se víceméně vytvořit o těchto motorech kuchařku.
Teď musím dodělat S-match. Ten bude umístěn na střeše a jeho krytí bude jak doufám IP55. Po testech bych se měl přihlásit s dalším pokračováním seriálu a kompletním provedením. Bude to ulehčené tím, že přenos dat mám už vyzkoušený a funguje mi i ovládání s plovoucím kódem. Nicméně čeká ještě dost práce a učení.