-         

Ergebnis 1 bis 9 von 9

Thema: Servos ansprechen mit Atmega16

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.05.2006
    Beiträge
    7

    Servos ansprechen mit Atmega16

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    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

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    29
    Beiträge
    2.624
    Hallo zersus!
    In welche Sprache programmierst Du?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    15.05.2006
    Beiträge
    7
    Ich programmier mit Assembler.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    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...

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    15.05.2006
    Beiträge
    7
    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.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    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...

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    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 ...

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    15.05.2006
    Beiträge
    7
    Könntest du mir bitte auch noch sagen wie das im konkreten im Quellcode
    ausschaut( zur Erinnerung im Assembler)

    mfg zersus

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    hier könntest du einige Anregungen finden ...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •