PWM Steuerung für Servo

OP #1691002
Lesenswert?
• ▲
▼
Hallo zusammen,
Ich benötige eure Hilfe. Und zwar will ich einen Lenkservo eines 
Fernsteuerautos mit einem µC ansteuern. Die Grundlagen dafür sind mir 
bekannt. Es handelt sich um das Model "Futaba S3003". Mein C-Code dafür 
sieht wie folgt aus:
1
#include <avr/io.h>
2
#include <avr/delay.h>
3

4
void steuerung(uint8_t richtung)
5
{
6
  PORTB=1;     // Signalleitung des Servo
7
  _delay_us((1+(richtung*0.5))*1000);
8
  PORTB=0;
9
  _delay_us(20*1000);
10
}
11

12
int main(void)
13
{
14
  DDRB|=0xFF;
15
  for(;;)
16
  {
17
    steuerung(1);  //0->Links;1->Geradeaus;2->Rechts
18
  }
19
  return 0;
20
}

Der Lenkservo dreht sich permanent nach rechts bis in den Anschlag. 
Dabei sollte er sich aber laut Code jetzt in der Nullstellung halten. 
Die Funktion steuerung() erzeugt mir das PWM Signal. In diesem Fall 
High-Pegel für 1,5ms und dann Low-Pegel für 20ms.
Würde mich sehr über Eure Tips freuen!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.