Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Teach-In Verfahren für 2 Schrittmotore

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
srsgp



Anmeldungsdatum: 30.01.2013
Beiträge: 15

BeitragVerfasst am: 01.03.2013, 20:21    Titel: Teach-In Verfahren für 2 Schrittmotore Antworten mit Zitat

Dank an Sebastian, dreael und 28398 für Eure Antworten zum Ansteuern von Hardware unter Windows 8.
Arbeite jetzt mit XP und einem älteren PC mit Druckerport.

Ich habe mein Problem vereinfacht, indem ich 3 LEDs (rot,gelb,grün)nach Belieben durch Druck auf die Pfeiltasten einzeln für 2 Sekunden aufleuchten lasse.
Am Bildschirm wird mir angezeigt welche LED wie oft eingeschaltet wurde.

Ich möchte nun dass die Abfolge meiner Tastendrücke, also z.B. Pfeil oben-5 mal, Pfeil unten-2 mal, Pfeil rechts-9 mal, Pfeil unten-11 mal, Pfeil rechts 4 mal, usw. aufgezeichnet wird und anschließend genauso, auf Knopfdruck, abläuft. Die von Hand eingegebene Abfolge und deren Wiederholungen also eingelernt wird.
Auch mein Bildschirmausdruck hat den Fehler, dass nur 3 Zeilen erscheinen in denen die Anzahl der Tastendrücke für eine LED gezeigt werden, nicht aber die Reihenfolge der LEDs, die ja über 3 hinausgehen kann.
Mein Programm:
#Lang "fblite"
OPTION GOSUB
dim taste as STRING
DO
DO
DO
DO
taste=INKEY
IF taste=CHR(255,72) then GOTO rot
IF taste=CHR(255,80) then GOTO gelb
IF taste=CHR(255,77) then GOTO gruen
LOOP

rot:
OUT 888,1
LOCATE 10,2,0
PRINT"rot eingeschaltet"
LOCATE 10,40,0
r=r+1
Print r
SLEEP 2000
OUT 888,0
LOOP

gelb:
OUT 888,2
LOCATE 12,2,0
PRINT"gelb eingeschaltet"
LOCATE 12,40,0
ge=ge+1
PRINT ge
SLEEP 2000
OUT 888,0
LOOP

gruen:
OUT 888,4
LOCATE 14,2,0
PRINT"gruen eingeschaltet"
LOCATE 14,40,0
gr=gr+1
PRINT gr
SLEEP 2000
OUT 888,0
LOOP

Danke für eine einfache Lösung

Hier meine ursprüngliche Beschreibung des Projekts!
Das Programm ist unter porticula Nopaste handsteuerung 2 hochgeladen


Ich habe für den Technikuntericht eine durch 2 Schrittmotore gesteuerte Maschine gebaut, die eine ankommende Stahlkugel(Ware) über einen Sensor(LDR) erkennt.
Ein Kranarm wird auf einer halbkreisförmigen Bahn mittels Schrittmotorantrieb über die Stahlkugel bewegt. Nun senkt der
2. Schrittmotor über ein Schraubengewinde einen am Ende der Gewindestange befestigten E-Magneten(Spule) ab. Der E-Magnet wird eingeschaltet, die Stahlkugel angezogen und der 1. Schrittmotor bewegt den Arm wieder halbkreisförmig zurück. Der E-Magnet wird ausgeschaltet, die Kugel fällt in eine Rinne und rollt weg, die Maschine wartet auf die nächste Kugel. Funktioniert alles sehr genau. Ich habe zur Ansteuerung der Schrittmotoren ein Programm geschrieben das auch die Schritte zählt, habe eine Schrittzahl über den Daumen gepeilt, ausprobiert, verändert, bis es gestimmt hat.
Beim Teach-In Verfahren steuert man z.B. mit den Pfeiltasten den Arm nach rechts, Magnet hoch, um einem Hinderniss auszuweichen, weiter nach rechts, nun den Magnet runter zur Kugel und wieder zurück.
Die Handsteuerung war kein Problem, siehe Programm, wie aber speichere ich die einzelnen Bewegungen in der richtigen Reihenfolge, mit den notwendigen Schrittzahlen so dass am Ende des teach-in, das Programm den genau gleichen Weg(nicht den kürzesten) steuert.
Kann man die Werte in Felder ,automatisch in der richtigen Reihenfolge einlesen?
Da ich vom Programmieren, wie Ihr sicherlich seht, keine große Ahnung habe, wäre ich für eine einfache verständliche Lösung sehr dankbar.

Gruß SRSGP


Zuletzt bearbeitet von srsgp am 12.03.2013, 16:10, insgesamt 3-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 01.03.2013, 22:02    Titel: Antworten mit Zitat

Kurze Programmtexte kannst du direkt dazu posten und mit dem Code-Tag umschließen. Wenn es etwas längeres ist, empfiehlt es sich, ihn extern einzustellen, z. B. in fb:porticula Nopaste unseres FreeBASIC-Portals.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz