ZXB DC/Stepping Motor Controller V3.0

 


Features:

Power and Jumpers:

Motor Controlling:

DC Motor:

Stepping Motor:

RS232 or TTL Signal:

LED Indicator:

UART Commands Format:

Set DC Motor Status Command Format:

Query DC Motor Status Command Format:

Set Stepping Motor Status Command Format:

Query Stepping Motor Status Command Format:

Query Firmware Version:

Contact Information:

 


Features:

MCU ARM7 LPC2103 running at 60MHz.

7V~12V input for controller, 3V~42V input for motor.

Support either 3 pairs of 2 channels (total 6 channels) DC motors or 4 channels of stepping motor.

Communicate via R232 or TTL UART signal, support 5 baud rate.

Two LED indicators.

Size: 88mm x 68mm x37mm

Picture 1, ZXB Controller V2.0

 


Power and Jumpers:

Battery input voltage is between 7V – 12V.

Motor input voltage is 3V~42V.

 

||Caution||:

For battery power input:

Input voltage can not exceed 12V, please measure voltage before put onto board.

Input voltage exceed 12V will damage component.

 

DC motor/Stepping motor input voltage support up to 42V, max current support up to 2A for each group.

Pictures below give the positions of power input/output and position of jumpers.

Picture 2: Board Overview


Motor Controlling:

The board controls either DC motors or Stepping motors.

The controlling mode will be auto switched depending on controlling command.

DC Motor:

The board supports DC motor input voltage up to 42v and total current up to 2A for each group.

The board supports 3 pairs of 2 channels (total 6 channels) DC motors with 31 stages of speed.

The three pairs of motors are pair A: {A1+/A1- | B1+/B1-}, pair B: {A2+/A2- | B2+/B2-}, and pair C: {A3+/A3- | B3+/B3-}.

[A1+/A1-] for motor 0, [B1+/B1-] for motor 1, [A2+/A2-] for motor 2, [B2+/B2-] for motor 3, [A3+/A3-] for motor 4, [B3+/B3-] for motor 5

 

||Caution||:

Even set 6 DC motors while same speed value, the output voltages may be slightly different. Speed calibration between motors is suggested to be done.

 

SetDC Motor Status Command Format:

“$[Motor number: (0-5)]D[Direction: ( 0 – 2) ]P[Speed: (0 - 30)]T[Time:(0-9999)]\n”

[Motor number: (0-5)]T[Time:(0-9999)]:

0 -> A1+/A1-

1 -> B1+/B1-

2 -> A2+/A2-

3 -> B2+/B2-

4 -> A3+/A3-

5 -> B3+/B3-

 

[Direction: (0 – 2)]:

0 -> forward

1 -> backward

2 -> brake

 

[Speed: (0 - 30)]:

0 -> stop

15-> half speed

30 -> full speed

 

[Time: (0 - 9999)]:

0 -> Stop

....

1000 --> 1 loops

....

9999 --> Keep Going

After T cycles, DC motor will stop moving.

 

For example, set motor 0 and motor 2 forward at speed 8 with 500 cycles,

“$0D0P8$2D0P8T500\n”

 

Set motor 0 and motor 1 backward at speed 12, and set motor 2 and motor 3 forward at speed 15 with 100 cycles.

“$0D1P12$1D1P12$2D0P15$3D0P15T100\n”

 

Set the motors brake:

“$0D2$1D2$2D2$3D2\n”

 

QueryDC Motor Status Command Format:

“Q$[Motor number (0-5)]\n”

 

[Motor number: (0-5)]:

0 -> A1+/A1-

1 -> B1+/B1-

2 -> A2+/A2-

3 -> B2+/B2-

4 -> A3+/A3-

5 -> B3+/B3-

 

 

For example to query DC motor 0, 1, 2 and3’s status:

“Q$0$1$2$3\n”

 

Return command is same format as “SetDC motor status”.

For example: “$0D1P12$1D1P12$2D0P15$3D0P15\n”. It means motor 0 and motor 1 is moving backward at speed 12, motor 2 and motor 3 is moving forward at speed 15.

 

Stepping Motor:

 

The board supports stepping motor input voltage up to 42v and each motor up-to 2A.

 

The board supports 3 channels of stepping motor with 3 moving modes.

The moving modes are:

Half-step working at command starts with “%”.

Full-step single-phase working at command starts with “^”.

Full-step two-phase working at command starts with “&”.

Two motors have to move as same mode.

Each time change moving mode, two motors will come to a reset position.

 

[A1+/A1- | B1+/B1-] is for motor 0, [A2+/A2- | B2+/B2-] is for motor 1, [A3+/A3- | B3+/B3-] is for motor 2.

.

 

Set Stepping Motor Status Command Format:

“[Moving mode][Motor number: (0-2)]D[Direction: ( 0 – 3) ]S[Speed: (0 - 999)]P[Step number: (0 - 9999)]\n”

 

[Moving mode]:

“%” -> Half-step

“^” -> Full-step single-phase

“&” -> Full-step two-phase

 

[Motor number: (0-2)]:

0-> motor 0 [A1+/A1- | B1+/B1-]

1-> motor 1 [A2+/A2- | B2+/B2-]

2-> motor 2 [A3+/A3- | B3+/B3-]

 

 

[Direction: (0 – 3) ]:

0 -> forward

1 -> backward

2 -> brake

3 -> free

 

[Speed: (0 - 999)]:

The value indicate motor move to next step in how many pulses. Lower value means higher speed.

 

The number value can not be out of motor limitation. If the number is too small for motor, motor will be shaking without moving. The moving speed can not over motor capability.

 

0 -> one step every 1 pulse.

9 -> one step every 10 pulses,

999 -> one step every 1000 pulses.

 

[Step number: (0 - 9999)]:

It indicates the number of steps motor is going to take. After that, motor will stop.

Value 9999 will make motor keeping moving.

0 -> motor will stop immediately.

1 -> change 1 step, motor will stop after that 1 step.

1000 -> change 1000 steps, motor will stop after 1000 steps.

9998 -> change 9998 steps, motor will stop after 9998 steps.

9999 -> keep moving without stop

 

For example, let motors moving as Half-step mode, motor 0 forward 1000 steps at speed 80, motor 1 backward 2000 steps at speed 40.

“%0D0S80P1000%1D1S40P2000\n”

 

Let motors moving as Full-step single-phase mode, motor 0 keep moving forward at speed 100, motor 1 keep moving backward at speed 100.

“^0D0S100P9999^1D1S100P9999\n”

 

Let motors moving as Full-step two-phase, motor 0 keep moving forward at speed 100, motor 1 keep moving backward at speed 100.

“&0D0S100P9999&1D1S100P9999\n”

 

In Full-step two-phase mode, set motors brake.

“&0D2&1D2\n”

 

Query Stepping Motor Status Command Format:

“Q%[Motor number (0-2)]\n”

 

[Motor number: (0-2)]:

0-> motor 0 [A1+/A1- | B1+/B1-]

1-> motor 1 [A2+/A2- | B2+/B2-]

2-> motor 1 [A3+/A3- | B3+/B3-]

 

 

For example, to query stepping motor 0’s current status:

“Q%0\n”

 

Return command is same format as “Set Stepping Motor Status”.

 

For example, “&0D0S100P9999\n”, It means motor moving mode is Full-step two-phase, motor 0 is moving forward at speed 100 and keep moving.

 

Return command “^0 D0S100P100\n” means motor moving mode is Full-step single-phase, motor 0 is moving forward at speed 100 and will stop after 100 steps.

 

Return command “^0 D0S100P0\n” means motor moving mode is Full-step single-phase, motor 0 is moving forward at speed 100 and it already finished its steps and stopped.

RS232 or TTL Signal:

 

MCU communicate with external device RS232 or TTL UART signal.

Jumper pins RX/TX/GND is the interface for TTL UART signal.

Support 5 baud rate: 4800,9600,19200,38400 and 115200

 

Picture 3: UART rate 4800

Picture 4: UART rate 9600.

Picture 5: UART rate 19200

 

 

Picture 6: UART rate 38400

Picture 7: UART rate 115200

LED Indicator:

 

There is two LED indicators on board.

When controller received any UART command, LED will flash quickly.

While board work in step motor or DC motor mode, different LED is flashing.


UART Commands Format:

 

While board power up it will send out “SmallFish-Dev” via RS232 or TTL to external device.

The details of command format are explained in earlier, user can refer to those chapters.

 

SetDC Motor Status Command Format:

“$[Motor number: (0-5)]D[Direction: (0 – 2)]P[Speed: (0 - 30)]T[Time:(0-9999)]\n”

For example, to let motor 0 and motor 1 move backward at speed 12, and motor 2 and motor 3 move forward at speed 15 with 100 cycles.

“$0D1P12$1D1P12$2D0P15$3D0P15T100\n”

 

QueryDC Motor Status Command Format:

“Q$[Motor number (0-5)]\n”

For example, query DC motor 0,1,2 and3’s current status:

“Q$0$1$2$3\n”

 

Set Stepping Motor Status Command Format:

“[Moving mode][Motor number: (0-2)]D[Direction: ( 0 – 2) ]S[Speed: (0 - 999)]P[Step number: (0 - 9999)]\n”

For example, let motors moving as Half-step mode, motor 0 move forward 1000 steps at speed 80, motor 1 move backward 2000 steps at speed 40.

“%0D0S80P1000%1D1S40P2000\n”

 

Query Stepping Motor Status Command Format:

“Q%[Motor number (0-2)]\n”

For example, query stepping motor 0’s current status:

“Q%0\n”

 

Query Firmware Version:

“Q:\n”


Contact Information:

 

www.taobao.com Seller: hao_de_hen

QQ China: QQ: 8330605

QQ China Email: 8330605@qq.com

Technical Support: Tonald DL

Website: http://www.SmallFish-Dev.com

 

Software Download:

The English PDF version can be downladed here.

The Chinese PDF version can be downloaded here.

The PC side MDD Controller Mini Tester can be used to test with MDD WIT1.

The Console Application can be downloaded here.

Microsoft .NET Framework 3.5 is needed to run the SFMDDConsole.exe.