Archiv verlassen und diese Seite im Standarddesign anzeigen : servoansteuerung
Hallo
Wie kann ich mit einem ATmega8 einen oder mehrere Servos ansteuern?
bitte helft mir
mit was proggste denn?
bascom basic, c oder asm?
Gottfreak
12.01.2005, 19:22
bitte helft mir
Das musst du echt nicht immer so auffordernd dranhängen.
Anderer Vorschlag: Hilf dir selbst: Die Forensuche nach "Servo" im Forum "AVR RISC"(also hier) führt auf mehrere sehr ausführliche Beiträge(Vorteil: Du musst nicht auf die Antwort warten bzw. kannst deine Frage gleich genauer stellen, wenn du schon was zum Thema gelesen hast.).
@x-ryder
naj ich programmier lieber mit Basic (bin aber noch nicht so gut)
@Gottfreak
das ist halt meine Art immer eine Aufforderung irgendwo dranzuhängen wo sie eigentlich nicht hinpasst.
Kannst z du mitr mal die genauen Links geben? (ich find die nicht die du mir gesagt hast)
Gottfreak
13.01.2005, 19:29
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=3198&highlight=servo
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=4242&highlight=servo
naj ich programmier lieber mit Basic (bin aber noch nicht so gut)
Dann guck' mal in der Bascom-Hilfe(das hat nämlich(soweit ich weis, hab' ich selber noch nicht benutzt) schon fertige Servo-Befehle)
siehe: "config servos"
und das ganze läuft so:
config servos=2, servo1=portb.1, servo2=portd.5, reload=10
servo(1)=200 'ganz rechts
servo(2)=100 'ganz links
Martin
danke das werd ich mal probieren
aber wie schließe ich das an?
schwarz -> masse
rot -> +5V
gelb/weiß -> signal (bei meinem ersten servo wäre das dann portb.1)
Martin
Hallo,
wenn ich folgenden Code
config servos=1, servo1=portb.1, reload=10
servo(1)=150
ausführe, sollte doch der Servo in der Mittenstellung anhalten?!
Hardwaremäßig ist der Servo an 5V angeschlossen und das Impulssignal direkt an Portb.1 gelegt.
Bei mir fährt das Servo aber nur an den Anschlag und will immer weiter.
Ist der Servo kaputt oder mache ich etwas falsch?!
ich nehme an du hast KEIN "enable interrupts" drinne!
der gesamte Code lautet:
'Test zur Ansteuerung von Servos
Config Portb = Output
Enable Interrupts
Config Servos = 1 , Servo1 = Portb.1 , Reload = 10
Servo(1) = 150
20 Servos mit einem ATMega8
http://www.4finger.net/~smay/avr/servomaster/
http://www.4finger.net/~smay/avr/servotester/
Gruss
Michael
@x-ryder
brauch ich den Befehl:
ENABLE INTERRUPTS auch wenn ich ein
Servo ansteuere?
jepp (ich bin ein nicht sichbarer leertext)
ok danke das werd ich mal probieren
Moin, habe diesen COde:
$regfile = "m8def.dat"
$crystal = 1000000
Config Portb = Output
Enable Interrupts
Config Servos = 1 , Servo1 = Portb.1 , Reload = 10
Servo(1) = 150
Das Servo tickert nur so - woran kann's liegen?
BJörn
incertius
21.02.2005, 20:21
Hi Björn,
ich weiss es auch nicht genau, aber ich glaube du solltest noch folgendes unten an deinen Code anbringen:
Do
Loop
Und gib anstatt "config Portb = Output" einmal "config Pinb.1 = Output" ein!
Ich hoffe ich konnte dir helfen.
Muss das leider nochmal aufgreifen - funst nähmlich immer nocn nicht.
$regfile = "m8def.dat"
$crystal = 7372800
Config Portb = Output
Enable Interrupts
Config Servos = 1 , Servo1 = Pinb.0 , Reload = 10
Do
Servo(1) = 150
Loop
Nicht das geringste Zeichen am Servo.
Gruß, Björn
Hast du mal versucht Reload auf 20 Millisekunden hochzusetzen ??
Manche Servos wollen nun einmal die 20 Millisekunden Pause haben ( schon selbst ausprobiert ).
MfG Kjion
Hallo Kjion,
der Reload bezieht sich auf die Auflösung des Servoimpulses. Die Wiederholdauer von 20-25ms ist fest.
Impulslänge = Servowert*Reloadwert(in µS)
Gruß, Michael
Baumschubser
26.07.2005, 00:38
Ich probiere grade auch nen Servo laufen zu lassen.
Wenn ich oben genannten Code verwende, dreht sich mein Servo auf Mittelstellung - aber nur von links aus. Ab 90° bleibt er einfach stehen.
Benutze ich das Codebeispiel aus der Bascom Hilfe dreht sich der Servo aus jeder Stellung immer an den linken Anschlag (0°). Ich erhalte jedes mal eine ruckelnde, zeitlich langsamer werdende Bewegung.
Was gibt eigentlich "Servo(1) = x" an? Die Pulsbreite?
Jedenfalls treten für unterschiedliche x-werte keine veränderungen bei mir auf.
Kann vielleicht jemand ein kurzes Programm posten, mit dem ich den Servo gleichmäßig in beide Richtungen drehen lassen kann, eventuell noch Geschwindigkeitsänderung inbegriffen? Dies würde mir zum Verständnis des Ganzen sehr helfen. Mit der Suche hab ich leider nichts gefunden, was mir wirklich weiterhelfen konnte.
Mfg Baumschubser
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.