Stepmotor mit infrarot lichtschranke

wie kann ich mein code so umändern dass mein schrittmotor erst dann anfängt zum drehen wenn in meine lichtschranke licht abgebrochen wird und dann soll es so viele schritte machen und dann nach 10sek zurück #include <Stepper.h>

const int stepsPerRevolution = 32;

Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);

unsigned long previousMillis = 0;
const long interval = 1000;
bool motorActive = false;
bool motorReturning = false;

void setup() {

pinMode(A0, INPUT);

Serial.begin(9600);
}

void loop() {

myStepper.setSpeed(900);

int sensorValue = digitalRead(A0);
unsigned long currentMillis = millis();

Serial.print("A0 state: ");
Serial.println(sensorValue);
delay(500);
if (sensorValue == LOW && !motorActive && !motorReturning) {
myStepper.step(2048);
previousMillis = currentMillis;
motorActive = true;
}

if (motorActive && (currentMillis - previousMillis >= interval)) {
myStepper.step(-2048);
motorActive = false;
motorReturning = true;
}
}

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

1 Like

Behandeln Sie den Lichtstrahl wie einen Knopf. HIGH, wenn NICHT gedrückt. LOW beim Drücken.

byte lichtstrahl = 2;

void setup() {
  pinMode(lichtstrahl, INPUT_PULLUP);

  while (!digitalRead(lictstrahl)); // nichts tun, bis LOW
}

Fahren Sie mit Ihrer Stepper-Sequenz fort.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.