|
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. |
1.8.9.1