Hi,
something does not work - pls help. I want to run 10 stepper motors and control them with photoelectric sensor. So I have 10 sensors (one for each stepper motor) and want to stop a stepper motor (entirely not just as long as the sensor is HIGH) as soon as the photoelectric sensor gets a HIGH signal. then the stepper motor has to stop.
it seems the loop is too slow to make the stepper move? or do I miss something else? when I use this code the stepper does not move. sensor does give me a HIGH signal in the monitor.
so please give me some advice. thanks!!
#include <AccelStepper.h>
// pins definition
#define sensor1 40 // pin x
int sensorval1 = 0; // 0 muss bleiben
#define sensor2 41 //pin x
int sensorval2 = 0;
#define sensor3 42 //pin x
int sensorval3 = 0;
#define sensor4 43 //pin x
int sensorval4 = 0;
#define sensor5 44 //pin x
int sensorval5 = 0;
#define sensor6 45 //pin x
int sensorval6 = 0;
#define sensor7 46 //pin x
int sensorval7 = 0;
#define sensor8 47 //pin x
int sensorval8 = 0;
#define sensor9 48 //pin x
int sensorval9 = 0;
#define sensor10 49 //pin x
int sensorval10 = 0;
// Define some steppers and the pins you will use
AccelStepper stepper1(AccelStepper::FULL4WIRE, 1, 2, 3, 4);
AccelStepper stepper2(AccelStepper::FULL4WIRE, 5, 6, 7, 8);
AccelStepper stepper3(AccelStepper::FULL4WIRE, 9, 10, 11, 12);
AccelStepper stepper4(AccelStepper::FULL4WIRE, 13, 14, 15, 16);
AccelStepper stepper5(AccelStepper::FULL4WIRE, 17, 18, 19, 20);
AccelStepper stepper6(AccelStepper::FULL4WIRE, 21, 22, 23, 24);
AccelStepper stepper7(AccelStepper::FULL4WIRE, 25, 26, 27, 28);
AccelStepper stepper8(AccelStepper::FULL4WIRE, 29, 30, 31, 32);
AccelStepper stepper9(AccelStepper::FULL4WIRE, 33, 34, 35, 36);
AccelStepper stepper10(AccelStepper::FULL4WIRE, 37, 38, 39, 40);
void setup()
{
Serial.begin(9600);
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(sensor3, INPUT);
pinMode(sensor4, INPUT);
pinMode(sensor5, INPUT);
pinMode(sensor6, INPUT);
pinMode(sensor7, INPUT);
pinMode(sensor8, INPUT);
pinMode(sensor9, INPUT);
pinMode(sensor10,INPUT);
delay(10);
stepper1.setMaxSpeed(20.0);
stepper1.setAcceleration(100.0);
stepper1.move(1000000);
stepper2.setMaxSpeed(20.0);
stepper2.setAcceleration(100.0);
stepper2.move(1000000);
stepper3.setMaxSpeed(20.0);
stepper3.setAcceleration(100.0);
stepper3.move(1000000);
stepper4.setMaxSpeed(20.0);
stepper4.setAcceleration(100.0);
stepper4.move(1000000);
stepper5.setMaxSpeed(20.0);
stepper5.setAcceleration(100.0);
stepper5.move(1000000);
stepper6.setMaxSpeed(20.0);
stepper6.setAcceleration(100.0);
stepper6.move(1000000);
stepper7.setMaxSpeed(20.0);
stepper7.setAcceleration(100.0);
stepper7.move(1000000);
stepper8.setMaxSpeed(20.0);
stepper8.setAcceleration(100.0);
stepper8.move(1000000);
stepper9.setMaxSpeed(20.0);
stepper9.setAcceleration(100.0);
stepper9.move(1000000);
stepper10.setMaxSpeed(20.0);
stepper10.setAcceleration(100.0);
stepper10.move(1000000);
delay(10);
}
void loop()
{
Serial.println("checkt Sensor Value");
sensorval1 = digitalRead(sensor1);
Serial.print(sensorval1);
Serial.print(" - ");
sensorval2 = digitalRead(sensor2);
Serial.print(sensorval2);
Serial.print(" - ");
sensorval3 = digitalRead(sensor3);
Serial.print(sensorval3);
Serial.print(" - ");
sensorval4 = digitalRead(sensor4);
Serial.print(sensorval4);
Serial.print(" - ");
sensorval5 = digitalRead(sensor5);
Serial.print(sensorval5);
Serial.print(" - ");
sensorval6 = digitalRead(sensor6);
Serial.print(sensorval6);
Serial.print(" - ");
sensorval7 = digitalRead(sensor7);
Serial.print(sensorval7);
Serial.print(" - ");
sensorval8 = digitalRead(sensor8);
Serial.print(sensorval8);
Serial.print(" - ");
sensorval9 = digitalRead(sensor9);
Serial.print(sensorval9);
Serial.print(" - ");
sensorval10 = digitalRead(sensor10);
Serial.print(sensorval10);
Serial.print(" - ");
Serial.println();
stepper1.runSpeed();
Serial.println("Motor läuft");
stepper2.runSpeed();
stepper3.runSpeed();
stepper4.runSpeed();
stepper5.runSpeed();
stepper6.runSpeed();
stepper7.runSpeed();
stepper8.runSpeed();
stepper9.runSpeed();
stepper10.runSpeed();
delay(10);
beginning:
sensorval1 = digitalRead(sensor1);
if (sensorval1 == 1 ) {
Serial.println("Sensor1 HIGH");
stepper1.stop();
goto next;
}
next:
sensorval2 = digitalRead(sensor2);
if (sensorval2 == 1 ) {
Serial.println("Sensor2 HIGH");
stepper2.stop();
goto next2;
}
next2:
sensorval3 = digitalRead(sensor3);
if (sensorval3 == 1 ) {
Serial.println("Sensor3 HIGH");
stepper3.stop();
goto next3;
}
next3:
sensorval4 = digitalRead(sensor4);
if (sensorval4 == 1 ) {
Serial.println("Sensor4 HIGH");
stepper4.stop();
goto next4;
}
next4:
sensorval5 = digitalRead(sensor5);
if (sensorval5 == 1 ) {
Serial.println("Sensor5 HIGH");
stepper5.stop();
goto next5;
}
next5:
sensorval6 = digitalRead(sensor6);
if (sensorval6 == 1 ) {
Serial.println("Sensor6 HIGH");
stepper6.stop();
goto next6;
}
next6:
sensorval7 = digitalRead(sensor7);
if (sensorval7 == 1 ) {
Serial.println("Sensor7 HIGH");
stepper7.stop();
goto next7;
}
next7:
sensorval8 = digitalRead(sensor8);
if (sensorval8 == 1 ) {
Serial.println("Sensor8 HIGH");
stepper8.stop();
goto next8;
}
next8:
sensorval9 = digitalRead(sensor9);
if (sensorval9 == 1 ) {
Serial.println("Sensor9 HIGH");
stepper9.stop();
goto next9;
}
next9:
sensorval10 = digitalRead(sensor10);
if (sensorval10 == 1 ) {
Serial.println("Sensor10 HIGH");
stepper10.stop();
goto beginning;
}
goto beginning;
}