Steppermotor Steuerung Anfängerfrage

Hallo zusammen,

folgendes Projekt habe ich hier:

Ein Steppermotor soll nach Betätigung eines Buttons einmal 100 Steps hinfahren, dann warten und danach zurückfahren auf Startposition.

Beim nächsten Tastendruck das gleiche.

Meine Idee war, den Stepper mit einem einfachen Sketch auszuprobieren und vom Button-Example Teile reinzukopieren um mein Ziel zu erreichen.

Das Problem:
Auf Knopfdruck fährt der Motor fünf mal die Anweisung durch, statt einmal.

Ich bin auf der Suche nach einem Tip für mich als Anfänger.

Das Ziel ist später einmal den Button durch einen Senderimpuls zu ersetzen. Es soll die Basis für eine Fernsteuerungsprojekt werden.

Vielen Dank.

Gruß
Claus

#include <Stepper.h>
#define STEPS 2038 // the number of steps in one revolution of your motor (28BYJ-48)
Stepper stepper(STEPS, 8, 10, 9, 11);

// constants won't change. They're used here to set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the pushbutton pin as an input:
  // pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);
  stepper.setSpeed(0); // nicht losfahren bevor Button gedrückt
  
  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
  stepper.setSpeed(6); // 1 rpm
  stepper.step(100); // fahre hin
  delay(1000); // wait for one second
  stepper.setSpeed(6); // 6 rpm
  stepper.step(-100); // fahre zurück

  stepper.setSpeed(0);   // anhalten bis erneut Knopf gedrückt

  } else {
    // turn LED off:
    //digitalWrite(ledPin, LOW);
    stepper.setSpeed(0);
  }
}

Hallo Wie hast du den Taster angeschlossen ?

Ich denke der wird nicht richtig erkannt

Wenn er nach OVolt schaltet sollte der Befehl pinMode() die Option pullup enthalten. Siehe Hilfe in der Ide

Wenn plus geschaltet wird benötigst du einen zusätzlichen pulldown Widerstand. Heinz

Servus. Danke für die Antwort.

Ich habe den Taster in der Tat einfach von 5V und an Pin2 gehängt.

Was ist die Ide?

Ich bin noch nicht so erfahren mit allem, auch nicht mit Suche und Ko, da ich ja nicht weiss, nach was ich suchen soll.

Pullup habe ich schon gelesen, was sind pulldown Widerstände?

Danke, Claus

Glasreiniger: Was ist die Ide?

IDE = Integrierte Entwicklungsumgebung

Taster am Arduino mit PullDown-Widerständen.

...sorry für die Anfängerfragen!

Danke für die Antwort.

Also ich habe es jetzt so gemacht, wie du vorgeschlagen hast. Ich mir jetzt klargeworden.

Es klappt. Jetzt geht auf Tastendruck der Stepper einmal hin und einmal her.

Super. Das ist schon mal ein Schritt mehr auf dem Weg zum Projekt.

Wenn ich das hier lese: digitalWrite(button, HIGH); // aktiviert den Pull- Up- Widerstand

Ist das das gleiche wie ein physischer Pull up Widerstand?

Vielen Dank für dein Hilfe!

Gruß Claus

Glasreiniger: Wenn ich das hier lese: digitalWrite(button, HIGH); // aktiviert den Pull- Up- Widerstand

Ist das das gleiche wie ein physischer Pull up Widerstand?

Nun ja, physisch ist der auch, nur im µC eingebaut, ca. 50 kOhm. Man kann den auch mit INPUT_PULLUP aktivieren. Ich mache das, weil es mir einen externen Widerstand spart, dreht nur die Logik um, gedrückt ist LOW. Wen das stört, macht

merkerButtonA = !digitalRead(pinButtonA); // Ausrufezeichen beachten

Jetzt solltest Du noch auf die Flanke (das Drücken des Tasters reagieren und nicht auf den Zustand und auch noch entprellen. Siehe https://www.arduino.cc/en/Tutorial/switch

Grüße Uwe

OK. Das werde ich mir einbauen. Vielen Dank auch für eure Hilfe.

Gruß Claus