Adafruit-PWM-Servo-Driver-Library
Adafruit-PWM-Servo-Driver-Library copied to clipboard
Adafruit PWM Servo Driver Library
**Scope** Refactored the code for setting prescale which was in the code twice and moved it to a `void setPrescale(uint8_t prescale, bool extclk=false)` function. **Known limitations** A private setPrescale function...
For #91. Converts to BusIO usage. Also provides a fix for `getPWM()` which was broken. Tested with `servo` example sketch which works same as before. Also tested with this sketch...
For I2C comms. https://github.com/adafruit/Adafruit_BusIO
The existing getPWM implementation always returned 0. This implementation is based on the datasheet for the PCA9685 and examples found on the web. It uses two methods instead of one...
According to the library [reference](https://learn.adafruit.com/16-channel-pwm-servo-driver/library-reference) this function sets the start and end of the **high** segment of the pulse. In the provided example, the pair (1024, 3072) produces a high...
Board: ESP32 (AZ-Delivery Devkit v4) IDE: VSCode/PlatformIO The `read8` function does not check for errors when calling `write_then_read`: https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library/blob/73cf3ecc79c7c33a72f8ce1a3d91ca556cd34ab3/Adafruit_PWMServoDriver.cpp#L365-L369 If `write_then_read` returns false, then `read8` may return an incorrect value....
I make the experience that the command Adafruit_PWMServoDriver::begin() resets the I2C bus speed to 100 kHz. Is this correct? I can set it again to 400 kHz after the begin,...
This change creates a new class "Adafruit_PWMServoDriverGroup" that allows a user to interact with multiple Adafruit PWM Servo's drivers like that are a single device. It accomplishes this by maintaining...
I'm confused that command `reset()` cannot set all registers to default. Now I get the reason: `MODE1_RESTART` can **only be used to RESTART the device rather than RESETTING it**: https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library/blob/73cf3ecc79c7c33a72f8ce1a3d91ca556cd34ab3/Adafruit_PWMServoDriver.cpp#L87-L93...
# Purpose Having to update up to 16 servo takes a long time as each update needs to start and end an I2C transmission. The function `setMultiplePWM` allows for bulk...