wenn taster gedrückt, schleife beenden

Hallo miteinander,

ich habe folgendes in arduino programmiert.
ich habe einen taster und wenn dieser gedrückt wird, soll die schleife abgebrochen werden.
Jedoch ist es nur so, dass dies nur passiert so lange ich den taster gedrückt halte. sobald ich es loslasse, fängt die schleife wieder an zu laufen

int Motor = 8;
int ledPin = 10;
const int buttonPin = 2;
int buttonState = 0;
int Motorlaufzeit = 2500;
int Leerlauf = 5000;
int Pause = Leerlauf - Motorlaufzeit;


void setup() {
pinMode(Motor, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
 
void loop()
{
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
  
digitalWrite(Motor, HIGH);
delay(Motorlaufzeit); //Motorlaufzeit
digitalWrite(Motor, LOW);
delay(250);  // Pause zwischen Motorbetrieb und foto
digitalWrite(ledPin, HIGH);
delay(100); // Fotoauslösung
digitalWrite(ledPin, LOW);
delay(Pause); // Pause den Fotos zwischen sollte immer 5 Sekunden betragen

}
else {
digitalWrite(ledPin, LOW);
digitalWrite(Motor, LOW);
digitalWrite(buttonState, LOW);
}
}

[EDIT] CODE TAGs eingefügt. Grüße Uwe[/EDIT]

handyaner:
ich habe einen taster und wenn dieser gedrückt wird, soll die schleife abgebrochen werden.
Jedoch ist es nur so, dass dies nur passiert so lange ich den taster gedrückt halte. sobald ich es loslasse, fängt die schleife wieder an zu laufen

Arbeite das diesem Anwendungsfall entsprechende Arduino-Programmierbeispiel durch!

Du findest es unter "Datei - Beispiele - Digital - StateChangeDetection"

Versteh ich nicht. Welche Schleife soll abgebrochen werden?

Mir scheint Deine Steuerung etwas wenig durchdacht.
Wie soll der Zyklus starten?
Könnte mir vorstellen Du hast einen START-Taster und einen STOP-Taster.
Der START-Taster setzt eine Variable auf 1 der STOP-Taster setzt die Variable auf 0. Bei 1 läuft er Bewegung-Foto-Zyklus; bei 0 wird der letzte beendet.

Du kannst start/stop auch mit einem Taster machen. Da hat Dir jurs bereits ein Beispiel-Sketch gegeben. oder:
http://www.mathias-wilhelm.de/arduino/beispiele/taste-schaltet-led/?PHPSESSID=iuu4b974luemd815eh21dmbma2

Damit Du jederzeit den STOP-taster drücken kannst, ist es notwendig keinen Delay zu verwenden, sondern die Zeiten mit millis() zu kontrollieren. siehe Beispiel Arduino Playground - BlinkWithoutDelayDe

Grüße Uwe