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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren