Werbung
Hallole zusammen,
habe ein RN-Minicontroll Board und will damit später mal mehrere Servos ansteuern, jedoch habe ich schon bei einem Servo das Problem das wenn ich das Programm aus der Hilfe in meinen Controller einspiele das der Servo nur zweimal kurz, und immer in die gleiche Richtung zuckt.
Habe leider keinen mit dem gleichen Problem gefunden. Hoffe mir kann Trotzdem jemand helfen.
Vielen Dank schon mal
Code:$regfile = "m168def.dat" $crystal = 16000000 'Quarzfrequenz $baud = 9600 $hwstack = 32 $framesize = 32 $swstack = 32 Dim Center As Integer Dim Servopos As Integer Dim Left As Integer Dim Right As Integer Left = 50 Right = 150 Center = 100 Servopos = Center 'Servo config Config Servos = 1 , Servo1 = Portb.0 , Reload = 10 'as an option you can use TIMER1 'Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10 , Timer = Timer1 'we use 2 Servos with 10 uS resolution(steps) 'we must configure the port pins used to act as output Config Portb = Output 'finally we must turn on the global interrupt Enable Interrupts 'ende Servo config Do Print "Servo Test" Wait 1 Servopos = Center Servo(1) = Servopos Wait 10 Servopos = Left Servo(1) = Servopos Wait 10 Print "Rechtsdrehung" For Servopos = Left To Right Step 10 Servo(1) = Servopos Wait 10 Next Wait 10 Print "Linksdrehung" For Servopos = Right To Left Step -10 Servo(1) = Servopos Wait 10 Next Wait 10 Print "Mitte" Servopos = Center Servo(1) = Servopos Loop
Folgendes fällt mir auf:
Servo(x) ist eine Byte-Variable, vielleicht stört die Integer-Variable
50 und 150 könnten bereits außerhalb des möglichen Stellbereiches liegen. Teste mal 80 bis 120.
Wozu gehst du den Umweg über Servopos?
10 Sekunden Pause sind zum Testen recht lang.
Servos brauchen eine eigene Stromversorgung.
Masse Servo muss an Masse Controller.
Viel Erfolg.
Stefan
Hi,
das ging ja super schnell mit einer antwort, und es scheint jetzt auch zu funktionieren. Habe den Servo jetzt direkt an mein Netzteil geklemmt. Dachte es reicht wenn ich das Netzteil voll hochdrehe ( auf 12 V ).
Was mir allerdings noch etwas komisch vor kommt ist das der Servo erst gegen den Uhrzeigersinn auf Anschlag dreht. Danach dreht der Servos schon hin und her. Zumindest auf die Left und Right Positionen, Center Position funkt jedoch nicht.
Grüßle
12 V am Servo? Und das lebt noch? Üblicherweise laufen Servos ca. mit 4-7 VHi,
das ging ja super schnell mit einer antwort, und es scheint jetzt auch zu funktionieren. Habe den Servo jetzt direkt an mein Netzteil geklemmt. Dachte es reicht wenn ich das Netzteil voll hochdrehe ( auf 12 V ).![]()
Hey,
i sag mal danke, kann zwar nix zum Thema mehr beitragen,
aber der Quellcode hat mir sehr weiter gebracht.
Eine Frage habe ich, kennt sich hier jemand mit Lipos aus?
Vlt kann sich ja jemand bei mir melden.
Gruß High Light
Also das ist der aktuelle Stand der Funzt. zur abwechslung auch mal *g*
Code:$regfile = "m168def.dat" $crystal = 16000000 'Quarzfrequenz $baud = 9600 $hwstack = 32 $framesize = 32 $swstack = 32 Dim Center As Integer Dim Pos1 As Integer Dim Pos2 As Integer Dim Pos3 As Integer Center = 105 Pos1 = 30 Pos2 = 180 Pos3 = 140 'Servo config Config Servos = 1 , Servo1 = Portd.2 , Reload = 10 Config Portd = Output 'finally we must turn on the global interrupt Enable Interrupts 'ende Servo config Do Servo(1) = Center Waitms 1000 Servo(1) = Pos1 Waitms 1000 Servo(1) = Center Waitms 1000 Servo(1) = Pos3 Waitms 1000 Servo(1) = Center Waitms 1000 Servo(1) = Pos2 Waitms 1000 Loop
Lesezeichen