I am making an elevator and the stepper motor is just vibrating when I push the button and it doesn't turn. It used to work, but it suddenly stopped working. What should I do to fix it?
Here lots of info on how to get help solving your stepper problem.
After that, check your wiring, code and power supply, and replace any parts that have released their magic smoke. If that still doesn't work, try following the instructions in the link I just gave.
The link that you provided didn't give any help. I need a way to speed up the stepper motor by changing the code or using a different materials.
/*
*/
int Pin1 = 10;//IN1 is connected to 10
int Pin2 = 11;//IN2 is connected to 11
int Pin3 = 12;//IN3 is connected to 12
int Pin4 = 13;//IN4 is connected to 13
int switchCW =2;//define input pin for CW push button
int switchStop=3;//define input pin for Stop push button
int switchCCW =4;//define input pin for CCW push button
int pole1[] ={0,0,0,0, 0,1,1,1, 0};//pole 1, 8 step values
int pole2[] ={0,0,0,1, 1,1,0,0, 0};//pole2, 8 step values
int pole3[] ={0,1,1,1, 0,0,0,0, 0};//pole3, 8 step values
int pole4[] ={1,1,0,0, 0,0,0,1, 0};//pole4, 8 step values
int poleStep = 0;
int dirStatus = 3;// stores direction status 3= stop (do not change)
void setup()
{
pinMode(Pin1, OUTPUT);//define pin for ULN2003 in1
pinMode(Pin2, OUTPUT);//define pin for ULN2003 in2
pinMode(Pin3, OUTPUT);//define pin for ULN2003 in3
pinMode(Pin4, OUTPUT);//define pin for ULN2003 in4
pinMode(switchCW,INPUT_PULLUP);// CW push button pin as input
pinMode(switchStop,INPUT_PULLUP);//Stop push button pin as input
pinMode(switchCCW,INPUT_PULLUP);//CCW push button pin as input
}
void loop()
{
if(digitalRead(switchCCW) == LOW)
{
dirStatus =1;
}else if(digitalRead(switchCW) == LOW)
{
dirStatus = 2;
}else if(digitalRead(switchStop) == LOW)
{
dirStatus =3;
}
if(dirStatus ==1){
poleStep++;
driveStepper(poleStep);
}else if(dirStatus ==2){
poleStep--;
driveStepper(poleStep);
}else{
driveStepper(10);
}
if(poleStep>100){
poleStep=0;
}
if(poleStep<0){
poleStep=100;
}
delay(1);
}// loop
/*
* @brief sends signal to the motor
* @param "c" is integer representing the pol of motor
* @return does not return anything
*
*/
void driveStepper(int c)
{
digitalWrite(Pin1, pole1[c]);
digitalWrite(Pin2, pole2[c]);
digitalWrite(Pin3, pole3[c]);
digitalWrite(Pin4, pole4[c]);
}//driveStepper end here
In the light of this:
spencerkim:
the stepper motor .... used to work, but it suddenly stopped working.
...this:
spencerkim:
I need a way to speed up the stepper motor by changing the code or using a different materials.
... makes no sense.
The second comment is the sort of thing you would say if it was working, bit not correctly. First comment says it's not working
And it's not clear (to me) what this:
spencerkim:
I need a way to speed up the stepper motor by .... using a different materials.
... means.
spencerkim:
The link that you provided didn't give any help.
It can help you get help. If you provide the information suggested. Which you didn't. So we can't offer help.
spencerkim:
It used to work, but it suddenly stopped working.
Then something must have changed.
What did you do to it?
Hi,
If you have tried to speed up the stepper and now it doesn't turn, go back to old code where the stepper rotated and check that it did.
OR
When you wrote your code, properly, you must have at some stage written code that JUST runs your stepper, try it.
If you don't have such a code, how did you develop your code?
Tom.... ![]()