- Labornetzteil AliExpress         
Ergebnis 1 bis 7 von 7

Thema: Servo ansteuern mit ein 8 Bit PWM Signal über 122 Schritte?!

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.05.2011
    Ort
    NRW
    Alter
    37
    Beiträge
    146
    Hallo Oberallgeier,

    Habe wie oben schon geschrieben analoge Servos und diese lassen sich mit 16ms in der Periode (pausen sind also weniger) gut fahren.

    Habe ein Video vom aktuellen Stand mal hochgeladen. Dort sieht man am anfang mein C# Programm. Dort ist einmal eine Trackbar die man von 10-42 (32 Schritte) einstellen kann. Sobald man den Wert ändert wird dieser in der Textbox angezeigt und über RS232 versendet. Der Botten lässt den Wert einmal von 10 auf 42 hochzählen.
    Wenn ich die Zahl 9 oder 43 verschicken würde, wäre der Servo am Anschlag. So passt es aber noch, ohne das der Servo brummt bzw am Anschlag hängt. Im zweiten Teil sieht man mein Roboter Arm. Dort sieht man auch wozu das ganze gut ist. Dieser hat 6 Achsen, somit müssen 6 PWM Signale erzeugt werden.
    Im letzten Teil des Videos sieht man noch mein Oscilloscope, wo das Signal angezeigt wird. Dort sieht man auch, das die Periodendauer ~16ms ist.



    Nun zu meiner ursprünglichen Frage. Kann man nur jeden 4ten Impulz durchlassen oder muss ich damit leben das ich nur 32 Schritte zum Verfahren habe.

    Andere Möglichkeit wäre ein Atmega64 zu nehmen. Dort habe ich aber das Problem das er nur in einer SMD Bauweise zu erwerben ist

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Wie gesagt, probiers mal mit Software-PWM.
    Nimmst Timer1 mit Prescaler 8 dafür, der kann bis zu 65535 hochzählen und bei 16MHz Taktfrequenz bedeutet das, dass er bis 32,277ms in 0,5µs-Schritten hochzählen kann. reicht also für die geforderten 20ms pro Periode.
    Dann den Interrupt so programmieren, dass er deinen Servo-Pin für die Impulszeit auf High setzt, beispielsweise für ein 1,5ms-Signal stellst du den Timer auf 3000, und für den Rest der 20ms auf Low, also 40000-3000=37000.
    Der µC-Takt wird also durch den Prescaler durch 8 geteilt, sodass man eine Frequenz von 2MHz hat, daher die 0,5µs-Schritte, der Pin wird für 3000*0,5µs=1,5ms High gesetzt und für 37000*0,5µs=18,5ms auf Low.
    So lässt sich der Stellbereich von 1ms bis 2ms in 2000 Schritte unterteilen. Dürfte genauer sein, als der Servo auflösen kann

Ähnliche Themen

  1. Servo ansteuern über Transistoren?
    Von Omit im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 21.11.2007, 05:45
  2. Servo über GPIO mit PWM an RN-Control ansteuern (Frequenz ?)
    Von Chattychan im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 23.07.2007, 10:53
  3. Lineareinheit über analoges Signal ansteuern
    Von Tristn2 im Forum Motoren
    Antworten: 2
    Letzter Beitrag: 14.01.2007, 18:25
  4. servo ansteuern über ISP
    Von Downad im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 06.01.2007, 20:29
  5. Antworten: 26
    Letzter Beitrag: 30.05.2004, 17:55

Berechtigungen

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

12V Akku bauen