Tastergesteuerter Servo

Hallo,

Ich suche dringend einen Denkansstoß um mein Projekt zu vollenden.

Ich möchte einen ServoMotor in 3 Stellungen bringen (0,90,180) Grad.
Dies soll per Tastendruck passieren.Sprich:

Ich drücke die Taste und der Servo geht auf 0 Grad
Ich drücke wieder die Taste und der Servo fährt auf 90 Grad
....

Einfach ist es wenn der Servo von 180 wieder auf 0 fahren würde, so hätte ich einen Zähler hochzählen lassen und am ende auf 0 gesetzt, soll er aber nicht er soll :

0-90-180-90-0-90-180-90-0... fahren.

habt ihr ne gute Idee für mich?

Warum siehst du dir nicht die Beispiele in der Library an.
Da steht doch drin, wie es funktioniert.

Denkansstoß

Du möchtest einen endlichen Automaten bauen.

Welche sollen das sein?

iras-xtc:
Welche sollen das sein?

Was, wie, welche ???

iras-xtc:
er soll :

0-90-180-90-0-90-180-90-0... fahren.

habt ihr ne gute Idee für mich?

Servopositionen in einem Array ablegen:
const byte servoPositionen={0,90,180,90};

Bei jedem Druck des Tasters eine Position weiter und am Ende zurück auf Anfang.

int pressCount;
if (buttonPressed()) pressCount++;
byte servoPos=servoPositionen[pressCount%4];
Servo.write(servoPos);

Das ist es doch im wesentlichen.
Brauchst Du halt eine Funktion "buttonPressed" mit bool Rückgabewert, die beim Drücken des Tasters true und sonst immer false liefert.
Ist das ein Problem?

Den Zähler kannst du doch trotzdem per Tastendruck laufen lassen, einfach über 4 Zustände, dann wieder 0 setzen.

Den Zähler fragst du dann in der Art ab:

switch (zaehler) {
    case 1:
       // Servo auf 0 Grad
       break;
    case 2:
       // Servo auf 90 Grad
       break;
    case 3:
       // Servo auf 180 Grad
       break;
    case 4:
       // Servo auf 90 Grad
       break;
  }

Ja das klingt gut. Das werde ich heute mal testen .
Die Option 0,90,180,90 und dann von vorne finde ich klasse