Re: Jednoduché řízení KM
Napsal: 5. 3. 2016, 12:34
Len 600? To je pohoda. Ked som pisal riadenie zosilnovaca v assembleri malo to cez 6000 riadkov 

Největší české fórum o strojírenství, CNC strojích a 3D tiskárnách
https://forum.strojirenstvi.cz/
šprte!!pafik píše:Sím, sím, pane profesore. Mě by stačila
Kód: Vybrat vše
setfreq m32
start:
pwmout pwmdiv64, b.2,0,0 ;vypne motor
if pinc.3=0 then goto dolu ;při stisknutí tlačítka T1 se provede odskok na smyčku chod dolů
goto start
dolu: ;smyčka pro chod dolů
if pinc.3=0 then dolu ;pokud je stále stisknuto tlačítko T1 program se zacyklí a "čeká" na jeho uvolnění
high b.5 ;nastaví směr otáčení motoru pro pohyb dolů
readadc c.0,b3 ;načte rychlost otáčení z potenciometru
for b0= 150 to b3 step -1
let w2=b0*4
pwmout pwmdiv64, b.2,b0,w2
pause 40
if b0=b3 then pwmout pwmdiv64, b.2,b0,w2
endif
next
pokracuj:
if pinc.1=0 then goto nahoru ;při najetí na spodní koncák K1 odskok na smyčku nahoru
if pinc.2=0 then goto start ;při najetí na horní koncák K2 následuje odskok na začátek programu a tím jeho ukončení
if pinc.3=0 then goto pauza ;při stisknutí tlačítka T1 se provede odskok na smyčku pauza
if pinc.4=0 then goto start ;estop
goto pokracuj
nahoru: ;smyčka pro chod motoru nahoru
low b.5 ;nastaví směr otáčení motoru pro pohyb nahoru
readadc c.0,b0 ;načte rychlost otáčení z potenciometru
let w2=b0*4
pwmout pwmdiv64, b.2,b0,w2
if pinc.2=0 then goto start ;při najetí na horní koncák K2 následuje odskok na začátek programu a tím jeho ukončení
if pinc.4=0 then goto start ;estop
goto nahoru
pauza:
pwmout pwmdiv64, b.2,0,0 ; zastavení posuvu motoru dolů
if pinc.3=0 then pauza ;pokud je stále stisknuto tlačítko T1 program se zacyklí a "čeká" na jeho uvolnění
pauza1:
if pinc.3=1 then pauza1
pauza2:
if pinc.3=0 then nahoru ;při opětovném stisknutí tlačítka T1 se provede odskok na smyčku pro posuv nahoru
goto pauza1
A švestičky ......expertdb píše:šprte!!pafik píše:Sím, sím, pane profesore. Mě by stačila![]()
Kód: Vybrat vše
setfreq m32
start:
pwmout pwmdiv64, b.2,0,0 ;vypne motor
if pinc.3=0 then goto dolu ;při stisknutí tlačítka T1 se provede odskok na smyčku chod dolů
goto start
dolu: ;smyčka pro chod dolů
if pinc.3=0 then dolu ;pokud je stále stisknuto tlačítko T1 program se zaciklí a "čeká" na jeho uvolnění
high b.5 ;nastaví směr otáčení motoru pro pohyb dolů
readadc c.0,b3 ;načte rychlost otáčení z potenciometru
for b0= 255 to b3 step -1
let w2=b0*4
pwmout pwmdiv64, b.2,b0,w2
pause 300
if pinc.1=0 then goto nahoru ;při najetí na spodní koncák K1 odskok na smyčku nahoru
if pinc.3=0 then goto pauza
next
dal:
if pinc.1=0 then goto nahoru ;při najetí na spodní koncák K1 odskok na smyčku nahoru
if pinc.3=0 then goto pauza ;při stisknutí tlačítka T1 se provede odskok na smyčku pauza
goto dal
nahoru: ;smyčka pro chod motoru nahoru
low b.5 ;nastaví směr otáčení motoru pro pohyb nahoru
readadc c.0,b0 ;načte rychlost otáčení z potenciometru
let w2=b0*4
pwmout pwmdiv64, b.2,b0,w2
if pinc.2=0 then goto start ;při najetí na horní koncák K2 následuje odskok na začátek programu a tím jeho ukončení
goto nahoru
pauza:
pwmout pwmdiv64, b.2,0,0 ; zastavení posuvu motoru dolů
if pinc.3=0 then pauza ;pokud je stále stisknuto tlačítko T1 program se zaciklí a "čeká" na jeho uvolnění
pauza1:
if pinc.3=1 then pauza1
pauza2:
if pinc.3=0 then nahoru ;při opětovném stisknutí tlačítka T1 se provede odskok na smyčku pro posuv nahoru
goto pauza1
Zase takový borec nejsematlan píše:Len 600? To je pohoda. Ked som pisal riadenie zosilnovaca v assembleri malo to cez 6000 riadkov
Je to na věžní hodiny, takže přesný čas mi hlídá RTC obvod. Ten PICAXE otáčí jednou za minutu krokovým motorem a tím i rafikami, srovná rafiky na správný čas po výpadku proudu, řeší přechody na zimní / letní čas, řídí bití 1/4tek a celých hodin, vypíná na noc bití...pafik píše:Nevím, jaký to maj bejt hodiny, ale narazíš na přesnost; ten picaxe nemá hodiny řízený krystalem. Musíš dát externí oscilátor.
jova píše: 14. na výstup B.2 se odešle hodnota PWM
15. chvíli se počká
16. zkontroluje se podmínka zda b0>b3. Pokud ano, program se vrací na ř.12, pokud b0=b3, pokračuj dál.
17. kontroluje se zda už motor dojel na koncák
Až potud je to vše tak jak jsme chtěli. Ale pak přijde řádek 19. a na něm tomu programu říkáš, že si to má vše znovu zopakovat! Ale to ty přeci nechceš. Ty potřebuješ, aby program pokračoval dál s konečnou hodnotou PWM po té smyčce for-next a zároveň kontroloval to tlačítko s koncákem. Takže tím řádkem 19. ho nesmíš poslat na začátek, ale do místa za tu smyčku (tam je už to PWM nastaveno), před ten koncák a tlačítko které musí kontrolovat!
Jestlipak ten krokáč a spol. vydrží taky alespoň těch možná 100, možná 300 let co ten stroj co se už nevyplatí opravovat?jova píše:To neTam je funkční stroj od Hainze.
Tohle je do jedné nedaleké vesnice, kde už se ten stroj nevyplatí opravovat, tak se tam dá ten krokový motor a ostatní musí nahradit elektronika.