Hallo
Ich versuchs mal einfacher zu erklären.
Wenn du die M32 hast schließt den den Servo an die 5V Stromversorgung (rotes und schwarzes Kabel) dann bleibt ein Kabel (Orange oder Weiß meistens) über. Über dieses Kabel wird der Servo angesteurt bzw die Position übermittelt bis wohin er sich drehen soll --> das so genannte PWM Signal (Pulsweitenmodulation). Dieses Steuerkabel ( in Zukufnt PWM-Kabel genannt) wird an einen Ausgang des Robos (in dem Beispiel an die I/O Ports der M32 Platine geklemmt).
Das PWM Kabel bekommt dann (bedingt durch das Programm) jeweils einen kurzen Impuls der dem Servo sagt was er machen soll.
Im Programm sieht die Methode dann so aus:
void Servo(uint8_t pos)
{
DDRC |= IO_PC4; //I/O Port als Ausgang deffinieren
PORTC |= IO_PC4; // Impulsstart
sleep(pos); // so und soviel ms warten
PORTC &= ~IO_PC4; // Impulsende
sleep(185); // 18,5ms warten
}
In der main Methode wird dann zB gesagt:
...
int x;
for(x=0;x<50;x++)
{
Servo(20);
}
...
Dann dreht sich der Servo auf eine bestimmte Position (unabhängig von seiner vorherigen Position das is das geniale bei Servos) und bleibt dort bis er weiter angesteuert wird.
Die Positionen sind bei meiner Methode zwischen 3-23 wählbar (Anschlag auf einer Seite bzw auf der anderen)
Ich hoffe es ist so etwas verständlicher
Gruß Thund3r
Lesezeichen