Control LEDs connected to a micro controller using pwm.
python-pwmled controls LEDs connected to a micro controller using pulse-width modulation. It supports one-color, RGB and RGBW leds driven by GPIOs of an Raspberry Pi or a PCA9685 controller.
python-pwmled requires Python 3. It can be installed using pip:
pip install pwmled
wget abyz.co.uk/rpi/pigpio/pigpio.zip unzip pigpio.zip cd PIGPIO make sudo make install
Besides the library, the
pigpiod utility is installed, which starts
pigpio as daemon. The daemon must be running when using the
python-pwmled supports several possibilities for connecting LEDs to your micro controller:
- GPIO: LEDs can be connected directly to the GPIOs of a Raspberry Pi.
- PCA9885: A PCA9685 can be used as I2C-bus PWM controller.
from pwmled.driver.gpio import GpioDriver from pwmled.driver.pca9685 import Pca9685Driver # GPIO driver, which controls pins 17, 22, 23 driver = GpioDriver([17, 22, 23]) driver = GpioDriver([17, 22, 23], freq=200) # To control the pigpio on a other machine use the host parameter driver = GpioDriver([17, 22, 23], host='other.host') # PCA9685 driver which controls pins 1, 2, 3 driver = Pca9685Driver([1, 2, 3]) driver = Pca9685Driver([1, 2, 3], freq=200, address=0x40)
Each LED needs a separated driver, which controls the corresponding pins. The number and order of pins depends on the led type:
- One-color: 1 pin
- RGB: 3 pins (
[R, G, B])
- RGBW: 4 pins (
[R, G, B, W])
The supported operations are shown in the following example:
from pwmled import Color from pwmled.led import SimpleLed from pwmled.led.rgb import RgbLed from pwmled.led.rgbw import RgbwLed from pwmled.driver.gpio import GpioDriver # One-color led driver = GpioDriver([C]) led = SimpleLed(driver) led.on() led.brightness = 0.5 led.transition(5, brightness=0) led.off() # RGB led driver = GpioDriver([R, G, B]) led = RgbLed(driver) led.on() led.color = Color(255, 0, 0) led.set(color=Color(0, 255, 0), brightness=0.5) # set two properties simultaneously led.transition(5, color=Color(0, 0, 255), brightness=1) led.off() # RGBW led driver = GpioDriver([R, G, B, W]) led = RgbwLed(driver) # RgbwLed has same interface as RgbLed
Pull-requests are welcome, especially for adding new drivers or led types.
This library is provided under MIT license.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size pwmled-1.6.1-py2-none-any.whl (11.7 kB)||File type Wheel||Python version py2||Upload date||Hashes View|
|Filename, size pwmled-1.6.1.tar.gz (8.5 kB)||File type Source||Python version None||Upload date||Hashes View|