[AVR Mega 8] Servo bewegt sich nur in eine Richtung

OP #1797013
Lesenswert?
• ▲
▼
Hallo,

ich habe heute mal versucht, einen Servo anzusteuern. Dazu wollte ich
ganz einfach anfangen:
1
#include <avr/io.h>
2
#define F_CPU 8000000UL
3
#include <util/delay.h>
4

5
int main() {
6
 // Alle Pins des Ports B als Ausgang definieren:
7
  DDRD = 0xff; 
8

9
  while(1) {
10
  // 5 auf high
11
  PORTD=(1<<PD5);
12
  _delay_ms(1);
13
  // 5 auf low
14
  PORTD &= ~(1<<PD5);
15
  _delay_ms(9);
16
  _delay_ms(10);
17
 }
18
}

Ich benutze das Pollin Board, bei F_CPU habe ich 16, 8, 4, 1
ausprobiert. Der Takt müsste auf intern gestellt sein.

Doch leider bewegt sich der Servo nur in eine Richtung bis zum Anschlag.

Wo liegt das Problem?

Grüße

[Eine kleine Diskussion gibt es dazu unter 
Beitrag "Re: einfache Servoansteuerung" dieser Thread wurde 
aber leider gesperrt]
#1797017
Lesenswert?
• ▲
▼
Tilman Stremlau schrieb:

> Doch leider bewegt sich der Servo nur in eine Richtung bis zum Anschlag.
> Wo liegt das Problem?

Da gibt es IMHO kein Problem.
Genau das hast du ja programmiert!

> Der Takt müsste auf intern gestellt sein
Du hast aus dem alten Thread nichts gelernt. Mit 'müsste' kommt man 
nicht weiter. Wie ist denn nun die Einstellung deines internen Taktes?

Im zweifelsfall probierst du es aus:
Häng anstelle deines Servos eine LED an den Ausgang und lass dieses 
Programm laufen:
1
#include <avr/io.h>
2
#define F_CPU 8000000UL
3
#include <util/delay.h>
4

5
int main() {
6
 // Alle Pins des Ports B als Ausgang definieren:
7
  DDRD = 0xff; 
8

9
  while(1) {
10
    PORTD=(1<<PD5);
11
    _delay_ms(1000);
12
    PORTD &= ~(1<<PD5);
13
    _delay_ms(1000);
14
  }
15
}
Wenn dein interner Takt tatsächlich auf 8Mhz steht, dann ist deine LED 1 
Sekunde hell und 1 Sekunde dunkel. Ist die LED 8 Sekunden an und 8 
Sekunden aus, dann steht der interne Takt auf 1Mhz und nicht auf 8.

Damit kommst du erst mal von 'müsste' weg, hin zu: Ich weiß das der 
interne Takt auf so_und_soviel Mhz steht! Etwas zu wissen ist dann schon 
etwas ganz anderes als etwas zu vermuten. Damit kann man dann auch 
arbeiten.

Antwort schreiben

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.

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.