Pozdrav svima!
Radim završni rad na temu "Upravljanje koračnim motorom preko računala (LPT1)" , elektronički dio je uspješno izrađen, ali software me muči Nisam baš upoznat s QBasicom, ali u njemu bih trebao napraviti program koji će upravljati motorićem. Znači treba mi program koji će na paralelni port (out 888, x jel) slati podatke redom x=1,2,4,8 (binarno 00000001, 00000010, 00000100, 00001000...2^0, 2^1, 2^2, 2^3) pa isponova tako sve dok ne napravi koraka koliko u programu upišem (jedan podatak = jedan korak). Pronašao sam slijedeći programčić, ali ne radi nažalost :/
n = 0
PRINT "Upisite broj koraka"
INPUT a
DO
x = 2 ^ n
OUT 888 , x
n = n + 1
IF n = 3 THEN n = 0
a = a - 1
LOOP UNTIL a = 0
Molim pomoć ako bi netko mogao popraviti ovaj ili napraviti novi program..pristup paralelnom portu imam, i delay između signala bi trebao biti oko 50ms
Koračni motor + Qbasic + LPT1
Moderators: pedja089, stojke369, [eDo], trax
Re: Koračni motor + Qbasic + LPT1
Pozdrav, kao prvo da bi imao pristup portu Qbasic-om moras kompajlirati svoj program zanci napraviti .exe fajl (ne interpreter) i za tu svrhu skini sebi sa neta "fr*e basic" koji je u stvaari kompajler za Qbasic
Ovo naj jednostavnije izvedes sa dvije for next petlje, ako nista preglednije je
To bi trebalo da radi. Naravno da li ce raditi zavisi i od vrste stepera, nije isto pokretati unipolarni i bipolarni motor.
Preporucujem malo procitati i drajvanje step motora recimo ovdje.
Ja sa ucenicima radim tako sto unipolarni jednostavno drajvam preko cetiri tranzistora kojima prekidam - pol a zajednicki izvodi idu na plus, dok se za bipolarni koristimo dvostrukim H-mostom.
Sretno!
Ovo naj jednostavnije izvedes sa dvije for next petlje, ako nista preglednije je
Code: Select all
n = 0
INPUT "Upisite broj koraka" ;a
INPUT "unesite trajanje impulsa u milisekundama"; m
FOR i = 1 TO a
FOR n = 0 TO 3
x = 2 ^ n
OUT 888 , x
SLEEP m
Next n
Next i
Preporucujem malo procitati i drajvanje step motora recimo ovdje.
Ja sa ucenicima radim tako sto unipolarni jednostavno drajvam preko cetiri tranzistora kojima prekidam - pol a zajednicki izvodi idu na plus, dok se za bipolarni koristimo dvostrukim H-mostom.
Sretno!
-
- Posts: 22
- Joined: 20-03-2012, 15:57
Re: Koračni motor + Qbasic + LPT1
Zahvaljujem se, vaš post mi uveliko pomaže! Samo, program ne radi kako bi trebao. Kada na primjer upišem 1 korak, on napravi 4..kad napišem 2 koraka, on napravi 8..kao da napravi 4 puna koraka za svaki, da unosim broj "periodi"..trebalo bi biti za 1 signal jedan korak.. npr upišem a=1, on upali samo 1..ili a= 3 pa upali 1, pa 2, pa 4..itd..i ima li kakav način da upišem sleep manji od jedne sekunde? ovako je dosta sporo, probao sam .05 ali nije se pomicalo dok nisam stisao enter :S
Što se tiče teorije koračnih motora, njihovih vrsta, načina drajvanja, step sekvenci, određivanju izvoda..načitan sam preko glave i motorić je unipolarni, sa 6 žica.
Što se tiče teorije koračnih motora, njihovih vrsta, načina drajvanja, step sekvenci, određivanju izvoda..načitan sam preko glave i motorić je unipolarni, sa 6 žica.
Re: Koračni motor + Qbasic + LPT1
Pardon sad i ja vidjeh gresku pisao sam za puni ciklus a ne za korak
Msm da je sada OK. Sory malo sam u frci pa se ovakve greskice znaju desiti. Sretno.
Sleep kada se radi sa fr*e basicom racuna kao milisekunde, evo ti primjer programa koji sam ja radio "kao nekakvo trcece svjetlo na LPT portu.
Code: Select all
n = 0
INPUT "Upisite broj koraka" ;a
INPUT "unesite trajanje impulsa u milisekundama"; m
while a>0
FOR n = 0 TO 3
x = 2 ^ n
OUT 888 , x
SLEEP m
a=a-1
Next n
wend
end
Sleep kada se radi sa fr*e basicom racuna kao milisekunde, evo ti primjer programa koji sam ja radio "kao nekakvo trcece svjetlo na LPT portu.
-
- Posts: 22
- Joined: 20-03-2012, 15:57
Re: Koračni motor + Qbasic + LPT1
Sve savršeno radi! puno hvala na pomoći