MicroPython PCA9685 Library

pca9685

Driver for the PCA9685 PWM control IC. Its commonly used to control servos, leds and motors.

  • Author(s): Radomir Dopieralski, Scott Shawcroft, Jose D. Montoya

pca9685

MicroPython Driver for the PCA9685 PWM control IC. Its commonly used to control servos, leds and motors.

  • Author(s): Radomir Dopieralski, Scott Shawcroft, Jose D. Montoya

class micropython_pca9685.pca9685.PCA9685(i2c, *, address: int = 0x40, reference_clock_speed: int = 25000000)[source]

The internal reference clock is 25mhz but may vary slightly with environmental conditions and manufacturing variances. Providing a more precise reference_clock_speed can improve the accuracy of the frequency and duty_cycle computations. See the calibration.py example for how to derive this value by measuring the resulting pulse widths.

channels

Sequence of 16 PWMChannel objects. One for each channel.

deinit() None[source]

Stop using the pca9685.

property frequency : float

The overall PWM frequency in Hertz.

reference_clock_speed

The reference clock speed in Hz.

reset() None[source]

Reset the chip.

class micropython_pca9685.pca9685.PCAChannels(pca)[source]

Lazily creates and caches channel objects as needed. Treat it like a sequence.

Parameters:
pca : PCA9685

The PCA9685 object

class micropython_pca9685.pca9685.PWMChannel(pca, index: int)[source]

A single PCA9685 channel that matches the PWMOut API.

Parameters:
pca : PCA9685

The PCA9685 object

index : int

The index of the channel

property duty_cycle : int

16 bit value that dictates how much of one cycle is high (1) versus low (0). 0xffff will always be high, 0 will always be low and 0x7fff will be half high and then half low.

property frequency : float

The overall PWM frequency in Hertz (read-only). A PWMChannel’s frequency cannot be set individually. All channels share a common frequency, set by PCA9685.frequency.