ik heb de schakeling gemaakt van http://neil.fraser.name/hardware/stepper/cpu.html gemaakt en vervolgens er vijf lijnen van gemaakt en heb de code als volgt aangepast
10 REM Stepper Motor Controller
20 PORT = &H3BC
30 STATE = STATE + DIRECTION
40 IF STATE > 5 THEN STATE = 1
50 IF STATE < 1 THEN STATE = 5
60 PRINT STATE,
70 IF STATE = 1 THEN OUT PORT, 3: REM 00001100
80 IF STATE = 2 THEN OUT PORT, 6: REM 00000110
90 IF STATE = 3 THEN OUT PORT, 12: REM 00000011
100 IF STATE = 4 THEN OUT PORT, 9: REM 00010001
110 IF STATE = 5 THEN OUT PORT, 15: REM 00011000
120 FOR W = 1 TO DELAY: NEXT W
130 X$ = INKEY$
140 IF X$ = "<" THEN DIRECTION = -1: REM Backwards
150 IF X$ = ">" THEN DIRECTION = 1: REM Forwards
160 IF X$ = "?" THEN DIRECTION = 0: REM Stop-locked
170 IF X$ = "-" THEN DELAY = DELAY + 100: REM Slow down
180 IF X$ = "+" THEN DELAY = DELAY - 100: REM Speed up
190 IF X$ <> CHR$(27) THEN GOTO 30
200 OUT PORT, 0: REM 0000 (Stop-free)
maar dit werkt niet please help
Je hebt geen lus in het gedeelte waar je toetsenworden afgescand.
De waardes in binair bij regel 70 - 110 klopt niet met de decimale waarden bij de statements.
Kortom dit programma klopt van geen kanten volgens mij, of ik mis nog e.e.a. 
Ik moest ook weer even nadenken hoe dat zat in GW-Basic.
Een loop hoeft hier niet Antoine. Op regel 120 staat een delaylus die alleen doorlopen wordt als er een '+' of '-' toets (regel 170 en regel 180) ingedrukt wordt. De functie van Delay is overigens vreemd want de stappenmotor gaat niet langzamer of sneller draaien, het duurt alleen langer of korter voordat de gebruiker een toets kan activeren(????)
Op regel 130 staat een wachtloop (INKEY$) tot er een toets ingedrukt wordt die, als dat gebeurt is, in de volgende regels (140 t/m 180) bepaald wat de volgende actie van de schakeling zal worden. Zolang er geen ESC-toets ( CHR$(27) ) ingedrukt wordt blijft het programma draaien.
Trouwens Maarten, heeft jouw stappenmotor dan vijf spoelen omdat je een wijziging hebt aangebracht?
dus met andere woorden moet
70 IF STATE = 1 THEN OUT PORT, 3: REM 00001100
80 IF STATE = 2 THEN OUT PORT, 6: REM 00000110
90 IF STATE = 3 THEN OUT PORT, 12: REM 00000011
100 IF STATE = 4 THEN OUT PORT, 9: REM 00010001
110 IF STATE = 5 THEN OUT PORT, 15: REM 00011000
70 IF STATE = 1 THEN OUT PORT, 12: REM 00001100
80 IF STATE = 2 THEN OUT PORT, 6: REM 00000110
90 IF STATE = 3 THEN OUT PORT, 3: REM 00000011
100 IF STATE = 4 THEN OUT PORT, 17: REM 00010001
110 IF STATE = 5 THEN OUT PORT, 24: REM 00011000
worden
en regel 170 en 180 kan ik weg laten want dat heeft toch geen zin.
alvast bedankt ga het meteen uitproberen
ps carel. het is een orginele stappenmoter heb er zelf nix aan verbouwt
kwas net ff aan het probereb maar ik kwam erachter dat er al een signaal op mijn printerpoortt staat kan ik dit op de 1 of andere manier met basic uitschakelen, of hoe dan wel????
ik dacht dat ik er achter was door in apparaatbeheer lpt1 uitschakelen aan te vinken maar zelfs dan blijft er een spanning op staan, please help...
Ik snap niet waar je regel 120 voor gebruikt, deze heeft zuiver een "Wachtende" functie, maar er is geen loop, gezien de Next W direct achter de For-To staat.
Het signaal van je LPT poort kan aan het volgende liggen:
1. De LPT is niet op SPP ingesteld maar op EPP of ECP, staat een LPT niet op SPP dan liggen de output adressen anders, bij EPP is dat 0x37B en bij ECP is dat 0x37E
2. Je gebruikt een NT based windows op de achtergrond (NT, 2000 of XP)
3. Je LPT poort zit helemaal niet op het basis adres 378, maar bv op 278 of 3BC
Nogmaals ik snap niet wat er moet gebeuren want het programma loopt op een pause na op lijn 120 in een ruk door naar regel 200, dit alles zal dus maar een keertje werken.
Groeten
Antoine
PS Mag ik je QuickBasic aanraden ? Versie maakt niet zo veel uit 1.1, 4.5 of 7.1
Op 7 juni 2003 23:04:55 schreef Carel M.:
Een loop hoeft hier niet Antoine. Op regel 120 staat een delaylus die alleen doorlopen wordt als er een '+' of '-' toets (regel 170 en regel 180) ingedrukt wordt. De functie van Delay is overigens vreemd want de stappenmotor gaat niet langzamer of sneller draaien, het duurt alleen langer of korter voordat de gebruiker een toets kan activeren(????)
Da's logisch, want je vergroot de waarde delay, dus zal je wachtlus langer worden, omdat ie dan langer moet tellen
is qbasic dan makkelijker en zo ja zou jij mij dan tips kunnen geven hoe ik dit dan moet omvormen, ben ma een leek in basic. verder heb ik het een keer in qbasic 1.1 gedraait en dan komen er getallen van 1 tot en met 5 op het scherm dus hij vult het hele scherm metr getallen ma met een multimeter meet ik geen verschil in stroomsterkte misschien omdat de multimeter te traag is of omdat windows xp ook al iets op die poort doet, deze heb ik al uitgeschakeld in apparaatbeheer maar dan loopt er nog een stroom van 1.25 volt...
ik blijf het vreemd vinden dat dit werkt, maar goed, QW-basic en qbasic kun je gewoon copy en paste doen. Als je die nummer voor de regels maar weg haalt het feit dat jij 1 t/m 5 op je scherm krijgt komt door deze regels
30 STATE = STATE + DIRECTION
40 IF STATE > 5 THEN STATE = 1
50 IF STATE < 1 THEN STATE = 5
60 PRINT STATE,
Groeten
Antoine
en wat doe ik met de rest ik krijg wel getallen maar geen spanning ook als ik de printplaat meet niet en de motor draait ook niet...
Het kan zijn dat Windows de besturing van de parallelpoort beïnvloed. Er is al meer over geschreven hier. Probeer je PC eens in DOS op te starten en laat dan het programma lopen. Overigens is er verschil tussen QuickBasic en Qbasic. Met de eerste kun je .EXE files maken, met de tweede niet. Qbasic is een onderdeel van DOS en QuickBasic is een apart softwarepakket.
Ok maar het probleem is dat volgens mij windows xp geen dos meer bevat en hem dus ook niet op kan starten in dos en heb geen zin een andere wondows te instaleren, en heb ook geen visual, kheb gepobeert met qbasic de code
OUT 890, 0
X = INP(890)
PRINT X
Maar krijg dan de hele tijd als uitvoer 235 en da moet nul zijn weet alleen nie hoe ik hem daar krijg...
Windows XP beïnvloed wel degelijk de LPT poort, dat kun je op die manier echt vergeten want dat gaat gewoon niet, je kunt in XP op geen enkel hardware adres iets aansturen.
De oplossing zou zijn een bootdiskje maken
Op 9 juni 2003 23:26:27 schreef Carel M.:
Het kan zijn dat Windows de besturing van de parallelpoort beïnvloed. Er is al meer over geschreven hier. Probeer je PC eens in DOS op te starten en laat dan het programma lopen. Overigens is er verschil tussen QuickBasic en Qbasic. Met de eerste kun je .EXE files maken, met de tweede niet. Qbasic is een onderdeel van DOS en QuickBasic is een apart softwarepakket.
QBasic is Quickbasic is QB, alleen het versie verschil maakt uit. 1.1 is een simpele versie, 4.5 is een "professionele" uitvoering, en 7.1 kent eigenlijk niemand maar is nog beter.
Erik
In order to succeed you must fail, so that you know what not to do the next time.
Op 10 juni 2003 19:38:27 schreef Antoine:
Windows XP beïnvloed wel degelijk de LPT poort, dat kun je op die manier echt vergeten want dat gaat gewoon niet, je kunt in XP op geen enkel hardware adres iets aansturen.De oplossing zou zijn een bootdiskje maken
je kan met een proggie ( kan ff niet op de naam komen ) gewoon je poorten open zetten... dat doe je 1 malig en dan kan je gewoon je poorten gebruiken zonder enige problemen... je kan dan zelfs de software die voor win95/98 is bestemd draaien
Aedolon
Just face it: sometimes nobody envies you. There has to be a bottom and that bottom is probaly you. // http://www.amazon.com/o/registry/VWZ93N4Y6XQT
Martijn Berntsen
pe4mb
dat programma heet: userport
probeer het eerst eens met leds op je printerpoort. dan kan je kijken of het wel werkt, als het werkt kun je deze code gebruiken met die ledjes en als het dan werkt hang je je stappenmotorschakeling eraan.
en over die stappenmotor, als er 5 draden uit komen heeft hij 4 spoelen en 1 centrale draad, als er 6 draden uitkomen heeft hij NIET 5 spoelen, maar 4 spoelen met 2 centrale draden.(per paar 1 aftakking maar die kun je samen nemen)
dus haal dat 5e statement maar weg.
mvg,
Martijn
[Bericht gewijzigd door Martijn Berntsen op ]
Erik
In order to succeed you must fail, so that you know what not to do the next time.
Op 11 juni 2003 11:05:51 schreef Martijn Berntsen:
dat programma heet: userport
dat wassem
kon d'r ff niet opkomen
ja heb userport dedownload nu nog fff v. basic ma het klopt toch dat het een 5 fase motor is want er komen 10 draden uit en als ik ze paar voor paar verbind maakt het elke keer een stapje dus 5 stappen en dan weer van voor af aan. ma kei bedankt voor al jullie tips