Servomotor über Attiny2313 ansteuern

OP #3466348
Lesenswert?
• ▲
▼
Hallo,
ich möchte ganz einfach einen Servomotor über einen Attiny2313 
ansteuern. Dazu habe ihc in diesem Forum etwas gefunden 
(http://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung).

den ersten Code
1
#define F_CPU 1000000UL
2
 
3
#include <avr/io.h>
4
#include <util/delay.h>
5
 
6
int main (void)
7
{
8
  DDRB = (1<<PB1);
9
 
10
  while( 1 ) {
11
 
12
    PORTB |= (1<<PB1);
13
    _delay_us( 1500 );    // in den 1500 steckt die Lageinformation
14
    PORTB &= ~(1<<PB1);
15
 
16
    _delay_ms( 18 );      // ist nicht kritisch
17
  }
18
 
19
  return 0;
20
}

habe ich so kopiert und auf meinen Controller gemacht. Den Servo höre 
ich rattern, aber er bewegt sich absolut nicht. Auch wenn ich die zeiten 
etwas ändere, passiert nichts.
Steuer ich den allerdings mit einem Arduino an, funktioniert er noch.
Woran kann das liegen?

Eigentlich möchte ich den Servo erst einmal ganz einfach immer um 90° 
hin und her drehen.

gruß
Chandler
Gast #3466511
Lesenswert?
• ▲
▼
Wenn die Taktfrequenz stimmt, dann wird der Servo eine bestimmte 
Position anfahren und dann dort bleiben. Um ihn hin und her zu bewegen, 
musst Du die Pulsbreite variieren, zum Beispiel eine Sekunde lang 1500µs 
und dann eine Sekunde lang 1800µs und dann wieder 1500µs usw.
OP #3469439
Lesenswert?
• ▲
▼
Ah,
ich glaube er hat eine Geschwindigkeit von 20MHZ
(http://www.reichelt.de/Atmel-Attiny-AVRs/ATTINY-2313-DIP/3/index.html?&ACTION=3&LA=446&ARTICLE=54568&GROUPID=2958&artnr=ATTINY+2313+DIP&SEARCH=ATTINY+2313+DIP)
muss ich dann die erste Zeile in
1
#define F_CPU 2000000UL
umwandeln?
Habe es gerade nicht hier um zu testen.
@Stefanus: Ja, du hast recht. Momentan gibt es da noch nicht so viel zu 
sehen.
Ich werde mir erstmal angucken, wie ich am Attiny ein PWM-Signal erzeuge 
und dann mal weiter testen.
Gruß
Chandler
Gast #3469469
Lesenswert?
• ▲
▼
Glauben hilft nicht. 20Mhz ist die maximal mögliche Frequenz. Mit 
welchem Taktsignal wird er denn versorgt bzw. wie ist der interne R/C 
Oszillator konfiguriert?

Default ist 1Mhz.

PWM ist auf jedenfall besser. Nichtsdestro trotz sollte dein Programm 
mit den Delays auch funktionieren. Wenn dieses nicht funktioniert, wirst 
Du mit PWm auch nicht weiter kommen. Finde erstmal die Problemursache 
und behebe sie.

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.