Hallo x-ryder,
guckst du hier:
http://www.elektronik-projekt.de/for...adid_1238.html
Gruss, Michael
Hi
Ich habe versucht mit Bascom einen Servo anzusteuern aber irgendwie
will der nicht so richtig wie ich will.
Der läuft aber immer nur in eine Richtung.Code:$regfile = "m8def.dat" $crystal = 14745600 Config Servos = 1 , Servo1 = Portc.5 , Reload = 10 Config Portb = Output Enable Interrupts Dim I As Word Do For I = 0 To 100 Servo(1) = I Waitms 1000 Next For I = 200 To 0 Step -1 Servo(1) = I Waitms 1000 Next Loop End
Da ich ihn für eine Robotersteuerung verwenden will, brauche ich aber die andere
Richtung auch noch...
Vielleicht kann mir jemand helfen.
Danke im Voraus.
Martin
Hallo x-ryder,
guckst du hier:
http://www.elektronik-projekt.de/for...adid_1238.html
Gruss, Michael
Hi
Erstmal Danke aber wie kann ich den Servo denn dauerhaft in die andere Richtung drehen lassen?
Was sagt das Waitms...?
Was sagt das Servo(1)=...
Was soll die for-Schleife?
Martin
Hallo x-ryder,
deine Fragen klingen so, als ob du überhaupt nichts verstanden hättest.
Da du Bascom auf dem Rechner hast, ist es sicher ein leichtes für dich, mal auf die Hilfe-Funktion zurückzugreifen. Alle deine Fragen sind dort ausreichend erklärt.
Das Kopieren des Codes hast du doch auch geschafft?
Gruss, Michael
Hi
Ja das kopieren hab ich geschafft aber mein Problem ist, dass ich da in der Hilfe ziemlich wenig verstehe und da ist ja auch nicht erklärt was z.B. das Waitms soll...
Wenn du das so gut kannst (Rang) dann schreib doch mal nen bitte neuen Code mit Kommentaren.
Das Prog soll einfach nur 1 sek nach links dann 1 sek nach rechts...
(Der Servo wurde modifiziert)
Martin
Hallo x-ryder,
wie bitte??da ist ja auch nicht erklärt was z.B. das Waitms soll...
Das hab ich eben direkt aus der Hilfe kopiert:
was gibt es daran nicht zu verstehen?Code:WAITMS 10 'wait for 10 mS
Alle deine anderen Befehle sind ebenso in der Hilfe zu finden, oder hast du gar nicht gesucht?
Hmmm, meinst du mit Rang die Anzahl der Beiträge? Darauf solltes du in einem Forum nicht auf das Können schliessen.Wenn du das so gut kannst (Rang) dann schreib doch mal nen bitte neuen Code mit Kommentaren.
Zurück zu deiner Frage: Hast du eigentlich meinen ersten Link gelesen?
Gruss, Michael
Mann Mann
Du solltest auch nicht denken das ich blöd bin...
Natürlich weiss ich was Waitms ist. Ich will hier aber wissen was dieses Waitms bewirkt.
Ob der Servo während dieser 10 ms in die andere Richtung steuert oder WANN er dies tut damit ich das Programm von deinem Link so modifizieren kann das ich es gebrauchen kann.
Martin
Hallo x-ryder,
du bist hartnäckig, das gefällt mir
Hättest du die Hilfe zum Thema Servo gelesen, wüsstest du, dass der Servo-Impuls mit Hilfe einer Interrupt-Routine erzeugt wird. Dazu wird Timer0 benutzt. Der angegebene Reload-Wert multipliziert mit dem Wert, den du Servo(x) mitgibst, ist die Impulszeit in µS (Mikrosekunden).
Servo(x) sollte also zwischen 100 und 200 liegen.
um das Servo zu bewegen, muss nur dieser Wert geändert werden, klar?
Du änderst also den Wert, wartest ein bisschen, änderst ihn wieder, wartest, usw, usw. Wartest du nicht, wirst du keine Änderung bemerken, weil alles viel zu schnell geht. Wartest du zu lange (wie in der Hilfe)wirst du keine Änderung bemerken, weil alles viel zu langsam geht.
Verstanden?
Gruss, Michael
gut ich glaub das hab ich jetzt versanden...
jo servo(1)=... iss die wartezeit die der servo haben soll.
d.h.: wenn servo(1)=100 und reload=10 dann wartet der servo 100 µs und läuft dann wieder 10 µs und wie bekommt amn nun die andere drehrichtung.
p.s.: ich will den servo als antrieb benutzen, dazu brauche ich die andere richtung.
du bist überigens auch hartnäckig...
Martin
Hallo x-ryder,
nein, servowert _mal_ Reloadwert = Impulszeit. Die muss dann zwischen 1000 (Servo läuft linksrum) und 2000 (rechtsrum) liegen. Du beeinflusst _nur_ die Impulszeit, die Pausenzeit (ca.20mS) wird von Bascom automatisch generiert.d.h.: wenn servo(1)=100 und reload=10 dann wartet der servo 100 µs und läuft dann wieder 10 µs
Zusammenfassend sollten Werte für servo(x) zwischen 100 und 200 liegen.
Gruss, Michael
Lesezeichen