Koračni motor + Qbasic + LPT1

Programi za crtanje shema i pločica, simuliranje el. sklopova, savjeti. Diskusija o ostalim programima vezanim za elektroniku.

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
marijannovak123
Posts: 22
Joined: 20-03-2012, 15:57

Koračni motor + Qbasic + LPT1

Post by marijannovak123 »

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 :D 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ć :D ako bi netko mogao popraviti ovaj ili napraviti novi program..pristup paralelnom portu imam, i delay između signala bi trebao biti oko 50ms
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: Koračni motor + Qbasic + LPT1

Post by niho »

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 :)

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
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!
marijannovak123
Posts: 22
Joined: 20-03-2012, 15:57

Re: Koračni motor + Qbasic + LPT1

Post by marijannovak123 »

Zahvaljujem se, vaš post mi uveliko pomaže! :D 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 :D i motorić je unipolarni, sa 6 žica.
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: Koračni motor + Qbasic + LPT1

Post by niho »

Pardon sad i ja vidjeh gresku pisao sam za puni ciklus a ne za korak :oops:

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
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.
lpt.zip
(19.73 KiB) Downloaded 318 times
marijannovak123
Posts: 22
Joined: 20-03-2012, 15:57

Re: Koračni motor + Qbasic + LPT1

Post by marijannovak123 »

Sve savršeno radi! :D puno hvala na pomoći :)
Post Reply