Hi All,
I'm using an unidentified, 4-wire stepper motor from an old DVD drive for a new project. I have soldered four wires to the terminals so it can be used with my Arduino.
When I plug one wire into 3.3V on the Arduino and the rest to ground, the motor visibly steps forwards/backwards, indicating it is working correctly.
I wrote the following code to create a pulse train along output pins 8,9,10,11 to test the motor's calibration.
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
digitalWrite(8, HIGH);
delay(50);
digitalWrite(8, LOW);
delay(50);
digitalWrite(9, HIGH);
delay(50);
digitalWrite(9, LOW);
delay(50);
digitalWrite(10, HIGH);
delay(50);
digitalWrite(10, LOW);
delay(50);
digitalWrite(11, HIGH);
delay(50);
digitalWrite(11, LOW);
delay(50);
}
When running it, I can hear the motor clicking but not moving, like it's not getting enough power.
I checked the voltage and the current from pins 8-11 using a multi-meter and they produce more power than the 3.3V/GND combination.
I've tried running pins 8-11 constantly high and manually connecting the wires like before. No movement from the motor.
I've tried every pin combination and pulse pattern I can think of.
In short, the stepper motor will work fine from the 3.3V supply, but not the digital pins, even though they produce sufficient power.
Is there something wrong with my Arduino?
This is driving me insane and any advice would be greatly appreciated.