servo ist der Sollwert des Servos. Heisst, es fährt diese Position an.
Da es zu Anfang zentriert wird (servo_maxRechts und servo_maxLinks sind die beiden festgelegten Endlagen, weiter darf es nicht fahren) mit servo=servoMitte, sollte es anschliessend einmal nach rechts, dann ganz nach links fahren.
Tuts aber nicht, es fährt nur die Mittelposition an.
Im Programm ändere ich später einfach den Wert Servo so:
Code:
int8_t status_R = sens_getRight(); // Rechter Fühler
if(status_R < 0) // nach hinten
{
servo=servo - 5; // Servo nach rechts
delay(50);
if (servo < servo_maxRechts) // Überlauf verhindern
{
servo=servo_maxRechts;
}
}
if(status_R > 0) // nach vorne
{
servo = servo + 5; // Servo nach links
delay(50);
if (servo > servo_maxLinks) // Überlauf verhindern
{
servo = servo_maxLinks;
}
}
..und kann damit das Servo mittels der beiden Taster in beliebige Positionen fahren.
Auch das funktioniert ganz problemlos, ein paar Zeilen später.
Lesezeichen