0704
Krokový motor - 4

K určení referenční polohy z minulého článku  ještě aktuální výpis programu.
V deklaraci proměnných je navíc pomocná logická proměnná s označením kalibr

 
Jako další přibyl podprogram kalibrace.
 
V podprogramu tam jsou navíc řádky pro hledání kalibračního bodu 

Pokud je proměnná kalibr rovná jedné a vstup input0 na nule, je najeto na kalibrační bod. Při vynulování proměnné kalibr se hledání ignoruje. Při nalezení kalibračního bodu se v řádku 56 proměnné otácek přiřadí pořadovaný počet a tím se vyskočí ze smyčky for-next do hlavního programu.
Při použití ve skutečném ovládání je potřeby před ukončením činnosti a vypnutím zařízení zajistit aby se motor otočného kondenzátoru nastavil čekací polohy. Ta musí být umístěná tak, aby při zapnutí bylo možné najít ve správném směru referenční bod. Referenční bod se umisťuje zhruba doprostřed dráhy která je vymezená dorazy otočného kondenzátoru, čekací poloha do jedné čtvrtiny požadovaným směrem od referenčního bodu. To zatím není v programu řešené. Jednodušší by to bylo u variometru. Ten nemá žádný koncový bod. Mohl by se otáčet kolem dokola, až by se referenční bod našel. Ale aby bylo možné používat společné podprogramy bude i u něj zavedená čekací poloha (i když je úplně zbytečná). Protože celý výpis už je na stránku dlouhý, je si ho možné stáhnout ve formátu pdf.

Další věc kterou je třeba řešit je odběr proudu v klidovém stavu. Zatím co při otáčení odebírá motor proud 100 mA, v klidovém stavu se odběr zvýší na 300 mA. Při zastavení motoru vinutím místo pulzujícího proudu protéká proud stejnosměrný. Tím pádem se neuplatní indukční odpor vinutí. A pro přidržení ve správné poloze stačí podstatně menší proud.
Vzhledem k tomu, že náš motor se nebude většinu času točit, je velký trvalý proud zbytečný. K regulaci využijeme odporů R2 a R3 které byly dosud přemostěné propojkou. Propojku odstraníme a nahradíme tranzistorem který se sepne jen když se bude motorek točit.
Po výměně odporů R2 a R3 za odpory 150Ω/2W se proud v zastavené poloze zmenšil na 82 mA. To pro udržení stabilní polohy kondenzátoru plně vyhovuje.

V průběhu zloušek jsem zjistil, že v proměné příkazu pins nemusí být obsazeny všechny bity. Pokud není definováno všech osm bitů, zapisují se bity odspoda, tj. od bitu s nejmenší váhou. V příručkách jsem se tuto informaci nikde nedočetl. Proto jsem přepsal podprogramy tam a zpět se zápisem jenom šesti bitů. Dva nejvyšší bity se tedy uvolnily pro další použití. Bit 6 jsem použil pro spínání tranzistorů Q1 a Q2 proudového omezení. Bit 7 zůstává zatím neobsazený.
V řádku 57 a 72 výpisu je nastaven do log. 1 pin číslo 6 pro sepnutí tranzistorů které překlenou omezovací odpory R2 a R3. Po ukončení otáček se v řádcích 79 a 101 tyto piny nastaví na nízkou úroveň a tím se tranzistory uzavřou a proud motoru je odpory R2 a R3 omezen.
V profesionálních zařízeních se omezení dělá pomocí pulzně šířkové modulace. Ta má tu výhodu, že nemá prakticky žádné ztráty.
 Další změna programu je v tom, že se do hlavního programu zadává požadovaná pozice v absolutním rozměru - počtu otáček, které jsou potřeba na docílení požadované polohy od nulové polohy. Kterým směrem a o kolik otáček má motor udělat určuje podprogram s názvem nastaveni.


V řádcích:(31) se zjišťuje jestli je skutečná poloha větší než požadovaná (32) když ano, vypočítá se potřebný počet kroků. (33) zavolá se podprogram zpet který vykoná potřebný počet kroků. (34) se zapíše nová poloha do proměnné poloha. Pokud není podmínka řádku (31) splněna a poloha je menší než požadovaná,(36) vypočítá se potřebný počet kroků a (37) zavolá se procedura tam. Po návratu z procedury tam (38) se zapíše nová poloha do proměnné poloha, (39) ukončí se rozhodování a (40) provede se návrat do hlavního programu.
 

Tím končí první část kdy je krokový motor ovládán přímo procesorem. To stačí pro poměrně nenáročné aplikace. Další seriál doufám bude o ovládání krokového motorku, kdy mezi H můstek L298 a procesor bude vložený obvod L297 který je určený ke spolupráci s L298. Změna bude také v napájení. To bude rozděleno. Logika bude napájena stále z 5V, ale motor bude přes můstek napájen napětím 12VDC.

Pokud se vám seriálek líbil, jsem rád. Uvítám také veškeré kritické připomínky. Nejsem v tomto oboru profesionál a v literatuře jsem s velkou pravděpodobností něco přehlédnul. Díky, Jarda (cjb)