Einfache if-Abfrage

Nein tut er nicht.

ich habe ihn schon länger als 10 Sekunden gedrückt

Du hast doch eine Menge Debug-Ausgaben eingebaut, deren Ergebnis wir aber nicht kennen.
Hängt das ganze evtl. für 2 Minuten in   DCF.getTime();  bis die DCF-Uhr ein Signal hat?

Du solltest einen guten Wissens-Vorsprung haben gegen unsere Rate-Versuche.

Übrigens, nur am Rande:

  if(debug = true){

sorgt dafür, dass debug eingeschaltet wird. Aber das willst du ja sowieso :wink:

kleiner Tipp, schalte doch einfach erstmal alle anderen Fehlerquellen aus und lass nur das Abfragen Deines Tasters und den "if-Block" in der loop(). Dann wirst Du sehen, ob Du bei gedrücktem Taster jede Sekunde einen Step bekommst.
Im übrigen ist es sicher nicht notwendig jede Sekunde die DCF-Zeit zu prüfen.

Nein es verhält sich genauso wie vorher.

wie sieht der abgespeckte Test-Sketch denn nun aus?

#include <Stepper.h>

Stepper stepper(100, 8, 9, 10, 11);


void setup(){
    stepper.setSpeed(1);
  
}


void loop(){
  
   if (digitalRead(4) == HIGH){
    stepper.setSpeed(1); 
    stepper.step(1); 
  }
  else{ 
    digitalWrite(8,LOW);
    digitalWrite(9,LOW);
    digitalWrite(10,LOW);
    digitalWrite(11,LOW);
    
  }

  delay(1000); 
  
  
  
  
  
  
  
  
  
  
}
  delay(1000);

Nimm das delay() raus, das erschwert Dir nur die Arbeit beim Debuggen, da Du immer eine Sekunde auf jeden Step warten musst. Dein Motor macht eine hundertstel Umdrehung pro Sekunden, Du wirst also mit dem delay() kaum eine Aktivität registrieren, selbst wenn sie stattfindet.

immer noch das gleiche verhalten

Dann vereinfachen wir mal radikal:

#include <Stepper.h>

Stepper stepper(100, 8, 9, 10, 11);


void setup(){
    stepper.setSpeed(1);
  
}

void loop(){
  stepper.step(1);
}

Dreht sich der Motor mit diesem Sketch?

Eine Frage. Die Pins 8,9,10 und 11 sind ja die Anschlüsse für den Stepper.
Ich verstehe, das der Stepper einen Schritt machen soll. Aber warum setzt Du die Pins 8,9,10 und 11 in jedem anderen Fall auf LOW? Damit pfuscht Du im schlimmsten Fall der Stepper-Lib ins Handwerk.
Also, welchen Sinn hat der else-Zweig in deinem if-Konstrukt?

Ansonsten schliesse ich mich erstmal "pylon" an. Funktioniert denn der Stepper überhaupt wie gewünscht?

Ja der Sketch von pylon funktioniert..

Ich muss die ausgänge auf low setzen damit ich den schrittmotor abschalten kann, da er sonst heiß wird.

Dann haben wir hier Testcode für den Taster. Funktioniert dieser auch?

void setup() {
  Serial.begin(9600);
}


void loop() {
  if (digitalRead(4) == HIGH) {
    Serial.println("Taster gedrückt");
  }
}

Der Sketch von pylon gilt für einen Pulldown-Widerstand und den Taster zwischen Eingang und +5V.
Wenn Du einen Pullup-Widerstand oder den internen Pullup verwendest dann ist folgender Sketch richtig.
Grüße Uwe

void setup() {
  Serial.begin(9600);
}

void loop() {
  if (digitalRead(4) == LOW) {
    Serial.println("Taster gedrückt");
  }
}

Das lustige ist bei beiden Sketches gibt er permanent "Taster gedrückt" aus, egal ob der Taster betätigt wurde oder nicht.

pinMode (4, INPUT); konnte ich noch nicht entdecken... :wink:

Dann stimmt etwas mit Deiner IDE nicht, denn das heisst, dass LOW==HIGH ist bei Dir. Kannst Du das nochmals überprüfen mit den zwei Sketches und wenn es wirklich so ist, dass er in beiden Sketches permanent "Taster gedrückt" auf die Serielle Schnittstelle schreibt, würde ich dringend zu einer Neuinstallation der IDE raten.

Die andere Möglichkeit wäre ein Floating Pin gewesen (also beim Taster weder Pull-Up noch Pull-Down installiert), aber dann hätte zumindest bei einem der Sketche durch Drücken des Tasters ein Zustandswechsel eintreten müssen.

konnte ich noch nicht entdecken...

Alle GPIO sind beim ATmega per Default auf Eingang geschaltet, der pinMode() ist also nicht zwingend.

Also ein Pull Down Widerstand ist definitiv verbaut, der auch funktioniert.

vielleicht doch ein Fehler in der Beschaltung? Hast du mal ein Foto der Schaltung?

Also das rote Kabel links vom Taster ist Plus.
Der Widerstand rechts davon geht auf Ground.
und das gelbe Kabel geht auf Pin 4.

stock95:
Also das rote Kabel links vom Taster ist Plus.
Der Widerstand rechts davon geht auf Ground.
und das gelbe Kabel geht auf Pin 4.

[seufz]Schön, daß mal einer nicht ein Gpixel großes Bild hochläd. [/seufz]
stock95 bitte ein bißchen größeres Bild und auch einen Größeren Ausschnitt, so etwa 800 mal 600 px.
Danke, Grüße Uwe