User Manual
MCP Series
Brushed DC Motor Controllers
MCP Series User Manual
98
46 - Buffered Drive M1 / M2 With Signed Speed, Accel And Distance
Drive M1 and M2 with a speed, acceleration and distance value. The sign indicates which
direction the motor will run. The acceleration and distance values are not signed. This command
is used to control both motors top speed, total distanced traveled and at what incremental
acceleration value to use until the top speed is reached. Each motor channel M1 and M2 have
separate buffers. This command will execute immediately if no other command for that channel
is executing, otherwise the command will be buffered in the order it was sent. Any buffered
or executing command can be stopped when a new command is issued by setting the Buffer
argument. All values used are in quad pulses per second.
Send: [Address, 46, Accel(4 Bytes), SpeedM1(4 Bytes), DistanceM1(4 Bytes),
SpeedM2(4 bytes), DistanceM2(4 Bytes), Buffer, CRC(2 bytes)]
Receive: [0xFF]
The Buffer argument can be set to a 1 or 0. If a value of 0 is used the command will be buffered
and executed in the order sent. If a value of 1 is used the current running command is stopped,
any other commands in the buffer are deleted and the new command is executed.
47 - Read Buffer Length
Read both motor M1 and M2 buffer lengths. This command can be used to determine how many
commands are waiting to execute.
Send: [Address, 47]
Receive: [BufferM1, BufferM2, CRC(2 bytes)]
The return values represent how many commands per buffer are waiting to be executed. The
maximum buffer size per motor is 64 commands(0x3F). A return value of 0x80(128) indicates
the buffer is empty. A return value of 0 indiciates the last command sent is executing. A value of
0x80 indicates the last command buffered has nished.
50 - Drive M1 / M2 With Signed Speed And Individual Acceleration
Drive M1 and M2 in the same command using one value for acceleration and two signed speed
values for each motor. The sign indicates which direction the motor will run. The acceleration
value is not signed. The motors are sync during acceleration. This command is used to drive
the motor by quad pulses per second and using an acceleration value for ramping. Different
quadrature encoders will have different rates at which they generate the incoming pulses. The
values used will differ from one encoder to another. Once a value is sent the motor will begin to
accelerate incrementally until the rate dened is reached.
Send: [Address, 50, AccelM1(4 Bytes), SpeedM1(4 Bytes), AccelM2(4 Bytes),
SpeedM2(4 Bytes), CRC(2 bytes)]
Receive: [0xFF]
The acceleration is measured in speed increase per second. An acceleration value of 12,000
QPPS with a speed of 12,000 QPPS would accelerate a motor from 0 to 12,000 QPPS in 1 second.
Another example would be an acceleration value of 24,000 QPPS and a speed value of 12,000
QPPS would accelerate the motor to 12,000 QPPS in 0.5 seconds.