Hi guys,
For my project i have to push a button once to activate a stepper motor. If the button is pushed the stepper motor have to spin for around 5-10 seconds. Now i achieved that if i push the button the stepper spins and doesn't stop anymore. Can somebody help me to get the stepper motor to stop after 5-10 seconds. This is the code i have for now
int bluepin = 4;
int pinkpin = 5;
int yellowpin = 6;
int orangepin = 7;
int bluepin2 = 8;
int pinkpin2 = 9;
int yellowpin2 = 10;
int orangepin2 = 11;
int currentStep = 0;
int buttonpin = 2;
int buttonState = 0;
int buttonpin2 = 3;
int x = -1 ;
void setup() {
// put your setup code here, to run once:
pinMode (bluepin, OUTPUT);
pinMode (pinkpin, OUTPUT);
pinMode (yellowpin, OUTPUT);
pinMode (orangepin, OUTPUT);
pinMode(buttonpin, INPUT);
digitalWrite(bluepin, LOW);
digitalWrite(pinkpin, LOW);
digitalWrite(yellowpin, LOW);
digitalWrite(orangepin, LOW);
pinMode (bluepin2, OUTPUT);
pinMode (pinkpin2, OUTPUT);
pinMode (yellowpin2, OUTPUT);
pinMode (orangepin2, OUTPUT);
pinMode(buttonpin2, INPUT);
digitalWrite(bluepin2, LOW);
digitalWrite(pinkpin2, LOW);
digitalWrite(yellowpin2, LOW);
digitalWrite(orangepin2, LOW);
Serial.begin(9600);
}
void loop() {
buttonState = digitalRead(buttonpin);
if ((buttonState == HIGH) && (x < 0)) {
x = --x;
}
if ( x > 0) {
// turn Motor on:
switch (currentStep) {
case 0:
digitalWrite(bluepin, HIGH);
digitalWrite(pinkpin, LOW);
digitalWrite(yellowpin, LOW);
digitalWrite(orangepin, LOW);
break;
case 1:
digitalWrite(bluepin, LOW);
digitalWrite(pinkpin, HIGH);
digitalWrite(yellowpin, LOW);
digitalWrite(orangepin, LOW);
break;
case 2:
digitalWrite(bluepin, LOW);
digitalWrite(pinkpin, LOW);
digitalWrite(yellowpin, HIGH);
digitalWrite(orangepin, LOW);
break;
case 3:
digitalWrite(bluepin, LOW);
digitalWrite(pinkpin, LOW);
digitalWrite(yellowpin, LOW);
digitalWrite(orangepin, HIGH);
break;
}
currentStep = (++currentStep < 4) ? currentStep : 0;
delay(2);
}
}