4 wire, Bipolar Stepper motor with DFrobot 2A motor shield

Hi guys,

Could you help perhaps. Im not a techi or someone who generally does electronic related things anymore, im just playing around with the arduino and elec for the first time in 15 years so don’t really know terminology anymore. the programming comes across as very easy with the tests I have done on servo motors.

Im trying to connect this stepper motor to the DFR motor shield with no luck. Here are the specs and diagram of the motor:

MOTOR STEPPER GEARED 12V 0.15D BIPOLAR GEARED STEPPER MOTOR, RATIO=50, 12V, 20E, 0.15DEGREE, 2400 STEP, 4 WIRE http://www.mantech.co.za/Datasheets/Products/PMGXX.pdf

it makes a noise as if it were trying to turn based on the code but no steppers occur.

I connect my own ac adapter 12V and set the pins to use external power on the shield.

wired it up like this: M1- red M1+ yellow M2- black M2+ white

is this PWM or PLL, ive googled the terms but not sure here as this could affect pin settings on the board. i tried both though :p

Code wise. Ive tried a bunch of different codes. I understand them but cant write them myself just yet.

Thanks!

any help appreciated, code or wiring information. :)

Sounds like you have the wrong step sequence - post your circuit and code and we might be able to work out what's happening. The motor windings seem right according to the document, but you can check with a multimeter to ensure you've identified the windings and they are undamaged.

There are several possible sequences, half-wave, full-wave or half-steps, but its important with all that you you seqence correctly.

hey thanks so much for the reply.

4 wires, black and white create a continuous loop and red and yellow based on the multimetre beep test.

so i wired it up to the dfr 2a motor shield,
black(m-), white(m+) yellow(m2-), red(m2+)

used some basic code and played with the delay. the motor is live, i hear it vibrating.

// start here

int motorPin1 = 5;
int motorPin2 = 6;
int motorPin3 = 7;
int motorPin4 = 8;
int delayTime = 10;

void setup() {
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}

void loop() {
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(delayTime);
}