kopia lustrzana https://github.com/pimoroni/pimoroni-pico
Inky Frame: Use new PWMLED for led_busy and led_wifi.
rodzic
3f92caee22
commit
f255f419a1
|
@ -1,4 +1,4 @@
|
|||
from pimoroni import ShiftRegister
|
||||
from pimoroni import ShiftRegister, PWMLED
|
||||
from machine import Pin, I2C, RTC
|
||||
from wakeup import get_shift_state, reset_shift_state
|
||||
from micropython import const
|
||||
|
@ -167,5 +167,5 @@ button_c = Button(sr, 5, LED_C)
|
|||
button_d = Button(sr, 4, LED_D)
|
||||
button_e = Button(sr, 3, LED_E)
|
||||
|
||||
led_busy = Pin(LED_BUSY, Pin.OUT)
|
||||
led_wifi = Pin(LED_WIFI, Pin.OUT)
|
||||
led_busy = PWMLED(LED_BUSY)
|
||||
led_wifi = PWMLED(LED_WIFI)
|
||||
|
|
|
@ -224,3 +224,30 @@ class ShiftRegister:
|
|||
|
||||
def is_set(self, mask):
|
||||
return self.read() & mask == mask
|
||||
|
||||
|
||||
# A basic wrapper for PWM with regular on/off and toggle functions from Pin
|
||||
# Intended to be used for driving LEDs with brightness control & compatibility with Pin
|
||||
class PWMLED:
|
||||
def __init__(self, pin, invert=False):
|
||||
self._invert = invert
|
||||
self._led = PWM(Pin(pin, Pin.OUT))
|
||||
self._led.freq(1000)
|
||||
self._brightness = 0
|
||||
self.brightness(0)
|
||||
|
||||
def brightness(self, brightness):
|
||||
brightness = min(1.0, max(0.0, brightness))
|
||||
self._brightness = brightness
|
||||
if self._invert:
|
||||
brightness = 1.0 - brightness
|
||||
self._led.duty_u16(int(65535 * brightness))
|
||||
|
||||
def on(self):
|
||||
self.brightness(1)
|
||||
|
||||
def off(self):
|
||||
self.brightness(0)
|
||||
|
||||
def toggle(self):
|
||||
self.brightness(1 - self._brightness)
|
||||
|
|
Ładowanie…
Reference in New Issue