accelstepper stop steppermotor

Hoi,

hulp gevraagd.

Hoe stop ik de stepper als de led aan gaat?
zo werkt het niet, gezocht maar kom er niet uit.
Is een eenmalige routine die de stepper moet laten stoppen op een vaste plaats

#include <AccelStepper.h>
AccelStepper stepper (1, 4, 5);

#define Led 8

void homing() {
  stepper.setMaxSpeed(500);
  stepper.setSpeed(100);
  while (digitalRead(Led == 0)) {
    stepper.runSpeed();
  }
  stepper.stop();
}

void setup() {
  pinMode(Led, INPUT);
  homing();
}

void loop() {
}

Hoi.

Door hier te kijken, denk ik het volgende:

Wanneer je stepper.runspeed() doet, laat je de stepper bewegen.
Wanneer je geen stepper.runspeed meer doet, zou de motor moeten stoppen.
Maar stepper.stop zou ook de motor onmiddellijk moeten stoppen.

Daarom vraag ik me af of je sketch überhaupt wel een verandering ziet op de ingang genaamd Led.
Want zolang aan de voorwaarde word voldaan, zal de motor blijven bewegen.

Daarom zou ik eens gaan meekijken hoe dat gaat met die digitalRead, bijvoorbeeld door de seriële poort aan te zetten en het resultaat van je Read daar heen te zetten.
Ziet die altijd een nul, of komt er wel een 1 binnen daar ?
Kun je ook die LED handmatig een 1 laten worden, voor het geval dat ding maar enorm kort brandt ?

Voor de duidelijkheid Led staat voor een lichtsluisje.

De status verandert 0 of 1. Ook handmatig met een draadje getest.
Toch wil de stepper niet stoppen, ook niet niet stepper.stop();
Had dat al getest met uitlezen van de serial port

#include <AccelStepper.h>
AccelStepper stepper (1, 4, 5);

#define Led 10

void homing() {
  Serial.begin(9600);
  stepper.setMaxSpeed(500);
  stepper.setSpeed(100);
  while (digitalRead(Led == 1)) {
    stepper.moveTo(1000);
    val = digitalRead(Led);
    Serial.println(val);
  }
  stepper.stop();
}

void setup() {
  pinMode(Led, INPUT);
  homing();
  stepper.stop();
}

void loop() {
}

nee heel logisch toch wel hoor, je zet een paar commandos neer in de setup zoals homing en stepper stop, maar het programma doet dat wel maar slechts 1 keer, je moet in de loop dus een test doen of je er al bent en stepper.run hoort daar ook in, om te kijken of er gestapt moet worden.
als je er bent doe je stepper.stop maar je doel blijft er wel gewoonstaan dus als je dan weer run gaat doen dan gaat het verder.
accelstepper is best groot met veel commandos. dus rtfm ofwel lees

Dank je voor de tip. Ik had wel de instructies van de accelstepper library gelezen maar kennelijk niet goed genoeg.
Deze: AccelStepper: AccelStepper Class Reference

Werkt nu zoals ik wil.

#include <AccelStepper.h>
AccelStepper stepper (1, 4, 5);

#define Led 10
int val = 0;

void homing() {
  stepper.setMaxSpeed(500);
  stepper.setSpeed(200);
  while (digitalRead(Led) == 1) {
    stepper.runSpeed();
  }
}

void setup() {
  pinMode(Led, INPUT);
  homing();
}

void loop() {
}