Stránka 7 z 11

Re: Jednoduché řízení KM

Napsal: 5. 3. 2016, 12:34
od atlan
Len 600? To je pohoda. Ked som pisal riadenie zosilnovaca v assembleri malo to cez 6000 riadkov :)

Re: Jednoduché řízení KM

Napsal: 5. 3. 2016, 1:26
od expertdb
pafik píše:Sím, sím, pane profesore. Mě by stačila :D
šprte!! :D

Něco jsem spáchal a kupodivu to chodí :shock: .

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

Přidal jsem tam tlačítko pro stopku aby to šlo zastavit při jakémkoli posuvu . Ale bude asi lepší vyvést výstup přímo na EN v driveru.

Re: Jednoduché řízení KM

Napsal: 5. 3. 2016, 2:22
od pafik
expertdb píše:
pafik píše:Sím, sím, pane profesore. Mě by stačila :D
šprte!! :D
A švestičky ...... :D

Re: Jednoduché řízení KM

Napsal: 5. 3. 2016, 2:44
od jova
Osobně jsem to měl na mysli spíše takto:

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
Mělo by ti to ohlídat ten spodní koncák a tlačítko i při rozjezdu.
Testoval jsem to jen v simulátoru tak to snad bude funkční.

Re: Jednoduché řízení KM

Napsal: 5. 3. 2016, 3:08
od jova
atlan píše:Len 600? To je pohoda. Ked som pisal riadenie zosilnovaca v assembleri malo to cez 6000 riadkov :)
Zase takový borec nejsem :D Mám v tom PICAXE k dispozici jen 4KB a ty už jsou skoro plné.
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.
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í...
O to víc obdivuji staré mistry, kteří tohle dokázali „naprogramovat“ jen do koleček.

Re: Jednoduché řízení KM

Napsal: 5. 3. 2016, 3:17
od expertdb
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!

Jasně že to funguje. Zmátl mně ten řádek 16. Je tam příkaz "next", nevidím tam žádnou kontrolu podmínek b0,b3 :oops: . A pak ještě nerozumím, proč kontrolovat to tlačítko s koncákem. Jo je to holt složité.....

Re: Jednoduché řízení KM

Napsal: 5. 3. 2016, 3:41
od jova
Tu kontrolu podmínky b0,b3 ti vlastně hlídá ta smyčka FOR-NEXT.
Přesněji řádek: for b0= 255 to b3 step –1, který říká odečítej od b0 –1 a ten NEXT to vrací pořád zpět, dokud se nebude ta b0 rovnat hodnotě b3. A všechno co je mezi ním a tím příkazem NEXT se tolikrát bude opakovat, kolikrát ta smyčka proběhne.
No a to tlačítko a koncák v té smyčce hlídám proto, protože se třeba může stát, že nastavíš tak malou vzdálenost, že než proběhne to zrychlení už budeš na koncáku. A takhle by ti to mělo zastavit i při tom zrychlení po pár krocích.

Re: Jednoduché řízení KM

Napsal: 5. 3. 2016, 3:53
od expertdb
Ahá, díky moc za polopatické vysvětlení. Nechám Tě teď odpočinout, než si zase něco vymyslím :) . Příště si zkusím zobrazit ty proměnné na display. No to zas bude.... :D . Ještě jednou díky.

Re: Jednoduché řízení KM

Napsal: 6. 3. 2016, 10:20
od pafik
To tě nechali dělat řízení hodin na tu vaší věž?

Re: Jednoduché řízení KM

Napsal: 6. 3. 2016, 11:46
od jova
To ne :D Tam 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.

Re: Jednoduché řízení KM

Napsal: 6. 3. 2016, 6:10
od pafik
Znáš to rčení, že každý dobrý skutek musí být po zásluze potrestán? Jen počkej, až se to poprvé zastaví, třeba po úderu blesku do věže. "To si zase někdo namastil kapsu, a už to nejede....." :D

Re: Jednoduché řízení KM

Napsal: 6. 3. 2016, 6:18
od testone
jova píše:To ne :D Tam 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.
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?
když už, tak to aspoň zdokumentujte a dejte do rohu do bedny.....
NE digi foťákem!!!

Re: Jednoduché řízení KM

Napsal: 6. 3. 2016, 9:56
od jova
Pláčete chlapci nad špatným hrobem. O tom zda se něco opraví nebo ne, rozhodují jiní a hlavně finanční situace daného majitele. A iluze, že na věžích tikají jen mechanické hodiny je bohužel taky dost scestná. :-( Většinou se vyhazují kyvadla a dávají tam různé elektricky řízené komponenty, a nebo se rovnou rafičky napojí na elektromotor. Doby, kdy se chodilo na věž natahovat závaží už jsou nenávratně pryč. Dneska je to samé DCF.

Re: Jednoduché řízení KM

Napsal: 7. 3. 2016, 6:12
od Pepa z depa
Zdar chlapi, nechci zakládat nové vlákno, mohl by mi někdo dát odkaz na Aliexpress (ale jen tam) na nějaké univerzální řízení KM z tiskáren, ploterů a tak, mám jich spousty, popř. na co se tam dívat, asi voltáž a ... stačí jen Vlevo, Vpravo + Rychlost, jde mi o velmi pomalý pohyb ... fotoslider a pod. :D
Děkuji předem

Re: Jednoduché řízení KM

Napsal: 7. 3. 2016, 6:43
od jova
Na to co potřebuješ asi toto: http://es.aliexpress.com/store/product/ ... 658895f8d2
Budeš k tomu muset ještě vzít nějaký driver podle typu motoru. Když by driver uměl 16 mikrokroků a motor měl 200kroků na otáčku, tak by jsi se, jestli jsem to dobře počítal, měl dostat na 1 otáčku za 40sekund.
Ale s tím procesorem budeš mít mnohem víc možností: http://www.jova1.cz/ostatni/slider/slider.html