Mega 2560 mit Taster und Servo will nicht

Moin,

ich habe mir ein Arduino Mega 2560 Board gekauft und habe mein erstes Sketch hochgeladen.
Es soll ein Servo angesteuert werden. Im ersten Sketch wird der Servo an vier Positionen gefahren mit
kleinen Pausen. Alles funktioniert soweit super.

Dann habe ich ein zweites Sketch geschrieben, hier soll der Servo erst dann die Positionen anfahren, wenn
ein Taster gedrückt wird. Ich kompeliere und lade den Sketch auf das Board hoch, alles sieht soweit super aus, ausser dass der Servo mit der alten Programmierung los läuft, als hätte das Board die neue Programmierung nicht übernommen. Ich habe auch schon ein leeres Sketch geladen, und siehe da der Servo wird nicht angesteuert.
Was könnte da mein Fehler sein? Das Sketch habe ich unten mal mit eingefügt.

Danke schon mal

Gruß
Marco

#include <Servo.h> //Die Servobibliothek wird aufgerufen. Sie wird benötigt, damit die Ansteuerung des Servos vereinfacht wird.
 
Servo servoTor1; //Erstellt für das Programm ein Servo mit dem Namen „servoTor1“

int tasterTor1=8; //Das Wort „tasterTor1“ steht jetzt für den Wert 8.

int tasterTor1status=0; //Das Wort „tasterTor6status“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob der Taster gedrückt ist oder nicht.

//-----------------------------------------

void setup()

{

servoTor1.attach(2); //Das Setup enthält die Information, dass das Servo an der Steuerleitung (gelb) mit Pin 2 verbunden wird. Hier ist natürlich auch ein anderer Pin möglich.

servoTor1.write(0); //Position 1 ansteuern mit dem Winkel 0°

pinMode(tasterTor1, INPUT_PULLUP); //Der Pin mit dem Taster (Pin 8) ist jetzt ein Eingang.

}

void loop()

{ //Im „loop“ wird über den write-Befehl „servoTorX.write(Grad)“ das Servo angesteuert. Zwischen den einzelnen Positionen gibt es eine Pause, damit das Servo genug Zeit hat, die gewünschten Positionen zu erreichen.

tasterTor1status=digitalRead(tasterTor1); //Hier wird der Pin ausgelesen (Befehl:digitalRead). Das Ergebnis wird unter der Variable „tasterstatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert.

if (tasterTor1status == HIGH)//Verarbeitung: Wenn der taster gedrückt ist (Das Spannungssignal ist hoch)

{

servoTor1.write(0); //Position 1 ansteuern mit dem Winkel 0°

delay(3000); //Das Programm stoppt für 3 Sekunden

servoTor1.write(5); //Position 2 ansteuern mit dem Winkel 5°

delay(3000); //Das Programm stoppt für 3 Sekunden

servoTor1.write(10); //Position 3 ansteuern mit dem Winkel 10°

delay(3000);//Das Programm stoppt für 3 Sekunden

servoTor1.write(15); //Position 4 ansteuern mit dem Winkel 15°

delay(3000);//Das Programm stoppt für 3 Sekunden

}

else //...ansonsten...
  
{ 

servoTor1.write(5); //Position 1 ansteuern mit dem Winkel 5°

delay(3000); //Das Programm stoppt für 3 Sekunden

servoTor1.write(0); //Position 2 ansteuern mit dem Winkel 0°

delay(3000); //Das Programm stoppt für 3 Sekunden

} 

}

pinMode(tasterTor1, INPUT_PULLUP);
....
if (tasterTor1status == HIGH)//Verarbeitung: Wenn der taster gedrückt ist (Das Spannungssignal ist hoch)

Das kann nicht richtig sein...
Es ist High, wenn der Taster NICHT gedrückt ist.

Der Pullup zieht hoch.

Hmm ok danke schon mal, dass ging ja schnell... aber er soll doch High sein wenn er gedrückt wurde... was ist denn genau falsch oder wie muss es richtig sein

Wenn Du INPUT_PULLUP benutzt, dann muss der Taster vom Eingang nach GND geschaltet sein. Aktiv = LOW.
Ansonsten einen externen PullDown-Widerstand nach GND anschließen und den Taster nach High. Aktiv = HIGH.

Gruß Tommy

aber er soll doch High sein wenn er gedrückt wurde..

Wissen

Tommy56:
Wenn Du INPUT_PULLUP benutzt, dann muss der Taster vom Eingang nach GND geschaltet sein. Aktiv = LOW.
Ansonsten einen externen PullDown-Widerstand nach GND anschließen und den Taster nach High. Aktiv = HIGH.

Gruß Tommy

Hallo Tommy,
danke schon mal, die Schaltung habe ich schnell umverdrahtet, aber dass eigentlich Problem, dass er nach hochladen des neuen Sketch trotzdem das alte laufen lässt ist nicht gelöst.

aber dass eigentlich Problem, dass er nach hochladen des neuen Sketch trotzdem das alte laufen lässt ist nicht gelöst.

Du irrst!

Wenn das "Hochladen" keine Fehler meldet, ist das neue Programm auch drauf.