ZXB DC/Stepping Motor Controller V2.1

 

Features:

Power and Jumpers:

Motor Controlling:

DC Motor:

Stepping Motor:

RS232 UART or TTL UART 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:

LPC2103 running at 60MHz.

7V~12V input for controller.

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

Up to 36V input and 30A for each group of DC/Stepping motor.

Communicate via R232 UART or TTL UART signal.

Two LED indicators.

Size: 101mm x 64mm x 23mm

 


Power and Jumpers:

Controller can by powered by Battery or USB.

Battery input voltage is between 7V – 12V.

 

||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 36V, max current support up to 30A for each group.

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

Picture 1: Board Overview


Motor Controlling:

DC motor/Stepping motor input voltage up to 36V and current up to 30A for each group.

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 36v and total current up to 30A for each group.

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

The 3 pairs of motors from left to right are:

A: {A1+/A1- | B1+/B1-}

B: {A2+/A2- | B2+/B2-}.

C: {A3+/A3- | B3+/B3-}.

 

||Caution||:

Even set four DC motors while same speed value, the output voltages of 6 motors 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[Step number: (0 - 9999)]\n”

[Motor number: (0-5)]:

0 -> A1+/A1-

1 -> B1+/B1-

2 -> A2+/A2-

3 -> B2+/B2-

4 -> A3+/A3-

5 -> B3+/B3-

 

 

[Direction: (0 – 3) ]:

0 -> forward

1 -> backward

2 -> brake

3->free

 

[Speed: (0 - 30)]:

0 -> stop

15-> half speed

30 -> full speed

 

[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. Current frequency is 500Hz.

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, set motor 0 and motor 2 forward at speed 8,

“$0D0P8$2D0P8\n”

 

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

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

 

Set the motors brake:

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

 

QueryDC Motor Status Command Format:

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

 

[Motor number: (0-3)]:

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 36v and each motor up-to 30A.

 

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-] à0,

[A2+/A2- | B2+/B2-] à1,

[A3+/A3- | B3+/B3-] à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 1 [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.

 

Current pulse frequency is 1kHz.

 

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 UART or TTL UART Signal:

MCU communicate with external device RS232 UART or TTL UART signal.

DB9 is the interface for RS232 UART signal.

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

 

There are four baud rates supported. They are 4800, 9600, 19200,38400 and 115200;

Picture 2: UART rate 4800.

Picture 3: UART rate 9600.

Picture 4: UART rate 19200.

Picture 5: UART rate 38400.

Picture 6: UART rate 115200.


LED Indicator:

There is two LED indicator on board.

When controller received any UART command, LED will flash quickly. After that, if there is no UART command come in, LED will on and off at low speed.

 


UART Commands Format:

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

In working status, it supports SDC Motor/Stepping Motor Controlling and Status Query.

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 – 3) ]P[Speed: (0 - 30)] T[Step number: (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.

“$0D1P12$1D1P12$2D0P15$3D0P15\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 – 3) ]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 Console Application can be downloaded here.

The USB Driver for USB Controller can be find in http://www.ftdichip.com/Drivers/VCP.htm.

The file also can be download from here.

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