Hi, Ich möchte einen Servomotor mit einem Attiny85 ansteuern. Der Attiny wird mit dem Arduino als ISP programmiert. Mir ist klar, dass der Attiny nicht "direkt", wie der Atmega328 des Arduinos ansteuern kann, somit muss man laut dem Internet PWM verwenden. Hier meine Frage: Um einen Servo einfach anzusteuern muss man den Ausgang zum Servo regelmäßig ein und ausschalten; Wie genau sind denn die einzelnen Zeitabstände, wenn mein Servo "normal" z.B. 0° hat und nach 5 sekunden ich um 85° dreht? MfG
Patryk D. schrieb: > Mir ist klar, dass der Attiny nicht "direkt", wie der Atmega328 des > Arduinos ansteuern kann, somit muss man laut dem Internet PWM verwenden. Auch der Mega328 muss das natürlich per PWM machen. Er hat gegenüber einem Tiny im Allgemeinen nur einen Vorteil: Er verfügt über einen 16Bit-Timer. Das macht es einfacher, die PWM für einen Servo zu erzeugen. Aber: Erstens gibt es ATtinys, die ebenfalls über 16bit-Timer verfügen. Zweitens kann man (mit erhöhtem Programmieraufwand) auch mit einem 8 Bit Timer das gleiche Ergebnis erzielen. Zumindest die erste Lösung sollte auch für Arduino-Dümmlinge gangbar sein...
Patryk D. schrieb: > Wie genau sind denn die einzelnen Zeitabstände, wenn mein Servo "normal" > z.B. 0° hat und nach 5 sekunden ich um 85° dreht? Auf die Periode kommt es nicht an. Entscheidend ist die Pulslänge, also die 1..2ms
zB. der Attiny2313 hat einen 16bit Timer und kann mit Timer Mode 14 2 Servos 'im Hintergrund' ansteuern. Man braucht dann nur die Positionswerte in die Compare Register schreiben. Beitrag "Re: Servo Ansteuerung"
Hallo pad_dy, hast Du deinen Attiny in der ArduinoIDE jetzt "sichtbar" machen können? Dein Beitrag dazu war "Offtopic", als Gast kann ich darin nicht antworten. Habe übrigens selbst mal einen Attiny25 in der Arduino IDE programmiert und mit ISP geflasht. Gruß
Bevor man fragen stellt, sollte man immer mindestens bei Wikipedia und in der Artikelsammlung nachschauen, um Peinlichkeiten zu vermeiden. https://de.wikipedia.org/wiki/Servo https://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung Mein Buch geht auch detailliert auf Servos ein. http://stefanfrings.de/mikrocontroller_buch/index.html Mit einem Attiny2313 kann man ohne großen Aufwand an sämtliche I/O Pins Servos anschließen. Wenn Dich das interesseirt, dann schau von dem Projekt auf http://stefanfrings.de/servocontroller/index.html ab, nachdem du die entsprechenden Kapitel aus meinem Buch gelesen hast. Da steuere ich 10 Servos mit einem Timer. Der Chip hat noch einen zweiten Timer frei.
Stefan U. schrieb: > Mit einem Attiny2313 kann man ohne großen Aufwand an sämtliche I/O Pins > Servos anschließen. Der Threadersteller verwendet einen Attiny85. Für Arduinos bzw. Atmegas gibt es die Servo Library. Ob die ohne Probleme bei den Attiny85 funktioniert?
Sie lässt sich sicher leicht anpassen, nachdem man den Artikel aus der Artikelsammlung verstanden hat.
Man kann die 20ms Pulsabstand mit einem Timerinterrupt erzeugen und darin die Pulsdauer 1..2ms mit Delay. Das ergibt dann max 10% CPU-Auslastung, ist also verkraftbar. Damit erreicht man eine feine Auflösung auch ohne 16Bit-Timer. Man muß die Funktion _delay_loop_2() benutzen, damit zur Laufzeit kein float gerechnet wird.
Hallo steanus, Er will eigentlich nur vom Anschlag auf Servomitte fahren. Die Impulsbreite muss sich von 1ms auf 1.5ms ändern. Die Zeit zwischen zwei steigenden Flanken dieses Impulses beträg bei normaler Servo PWM 20ms und bleibt immer gleich. Ist alles nicht neues wurde hier schon durchgekaut. arduinospielwiese.de -> Servomotor ansteuern Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.