Wenn du ein Oszi hast, schau doch mal das Signal an, was der Servo bekommen soll.
Neu hier und eine Frage zur Servoansteuerung
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.
Hinweis kann nach Kenntnisnahme deaktiviert werden!
-
-
Wenn Dein Kontroller jetzt mit 8MHz läuft, dann versuch mal dieses Programm. Servo muss hier aber zwingend an PB2 angeschlossen sein. GND und 5V+ sollten auch klar sein.
Sollte es mit diesem Programm nicht funktionieren, ist entweder Dein Servo defekt, etwas falsch angeschlossen oder eine zu schwache Stromversorgung vorhanden.
Bei mir auf dem Schreibtisch werkelt ein kleines Servo gerade damit (auch wenn meins ein analoges ist).
Netten Gruß
Robert
BASCOM-Quellcode
- '
- ' ---------------------------------------------
- '
- ' Servotester
- ' Servo angeschlossen an VCC, GND und PB2 (OC1B Pin!, Pin 16)
- '
- ' ---------------------------------------------
- $regfile = "m8def.dat" ' ATMega 8
- $crystal = 8000000
- $hwstack = 32
- $swstack = 32
- $framesize = 40
- ' --------------------------------------------------------
- ' Timer 1 konfigurieren (CTC-Mode) für Servosignal
- Config Timer1 = PWM , Prescale = 8 , Compare_B_PWM = CLEAR_UP , Clear_Timer = 1 ' Timerticks 1us
- Set TCCR1A.WGM11
- Set TCCR1B.WGM13
- OCR1A = 20000 - 1 ' OC1A bestimmt die Refreshtime (Angabe in us)
- OCR1B = 1500 - 1 ' OC1B bestimmt die Pulsbreite 1ms bis 2ms (Angabe in us)
- ' --------------------------------------------------------
- ' Variablen
- Dim N as Word
- ' --------------------------------------------------------
- ' Alias
- Servo Alias OCR1B
- ' --------------------------------------------------------
- ' Hauptprogramm
- ' --------------------------------------------------------
- Do
- For N = 1000 to 2000 ' Signal 1ms bis 2ms
- Servo = N
- Waitms 1
- Next N
- For N = 2000 to 1000 Step -1 ' Signal 2ms bis 1ms
- Servo = N
- Waitms 1
- Next N
- Loop
- End
-
@R2D2 Dank für das Programm! Ich habe es ausprobiert und mein Servo rührte sich leider nicht.
Da habe ich mir überlegt, dass ich einfach den Aufbau auf dem Steckboard noch einmal auf einem zweiten Steckboard durchführe. Meine Idee war: Anderes Steckboard, nur noch die allernötigsten Verbindungsleitungen (auf dem anderen Board sind die Leitungen für ein LCD-Display) und mein Reserve-ATmega8. Damit könnte ich eine Reihe möglicher Fehlerquellen ausschließen.
Gesagt, getan. Alles mit Sorgfalt zusammen gesteckt und ersteinmal Dein Frequenz-Prüfprpgramm geladen und abgespielt. Da blinkte es mit 8 sek Abstand. Dann habe ich wieder versucht, wie heute nachmittag, die fusebits auf 8 mHz zu schalten. Blöderweise sprang das das immer wieder zurück und so konnte ich die LED nicht zum schnellen Blinken bringen...
Nach einigen Versuchen zeigte das Programm im Programmerfenster unter "Focks and Fuse bits" gar nicht mehr die vertraute Tabelle, sondern irgend ein Register mit Hexadezimalzahlen oder so... Seit dem geht gar nichts mehr.
Wie bekomme ich denn die Tabellenanzeige bei "Locks and fuse bits" zurück?
Und: Wie mache ich das, dass die 8 mHz Einstellung in der Tabelle auch stehen bleibt? (Heute nachmittag schien es noch ganz einfach)
Das Anfängerdarsein ist manchmal nicht einfach...
Ein Oszi habe ich übrigens nicht.
Gruß, Stefan -
Die Tabelle habe ich jetzt wieder aber ich kann bei Fusebit KLA 987 nichts mehr einstellen. Nach jedem weiteren Schritt steht da wieder 000000: Ext. Clock. Damit läuft dann gar nichts mehr...
Wie kann ich meinen Prozessor wieder zum takten überreden?
Gruß, Stefan -
Möglicherweise habe ich mir meinen Reserve-ATmega8 zerschossen.
Naja, mit Verlusten ist zu rechnen und wo gehobelt wird...
Damit ich heute abend wenigstens noch ein bisschen weiter komme, habe ich den Prozessor, den ich heute nachmittag schon mit 8 mHz anfreunden konnte in meinen neuen Aufbau transplantiert. Die Diode leuchtete im 1-Sekundentakt und dann habe ich das Servo angeschlossen.
Absoluter Minimalaufbau, absolut übersichtlich. Als ich dann das Programm "Servotester" laufen lassen habe, hat sich zwar am Servo nichts bewegt aber immerhin war ein leises Tickern vom Servo zu hören.
Schade... Ich bleibe aber dran.
Gruß, Stefan -
froschkoenig schrieb:
Reserve-ATmega8 zerschossen
Der Servo hat schon mal irgendwo funktioniert? Kommt mit 5V klar? Bekommt seine Betriebsspannung von einem anderen/starken Netzteil? Nicht das der defekt ist? Oder in einem Anschlag verklemmt? Läßt er sich drehen (ohne Versorgungsspannung)?
Das "Servotester" läuft auch mit 1Mhz. dafür Prescale = 1 (in Zeile 15) (und natürlich $crystal = 1000000 ) -
Hallo Pluto,
ich werde wohl mal in meiner Gerümpelkiste kramen. Vielleicht finde ich ja noch einen externen Quarz, der dem Atmega ein paar Takte erzählt (hit me with your rythmstick, oder so...)
Der Servo ist neu gekauft. Eine andere (RC-) umgebung zum Ausprobieren habe ich nicht. Bei einem Programm (ohne "config servo") bewegte sich der Servo bei Programmstart in eine Mittenposition. Leider war das später nicht mehr reproduzierbar.
Der Hersteller gibt das Drehmoment für 6 unf 4,8 Volt an. Leider habe ich auch keine geregelte Stromquelle, sondern experimentiere mit 3...4 AA-Batterien. Ich kann aber die Spannung während eines Ansteuerungsversuches messen und die bricht nicht zusammen.
Ja, der läßt sich schon (mit viel Kraft) drehen.
Heute abend werde ich es weiter versuchen...
Gruß, Stefan -
froschkoenig schrieb:
Eine andere (RC-) umgebung zum Ausprobieren habe ich nicht.
Netten Gruß
Robert -
Eine letzte Idee, woran es liegen könnte, habe ich noch:
Wenn ich mit dem USBASP Programmer flashe, gibt es unten im Protokoll folgende Fehlermeldung:
"Can not set clock frequency. Please check for usbasp firmware update"
Trotz der Fehlermeldung blinkt die LED beim Frequenztestprogramm wacker im 1-Sek- Takt.
Was meint Ihr? Ist das eine Fehlermeldung um die ich mich kümmern muss? Sollte ich nach neuerer Firmware suchen? ...und falls ja: Wo?
Gruß, Stefan -
froschkoenig schrieb:
Wenn ich mit dem USBASP Programmer flashe, gibt es unten im Protokoll folgende Fehlermeldung:
Es hat also keinen Einfluss aufs Brennen.Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem. -
Die Fehlermeldung bekomme ich aber immer. Auch dann, wenn ich auf einen weiteren ATmega8 ein gut funktionierendes Zeitmessprogramm flashe. Bei 1 Mhz. Daher habe ich bisher der Meldung keine größere Bedeutung zugemessen.
Gruß, Stefan -
froschkoenig schrieb:
experimentiere mit 3...4 AA-Batterien.
froschkoenig schrieb:
Ich kann aber die Spannung während eines Ansteuerungsversuches messen und die bricht nicht zusammen.
Der Spannungseinbruch ist da.
Im Prinzip geht es ja erstmal um die Ausgabe eines definierten Pulses.
Ein einfaches Programm im Schema:
Do
porta.0 = 1
waitus 1500
porta.0 = 0
waitms 10
Loop
bringt normgerechte Servopulse auf die Leitung (Stackwerte nicht vergessen)
um ein angeschlossenes Servo zu testen, das geht auch mit einem 1MHz Prozessor. -
Es wird erst ein Problem wenn einer mit niedrigen Clock (128/16Khz) angesprochen werden soll.
Mit seiner funktioniert er richtig. (Nicht vergessen seine Fuse umzuschalten)
Er kann den Mega mit Strom versorgen. Dann kann der Servo an den Batterien ohne das das sich stört.
Auch wenn man die Einbrüche nicht direkt sieht würd ich drauf wetten das sie Probleme machen.
Hier kollabiert ein Lcd öfters mal und die hängen an einem 2A Netzteil.
Batteriekontakte sind auch ein ewiges Ärgernis, ein großer Elko am Servo könnte helfen. -
Fuses Prüfen!!
Extern Clock ist nicht das Quarz sondern ein Quarzoszillator.
Aus dem Netz: Ein Quarz ist keine "External Clock", sondern ein "External Crystal/Ceramic Resonator". Bei vielen AVRs ... Per Fuse Calculator die Fuses berechnen lassen.
anbei ein kleines Programm was ok ist.Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Pocketpcuser ()
-
@ Michael: Echt? 2 Ampere? Wie viele Milliampere braucht so ein Servo mittlerer Größe während eines Stellvorganges denn tatsächlich wenn kein Moment abgefragt wird? Ich staune, aber ich habe bisher auch gar keine Erfahrung mit den Dingern.
Jedenfalls habe ich da ein Multi- (Volt-)meter drangehängt und weil da nichts passierte dachte ich, dass der Servomotor gar keinen Strom angefordert hat.
Deine kleine Programmschleife verstehe ich. Die werde ich nachher mal probieren und ggf. ein bisschen die Dauer modifizieren... Allerdings dann immer noch mit der Batterieversorgung.
@ Pluto: Was Du mit der "niedrigen Clock" meinst, verstehe ich nicht. Sorry.
Ansonsten mache ich das bisher so wie Du schreibst: Bei meinen Versuchen, den Servo zu bewegen, lasse ich den ATmega8 am Programmer. Der macht dann dessen Stromversorgung. Beim Servo habe ich einen Batteriebloch dran. Entweder 4,7 V oder 6,3 V. Die Ground ist verbunden.
@PocketPCuser: Gestern habe ich einen Quarz (CQ 1.8432 MHz) mit zwei kleinen Kondensatoren an den ATmega8 gehängt, um den scheinbar zerschossenen ATmega8 zu retten. Leider habe ich es nicht hin bekommen im Bascom-Programmerfenster unter Locks and Fusebits die gewünschten Werte einzustellen. Ich hatte mir vor der Fusebit_Veränderung ein Handyfoto gemacht. Ich konnte die Werte für Hex-Zahlen nicht eingeben.
Jedenfalls: Danke für das Programm! Das funktioniert aber doch nur, wenn einen 16 Mhz-Quarz dranhänge, richtig?
Jedenfalls: Danke an alle für die Hilfe! Es tut mir leid, dass ich mit meiner Experimentierzeit immer etwas zeitversetzt zu Euren Antworten bin!
Gruß, Steafn -
So, jetzt habe ich mit der kleinen Programmschleife experimentiert. Ich habe die Impulsdauer und die Impulshäufigkeit munter variiert. Probeweise auch mal so lang, dass ich die Dauer der Impulse mit LED und Stopuhr checken konnte. Alles funktioniert, nur der Servo (das Servo?) hat bestenfalls ein leises Ticken von sich gegeben. Na gut... 6 V Batterieanschluss...
Als ich den Servo vom Strom genommen habe, hat mal kurz eine 30° Drehung gemacht, um sich über mich lustig zu machen.
Die Farben der Servoanschlusskabel sind eindeutig? (Rot=Mitte=+ / Schwarz=Seit=- / Weiß=Seite=PWM)
Jedenfalls lerne ich bei der Fehlersuche einiges...
Gruß, Stefan
Ich habe mir gerade noch einmal die Daten zu dem Servo angesehen. Da steht:
Arbeitsfrequenz: 2us 1520us / 330hz
genauso, wie ich es getippt habe. Was das aber genau bedeutet, weiß ich nicht. Ich habe natürlich auch Pulslängen von 2 und 1520 us probiert. mit 330 oder 50 Pulsen pro Sekunde. Hat aber auch nicht geholfen.Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von froschkoenig ()
-
froschkoenig schrieb:
Echt? 2 Ampere? Wie viele Milliampere braucht so ein Servo mittlerer Größe während eines Stellvorganges denn tatsächlich wenn kein Moment abgefragt wird? Ich staune, aber ich habe bisher auch gar keine Erfahrung mit den Dingern.
Jedenfalls habe ich da ein Multi- (Volt-)meter drangehängt und weil da nichts passierte dachte ich, dass der Servomotor gar keinen Strom angefordert hat.
Hier mal ein Link zur Thematik, interessant die Grafik unten, was so ein Servo wirklich zieht.
ripmax.de/servo-rueckstrom-r7018sb
froschkoenig schrieb:
hat bestenfalls ein leises Ticken von sich gegeben. Na gut... 6 V Batterieanschluss...
Zeig uns bitte dein ganzes Programm, vielleicht hast du ja was vergessen (Stackwerte, DDR, etc)
froschkoenig schrieb:
Die Farben der Servoanschlusskabel sind eindeutig? (Rot=Mitte=+ / Schwarz=Seit=- / Weiß=Seite=PWM)
froschkoenig schrieb:
Ich habe mir gerade noch einmal die Daten zu dem Servo angesehen. Da steht:
Arbeitsfrequenz: 2us 1520us / 330hz
genauso, wie ich es getippt habe. Was das aber genau bedeutet, weiß ich nicht.
-
froschkoenig schrieb:
der "niedrigen Clock" meinst,
Manchmal humpelt der Bascom Programmer da hilft es Baccom neu zu starten (nicht nur das Programmer Fenster). Läßt er sich noch erkennen (Indentfy Chip)?
Sicher das nicht weiß + ist und rot der Eingang? -
Bei Servos ist Plus in der Mitte und Meistens Rot, schwarz minus, Weiß oder Orange Signal.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Pocketpcuser ()
-
Das Datenblatt zu dem Servo:
amewi.com/AMX-Racing-DC5821LV-WP-Digital-ServoStandard-218kg
Gruß, Stefan