| 
    upm
    1.3.0
    
   Sensor/Actuator repository for libmraa (v1.7.0) 
   | 
 
API for the PCA9685 16-channel, 12-bit PWM LED Controller. More...
This controller is also used on the Adafruit* Motor Shield v2.3 board to control up to 4 DC motors, 2 stepper motors, and 2 servo motors.
This module was tested with the Adafruit Motor Shield v2.3
Public Types | |
| enum | PCA9685_REG_T {  REG_MODE1 = 0x00, REG_MODE2 = 0x01, REG_I2C_SA1 = 0x02, REG_I2C_SA2 = 0x03, REG_I2C_SA3 = 0x04, REG_ALLCALL = 0x05, REG_LED0_ON_L = 0x06, REG_LED0_ON_H = 0x07, REG_LED0_OFF_L = 0x08, REG_LED0_OFF_H = 0x09, REG_LED1_ON_L = 0x0a, REG_LED1_ON_H = 0x0b, REG_LED1_OFF_L = 0x0c, REG_LED1_OFF_H = 0x0d, REG_LED2_ON_L = 0x0e, REG_LED2_ON_H = 0x0f, REG_LED2_OFF_L = 0x10, REG_LED2_OFF_H = 0x11, REG_LED3_ON_L = 0x12, REG_LED3_ON_H = 0x13, REG_LED3_OFF_L = 0x14, REG_LED3_OFF_H = 0x15, REG_LED4_ON_L = 0x16, REG_LED4_ON_H = 0x17, REG_LED4_OFF_L = 0x18, REG_LED4_OFF_H = 0x19, REG_LED5_ON_L = 0x1a, REG_LED5_ON_H = 0x1b, REG_LED5_OFF_L = 0x1c, REG_LED5_OFF_H = 0x1d, REG_LED6_ON_L = 0x1e, REG_LED6_ON_H = 0x1f, REG_LED6_OFF_L = 0x20, REG_LED6_OFF_H = 0x21, REG_LED7_ON_L = 0x22, REG_LED7_ON_H = 0x23, REG_LED7_OFF_L = 0x24, REG_LED7_OFF_H = 0x25, REG_LED8_ON_L = 0x26, REG_LED8_ON_H = 0x27, REG_LED8_OFF_L = 0x28, REG_LED8_OFF_H = 0x29, REG_LED9_ON_L = 0x2a, REG_LED9_ON_H = 0x2b, REG_LED9_OFF_L = 0x2c, REG_LED9_OFF_H = 0x2d, REG_LED10_ON_L = 0x2e, REG_LED10_ON_H = 0x2f, REG_LED10_OFF_L = 0x30, REG_LED10_OFF_H = 0x31, REG_LED11_ON_L = 0x32, REG_LED11_ON_H = 0x33, REG_LED11_OFF_L = 0x34, REG_LED11_OFF_H = 0x35, REG_LED12_ON_L = 0x36, REG_LED12_ON_H = 0x37, REG_LED12_OFF_L = 0x38, REG_LED12_OFF_H = 0x39, REG_LED13_ON_L = 0x3a, REG_LED13_ON_H = 0x3b, REG_LED13_OFF_L = 0x3c, REG_LED13_OFF_H = 0x3d, REG_LED14_ON_L = 0x3e, REG_LED14_ON_H = 0x3f, REG_LED14_OFF_L = 0x40, REG_LED14_OFF_H = 0x41, REG_LED15_ON_L = 0x42, REG_LED15_ON_H = 0x43, REG_LED15_OFF_L = 0x44, REG_LED15_OFF_H = 0x45, REG_ALL_LED_ON_L = 0xfa, REG_ALL_LED_ON_H = 0xfb, REG_ALL_LED_OFF_L = 0xfc, REG_ALL_LED_OFF_H = 0xfd, REG_PRESCALE = 0xfe, REG_TESTMODE = 0xff }  | 
| enum | PCA9685_MODE1_T {  MODE1_ALL_CALL = 0x01, MODE1_SUB3 = 0x02, MODE1_SUB2 = 0x04, MODE1_SUB1 = 0x08, MODE1_SLEEP = 0x10, MODE1_AI = 0x20, MODE1_EXTCLK = 0x40, MODE1_RESTART = 0x80 }  | 
| enum | PCA9685_MODE2_T {  MODE2_OUTNE0 = 0x01, MODE2_OUTNE = 0x02, MODE2_OUTDRV = 0x04, MODE2_OCH = 0x08, MODE2_INVRT = 0x10, MODE2_RESERVE0 = 0x20, MODE2_RESERVE1 = 0x40, MODE2_RESERVE2 = 0x80 }  | 
Public Member Functions | |
| PCA9685 (int bus, uint8_t address=PCA9685_DEFAULT_I2C_ADDR, bool raw=false) | |
| ~PCA9685 () | |
| bool | writeByte (uint8_t reg, uint8_t byte) | 
| bool | writeWord (uint8_t reg, uint16_t word) | 
| uint8_t | readByte (uint8_t reg) | 
| uint16_t | readWord (uint8_t reg) | 
| bool | setModeSleep (bool sleep) | 
| bool | ledFullOn (uint8_t led, bool val) | 
| bool | ledFullOff (uint8_t led, bool val) | 
| bool | ledOnTime (uint8_t led, uint16_t time) | 
| bool | ledOffTime (uint8_t led, uint16_t time) | 
| bool | setPrescale (uint8_t prescale) | 
| bool | setPrescaleFromHz (float hz, float oscFreq=PCA9685_INTERNAL_OSC) | 
| void | enableRestart (bool enabled) | 
| enum PCA9685_REG_T | 
PCA9685 registers
| enum PCA9685_MODE1_T | 
MODE1 bits
| enum PCA9685_MODE2_T | 
MODE2 bits
| PCA9685 | ( | int | bus, | 
| uint8_t | address = PCA9685_DEFAULT_I2C_ADDR,  | 
        ||
| bool | raw = false  | 
        ||
| ) | 
PCA9685 constructor
| bus | I2C bus to use | 
| address | Address for this device | 
| bool writeByte | ( | uint8_t | reg, | 
| uint8_t | byte | ||
| ) | 
Writes a byte value into a register
| reg | Register location to write into | 
| byte | Byte to write | 
| bool writeWord | ( | uint8_t | reg, | 
| uint16_t | word | ||
| ) | 
Writes a word value into a register. Note: the device must have the auto-increment bit set in the MODE1 register to work.
| reg | Register location to write into | 
| word | Word to write | 
| uint8_t readByte | ( | uint8_t | reg | ) | 
Reads a byte value from a register
| reg | Register location to read from | 
| uint16_t readWord | ( | uint8_t | reg | ) | 
Reads a word value from a register. Note: the device must have the auto-increment bit set in the MODE1 register to work.
| reg | Register location to read from | 
| bool setModeSleep | ( | bool | sleep | ) | 
Puts the device in or out of the sleep mode. The device is always in the sleep mode upon power-up.
| sleep | True to put the device in the sleep mode, false to put out | 

| bool ledFullOn | ( | uint8_t | led, | 
| bool | val | ||
| ) | 
Sets or clears the FULL ON bit for a given LED
| led | LED number; valid values are 0-15, PCA9685_ALL_LED | 
| val | True to set the bit, false to clear it | 

| bool ledFullOff | ( | uint8_t | led, | 
| bool | val | ||
| ) | 
Sets or clears the FULL OFF bit for a given LED. If the FULL ON bit is also set, FULL OFF has precedence.
| led | LED number; valid values are 0-15, PCA9685_ALL_LED | 
| val | True to set the bit, false to clear it | 

| bool ledOnTime | ( | uint8_t | led, | 
| uint16_t | time | ||
| ) | 
Sets the 'LED on' time (0-4,095). See the PCA9685 datasheet for details.
| led | LED number; valid values are 0-15, PCA9685_ALL_LED | 
| time | 12-bit value at which point the LED turns on | 

| bool ledOffTime | ( | uint8_t | led, | 
| uint16_t | time | ||
| ) | 
Sets the 'LED off' time (0-4,095). See the PCA9685 datasheet for details.
| led | LED number; valid values are 0-15, PCA9685_ALL_LED | 
| time | 12-bit value at which point the LED turns off | 

| bool setPrescale | ( | uint8_t | prescale | ) | 
Sets the prescale value. See the PCA9685 datasheet for details. The prescale can only be set when the device is in the sleep mode.
| prescale | Prescale value | 
| bool setPrescaleFromHz | ( | float | hz, | 
| float | oscFreq = PCA9685_INTERNAL_OSC  | 
        ||
| ) | 
Sets the prescale value based on a desired frequency in Hz. The prescale can only be set when the device is in the sleep mode.
| hz | Desired frequency in Hz | 
| oscFreq | Oscillator frequency; default is 25 MHz | 

      
  | 
  inline | 
Enables or disables the restart capability of the controller
| enabled | True to enable, false to disable It is enabled by default. | 
 1.8.6