MoveTank()
Purpose
Easily implement a Tank style drive for a mobile robot.
When to use
If you have a Tank styled drive system configuration, where a signal controls right side motors another one controls controls left side motors.
Where to use
In the void loop()
part of your .ino
file, since it’s a one time calculation that needs to be re-executed at short intervals.
This function requires the use of the following functions at some point of your .ino
file in order to work properly:
Returns
This function does not return a value once it has completed its tasks.
Main prototype and parameters
static void CrcLib::MoveTank(int8_t leftChannel, int8_t rightChannel, unsigned char frontLeftMotor, unsigned char backLeftMotor, unsigned char frontRightMotor, unsigned char backRightMotor)
The following parameters must be passed to the function for it to work properly:
leftChannel
: The speed value used to control the left drive motor. Must be of the typeint8_t
(also calledsigned char
), so ranging[-128, 127]
.rightChannel
: The speed value used to control the right drive motor. Must be of the typeint8_t
(also calledsigned char
), so ranging[-128, 127]
.frontLeftMotor
: The name of the PWM pin to which is connected the front left motor. Must be of the typeunsigned char
.backLeftMotor
:The name of the PWM pin to which is connected the back left motor. Must be of the typeunsigned char
.frontRightMotor
: The name of the PWM pin to which is connected the front right motor. Must be of the typeunsigned char
.backRightMotor:
The name of the PWM pin to which is connected the back right motor. Must be of the typeunsigned char
.
Overloads
#1: Using only one motor per side
static void CrcLib::MoveTank(int8_t leftChannel, int8_t rightChannel, unsigned char leftMotor, unsigned char rightMotor)
The following parameters must be passed to the function for it to work properly:
leftChannel
: The speed value used to control the left drive motor. Must be of the typeint8_t
(also calledsigned char
), so ranging[-128, 127]
.rightChannel
: The speed value used to control the right drive motor. Must be of the typeint8_t
(also calledsigned char
), so ranging[-128, 127]
.leftMotor
:The name of the PWM pin to which is connected the left motor. Must be of the typeunsigned char
.rightMotor
: The name of the PWM pin to which is connected the right motor. Must be of the typeunsigned char
.
#2: Directly using remote controller joystick values, with 2 motors per side
static void CrcLib::MoveTank(ANALOG leftChannel, ANALOG rightChannel, unsigned char frontLeftMotor, unsigned char backLeftMotor, unsigned char frontRightMotor, unsigned char backRightMotor)
The following parameters must be passed to the function for it to work properly:
leftChannel
: The remote controller joystick channel used to control the left drive motors. Must be of the typeANALOG
.rightChannel
:The remote controller joystick channel used to control the right drive motors. Must be of the typeANALOG
.frontLeftMotor
: The name of the PWM pin to which is connected the front left motor. Must be of the typeunsigned char
.backLeftMotor
:The name of the PWM pin to which is connected the back left motor. Must be of the typeunsigned char
.frontRightMotor
: The name of the PWM pin to which is connected the front right motor. Must be of the typeunsigned char
.backRightMotor
:The name of the PWM pin to which is connected the back right motor. Must be of the typeunsigned char
.
#3: Directly using remote controller joystick values, with only 1 motor per side
static void CrcLib::MoveTank(ANALOG leftChannel, ANALOG rightChannel, unsigned char leftMotor, unsigned char rightMotor)
The following parameters must be passed to the function for it to work properly:
leftChannel
: The remote controller joystick channel used to control the left drive motor. Must be of the typeANALOG
.rightChannel:
The remote controller joystick channel used to control the right drive motor. Must be of the typeANALOG
.leftMotor
:The name of the PWM pin to which is connected the left motor. Must be of the typeunsigned char
.rightMotor
: The name of the PWM pin to which is connected the right motor. Must be of the typeunsigned char
.
Examples
More on this function
There is sadly nothing more to be said about this function…