Programming

Example Code:

@TeleOp
public class MotorExample extends LinearOpMode {

    DcMotor motor;

    @Override
    public void runOpMode() {

        motor = hardwareMap.get(DcMotor.class, "motor");

        // Wait for the game to start (driver presses PLAY)
        waitForStart();

        // run until the end of the match (driver presses STOP)
        while (opModeIsActive()) {
            motor.setPower(gamepad1.left_stick_y);
        }
    }
}

Right after your class you need to initialize your motor using DcMotor motorName Then after runOpMode you need to to use hardware map to set the motor's name.

Methods:

You can use any of these lines of code in your program to control your DcMotor.

setPower()

sets the speed of the motor you can use any double value between -1 and 1.

setPower(power);

setDirection()

To reverse the direction of your motor use setDirection(). There are two options. DcMotor.Direction.FORWARD or DcMotor.Direction.REVERSE

setDirection(direction);

setZeroPowerBehavior()

setZeroPowerBehavior() has two options DcMotor.ZeroPowerBehavior.BRAKE and DcMotor.ZeroPowerBehavior.FLOAT This tells the motor what to do when you set the power to 0.

setZeroPowerBehavior(zeroPowerBehavior);

getCurrentPosition()

Gets the current position of the motor.

getCurrentPosition();

setTargetPosition()

Sets a target position that the motor will try to go to. Also see Run to Position Example

setTargetPosition(position);

setMode()

Sets the mode of the motor. There are four modes that you can set the motor to.

These modes will NOT turn on and off the encoder. The encoder will remain on the whole time you are using the motor. RUN_USING_ENCODER uses the encoder to keep the speed of the motor constant.

DcMotor.RunMode.RUN_WITHOUT_ENCODER

DcMotor.RunMode.RUN_USING_ENCODER

Turns towards the target position (setTargetPosition()) see Run to Position Example

DcMotor.RunMode.RUN_TO_POSITION

Stops the motor and resets the encoder

DcMotor.RunMode.STOP_AND_RESET_ENCODER

setMode(mode);

isBusy()

Checks if the motor is still running to it's target positions.

isBusy();

Last updated

Was this helpful?