upm
0.3.2
Sensor/Actuator repository for libmraa (v0.7.2)
|
API for the Grove I2C Motor Driver. More...
This class implements support for the Grove I2C Motor Driver. This device can support a single 4-wire stepper motor, or two 2-wire DC motors. The device contains an Atmel* ATmega8L microcontroller that manages an L298N H-bridge driver chip.
This device supports an I2C bus speed of 100Khz only.
The module does not provide any telemetry or status - it only accepts I2C commands for its various operations.
This module was tested with version 1.3 of the Grove I2C Motor Driver
Public Member Functions | |
GroveMD (int bus=GROVEMD_I2C_BUS, uint8_t address=GROVEMD_DEFAULT_I2C_ADDR) | |
~GroveMD () | |
bool | writePacket (REG_T reg, uint8_t data1, uint8_t data2) |
bool | setMotorSpeeds (uint8_t speedA, uint8_t speedB) |
bool | setPWMFrequencyPrescale (uint8_t freq=0x03) |
bool | setMotorDirections (DC_DIRECTION_T dirA, DC_DIRECTION_T dirB) |
bool | enableStepper (STEP_DIRECTION_T dir, uint8_t speed) |
bool | disableStepper () |
bool | setStepperSteps (uint8_t steps) |
GroveMD | ( | int | bus = GROVEMD_I2C_BUS , |
uint8_t | address = GROVEMD_DEFAULT_I2C_ADDR |
||
) |
GroveMD constructor
bus | I2C bus to use |
address | I2C address to use |
bool writePacket | ( | REG_T | reg, |
uint8_t | data1, | ||
uint8_t | data2 | ||
) |
Composes and writes a 3-byte packet to the controller
reg | Register location |
data1 | First byte of data |
data2 | Second byte of data |
bool setMotorSpeeds | ( | uint8_t | speedA, |
uint8_t | speedB | ||
) |
To control DC motors, sets the speed of motors A & B. Valid values are 0-255.
speedA | Speed of motor A |
speedB | Speed of motor B |
bool setPWMFrequencyPrescale | ( | uint8_t | freq = 0x03 | ) |
To control DC motors, sets the PWM frequency prescale factor. Note: this register is not ducumented other than to say the default value is 0x03. Presumably, this is the timer prescale factor used on the ATMega MCU timer driving the PWM.
freq | PWM prescale frequency; default is 0x03 |
bool setMotorDirections | ( | DC_DIRECTION_T | dirA, |
DC_DIRECTION_T | dirB | ||
) |
To control DC motors, sets the directions of motors A & B
dirA | Direction for motor A, DIR_CW or DIR_CCW |
dirB | Direction for motor B, DIR_CW or DIR_CCW |
bool enableStepper | ( | STEP_DIRECTION_T | dir, |
uint8_t | speed | ||
) |
To control a stepper motor, sets its direction and speed, and then enables it.
dir | Direction, STEP_DIR_CW or STEP_DIR_CCW |
speed | Motor speed. Valid range is 1-255, higher is slower. |
bool disableStepper | ( | ) |
To control a stepper motor, stops the stepper motor.
bool setStepperSteps | ( | uint8_t | steps | ) |
To control a stepper motor, specifies the number of steps to execute. Valid values are 1-255, 255 means continuous rotation.
steps | Number of steps to execute. 255 means continuous rotation. |