Archiv verlassen und diese Seite im Standarddesign anzeigen : Servos ansprechen mit Atmega16
Servus,
Da ich gerade an einem Roboter baue, hatte ich vor meinen Sensor mir Hilfe eines Servos drehbar zu machen, leider habe ich keine Ahnung wie ich diese genau mit meinem Mikrokontroller( einen Atmega16 ) ansteuern
kann.
P.S.: Ein normaler Modellbau Servo
Ich bedanke mich schon einmal für eure Antworten.
mfg zersus
Hallo zersus!
In welche Sprache programmierst Du?
Ich programmier mit Assembler.
Was hast du noch so an Timern frei?
Einfachste Methode: Du stellst einen Timer so ein, dass er alle 20ms einen Interrupt auslöst. In dessen ISR startest du dann einen zweiten Timer, der -je nach gewünschter Position- den Anschluss des Servos für 1 bis 2ms [1,5ms ist Neutralstellung] einschaltet. Mit zwei Compare-Registern kannst du so recht einfach zwei Servos ansteuern. Es geht auch mit nur einem Timer und noch mehr Servos, aber dann wird halt auch komplizierter...
Wie wäre die eigentlich die Mäglichkeit genau mit einem Timer( 16Bit timer Counter1) und einem Servo, da ich leider nur noch 1 freihabe und nur einen Servo gebrauchen Kann, auch aus Platzproblemen.
Bedanke mich schon im Voraus für eure Antworten.
Dann müsstest du erst die Impulsdauer (1 bis 2ms) ablaufen lassen, und danach den Timer so stellen, dass er die restlichen 18 bis 19ms zählt, bis der nächste Impuls kommen muss...
Hmm .. folgende Annahme:
Servos werden mit einer Abart der PWM angesteuert.
Die Pulsfolgefrequenz liegt bei 50Hz (20 ms)
Der Regelbereich liegt zwischen 1 ms und 2 ms Impulsbreite (1ms - eine Seite - 1,5 ms die Mitte - 2 ms die andere Seite)
Folglich könnte man eine (Fast-) PWM mithilfe des Timers 1 initialisieren welche grob die folgenden Eckdaten hat:
1. ein kompletter Timerdurchlauf dauert 20 ms
2. der Vergleichswert (OCR) bewegt sich zwischen 1 ms & 2 ms ...
das schöne daran ist, man initialisiert das einmal und ausser dem, das man neue Werte übergeben muss hat man keinerlei Aufwand.
Grüße,
da Hanni.
€dit: Mit dem Timer 1 gehen im übrigen normalerweise 2 PWM's ...
Könntest du mir bitte auch noch sagen wie das im konkreten im Quellcode
ausschaut( zur Erinnerung im Assembler)
mfg zersus
hier (https://www.roboternetz.de/phpBB2/viewtopic.php?p=181249#181249) könntest du einige Anregungen finden ...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.