ARDUINO MEGA Functions Motors and Servos

Revision as of 14:33, 10 May 2012 by Tfriez (Talk | contribs)

Jump to: navigation, search
ARDUINOFunctions and Variables → ARDUINO MEGA Functions Motors and Servos

The Arduino MEGA has 12 ports available for PWM generation.

Hardware Timing Servo Ports - Pin 2, 3, 5, 6, 7, 8, 11, 12 and 13. Hardware Timing PWM (H-Bridge Friendly) Ports - Pin 4, 9, 10.

Users can use the "Motors and Sensor Setup" utility (found under the Robot menu) to configure their ports for the various types of motors: ArduinoMegaMotorsSensorsSetup.png

Color Key


bool bMotorReflected
(bool) Boolean array with one entry for each motor. Indicates that the direction of a motor should be reflected 180 degrees. Useful when mechanical design results in a logical "reversed" condition of a motor.
bMotorReflected[motor_2] = true;   // motor 1 WILL be reflected 180 degrees
bMotorReflected[motor_2] = false;  // motor 1 will NOT be reflected 180 degrees


int motor[tMotor motor]
(int) An array variable with one element for each of the possible motors.

When used with a motor, this command is used to set the speed (-127 to +127) for a motor. Negative values are reverse; positive forward. Zero is stopped.

When used with a servo, this command is used to set the position (-127 to +127) of the servo. Zero is the "center" position of the servo, and -127 to +127 is the range of the servo. Note that your servo may not be able to travel the full -127 to +127 range, so please experiment with smaller values to avoid breaking your servo.

Parameter Explanation Data Type
motor A motor port or name tMotor
motor[motor_2] = 127;   // motor pin 2 is given a power level of 127 (forward)
motor[motor_2] = -127;  // motor pin 2 is given a power level of -127 (reverse)