www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mehrere servos an ATMega8


Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also die Überschrift sagt schon alles aus... Ich möchte mehrere Servos
(so viele wie möglich) an einen Mega8 hängen und alle individuell
ansteuern.
hat jemand ein fertiges C - Programm (oder ausschnitte) dafür?
Ich habe Probleme, Zeitkritische Vorgänge (1, 1.5, 2 ms HIGH - Signal)
in C zu programmieren.
Danke!

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieviel Servos sind es denn?
Der Mega8 hat "nur" zwei PWM-Kanäle bzw. 3 Timer. Wo genau liegt dein
Problem, verstehst du nicht, wie eine PWM zu implementieren bzw. ein
Timer zu initialisieren ist?
Wie programmierst du? avrgcc, assembler, ...

Gruss, Alex

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende GCC
Ich benötige mehr als 2 Ausgänge. In der 1. Ausbaustufe 8 Servos
(später 16) Also müsste ich alles mit Software schicken, ohne die PWM -
Ports zu verwenden.
Das Problem ist, das dafür auch niht genügend Timer vorhanden sind!

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Auflösung brauchst du bei den Servos?
100 Schritte dürften reichen, oder?
Dazu nehme man einen Timer, der alle 10 µS einen Interrupt auslöst.
In der dazughörenden Interrupt Service Routine zählt man der Menge der
Servos entsprechend viele Variablen und eine von 2000 (20.000 µS)
herunter. Sobald diese Variable auf 0 heruntergezählt wurde, werden die
Servo-Variablen mit neuen Werten initialisiert, und sämtliche Ausgänge
eingeschaltet. Der zur Servo-Variable korrespondierende Ausgang wird
dann ausgeschaltet, sobald die Variable auf 0 heruntergezählt worden
ist.

Den ganzen Spaß muss man noch irgendwie initialisieren, aber so müsste
das funktionieren.
In der Hauptschleife werden dann die Initialwerte für die
Servo-Variablen bereitgestellt.

Aufwand:
1 Timer
2*n Byte-Variablen für die Servos
1 Int-Variable für die Periodendauer.

Gruß Rahul

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte hier schonmal irgendwann ein Beispiel gepostet, das eine
N-Kanal Software-PWM implementiert.  Damals ging's allerdings um
LEDs,
da war das Timing und die Abstufung noch weniger kritisch.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Netz geistert irgendwo ein Programm herum, bei dem ein 2313 8 Servos
ansteuert. Weiß momentan nicht wo, aber Google wirds wohl finden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.