Datorstyrd OTA TV-antenn. (6 / 12 steg)
Steg 6: Programvaran.
Medurs:
ut 888,0
för x = 1 till 10
ut 888, 1
sova 1
ut 888, 2
sova 1
ut 888, 4
sova 1
ut 888, 8
sova 1
Nästa x
ut 888, 0
Moturs:
ut 888,0
för x = 1 till 10
ut 888, 1
sova 1
ut 888, 8
sova 1
ut 888, 4
sova 1
ut 888, 2
sova 1
Nästa x
ut 888, 0
Du kommer att sammanställa här koden med:
FBC-lang qb progname.bas
Obs jag kommer förmodligen lägga upp mer omfattande kod senare. Du har tillräckligt för att komma igång. Jag har skrivit koden är upphovsrättsskyddat och har några mycket speciella rutiner som jag inte vill att publicera på denna tid.
Exempel: http://www.electro-tech-online.com/general-electronics-chat/3631-qbasic-program-controlling-stepper-motors-i-wrote-one.html
----------------------------------------------------------------------------------------------
Vad någon annan skrev i äldre basic.
Om någon ut ther är intresserad i att kontrollera en unipolär stegmotor via parallellporten på din dator och även använder Qbasic sedan kopiera koden nedan till en qbasic fil och har på det. Programmet kommer att fråga användaren om driftsform t.ex.. Single coil magnetiseringen läge eller dubbel spole magnetiseringen läge, riktning och hur många klockan cykler att göra fördröjningen. Ett bra värde för min "Väldigt gamla" pentium 133mhz pc är någonstans från 45 till oavsett hur länge du vill mellan spole kroppsmedvetenheten att vara. under 45 klockcykler gillar stepper motor att malfuntion. Jag använder parallell skrivare sentronics? Connector. Ändra programmet för att passa dig. Ledsen jag tog inte med kommentarer.
Pins #2 för spole 1
#3 för spole 2
#4 för spole 3
#5 för spolen 4
#18(can be any ground) för marken.
Jag använder också en uln2803 darlington transistor matris för att köra motorn.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;
; Skriven av Sam Bixler;
Datum 03-10-03;
; För att kontrollera en unipolär stegmotor via en parallellport;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;
CLS
VarMode = 0
VarRot = 0
VarRev = 0
VarDelay = 0
INT1 = 0
Main:
CLS
UT 888, 0
INTE förrän INKEY$ <> ""
Skriva ut "Ange numrera av rotationer"
INGÅENDE VarRev
VarRev = VarRev * 50
Skriva ut "Ange arbetsläget"
Skriva ut "1 för single coil magnetiseringen"
Skriva ut "2 för dubbel spole magnetiseringen"
INGÅENDE VarMode
Skriva ut "Ange antalet dröjsmål cykler"
INGÅENDE VarDelay
Skriva ut "Ange riktningen av rotation"
Skriva ut "5 för CW 7 för CCW"
INGÅENDE VarRot
VarMode = VarRot + VarMode
OM VarMode = 6 sedan GOTO ScCW:
OM VarMode = 7 sedan GOTO DcCw:
OM VarMode = 8 sedan GOTO ScCcw:
OM VarMode = 9 sedan GOTO DcCcw: annat GOTO nd:
LOOP
ScCW:
GÖRA
GOSUB steg 1:
GOSUB steg 2:
GOSUB steg 3:
GOSUB steg 4:
VarRev = VarRev - 1
OM VarRev = 0 då GOTO Main:
LOOP
ScCcw:
GÖRA
GOSUB steg 4:
GOSUB steg 3:
GOSUB steg 2:
GOSUB steg 1:
VarRev = VarRev - 1
OM VarRev = 0 då GOTO Main:
LOOP
DcCw:
GÖRA
GOSUB Steg5:
GOSUB steg 6:
GOSUB Step7:
GOSUB Step8:
VarRev = VarRev - 1
OM VarRev = 0 då GOTO Main:
LOOP
DcCcw:
GÖRA
GOSUB Step8:
GOSUB Step7:
GOSUB steg 6:
GOSUB Steg5:
VarRev = VarRev - 1
OM VarRev = 0 då GOTO Main:
LOOP
Steg 1:
UT 888, 0
GÖRA
UT 888, 1
OM int1 = VarDelay sedan återvända
INT1 = int1 + 1
LOOP
Steg 2:
UT 888, 0
GÖRA
UT 888, 2
OM int1 = 0 då avkastningen
INT1 = int1 - 1
LOOP
Steg 3:
UT 888, 0
GÖRA
UT 888, 4
OM int1 = VarDelay sedan återvända
INT1 = int1 + 1
LOOP
Steg 4:
UT 888, 0
GÖRA
UT 888, 8
OM int1 = 0 då avkastningen
INT1 = int1 - 1
LOOP
Steg5:
UT 888, 0
GÖRA
UT 888, 3
OM int2 = VarDelay sedan återvända
int2 = int2 + 1
LOOP
Steg 6:
UT 888, 0
GÖRA
UT 888, 6
OM int2 = 0 då avkastningen
int2 = int2 - 1
LOOP
Step7:
UT 888, 0
GÖRA
UT 888, 12
OM int2 = VarRev sedan återvända
int2 = int2 + 1
LOOP
Step8:
UT 888, 0
GÖRA
UT 888, 9
OM int2 = 0 då avkastningen
int2 = int2 - 1
LOOP
nd:
UT 888, 0