Split into pattern and low level methods
This commit is contained in:
@@ -22,7 +22,8 @@ class Patterns:
|
||||
"flicker": self.flicker_step,
|
||||
"scanner": self.scanner_step, # New: Single direction scanner
|
||||
"bidirectional_scanner": self.bidirectional_scanner_step, # New: Bidirectional scanner
|
||||
"external": None
|
||||
"external": None,
|
||||
"pulse": self.pulse
|
||||
}
|
||||
self.selected = selected
|
||||
# Ensure colors list always starts with at least two for robust transition handling
|
||||
@@ -394,3 +395,23 @@ class Patterns:
|
||||
self.pattern_step = 0 # Start moving forward from the first LED
|
||||
|
||||
self.last_update = current_time
|
||||
|
||||
def pulse(self):
|
||||
if self.pattern_step == 0:
|
||||
self.fill(self.apply_brightness(self.colors[0]))
|
||||
self.pattern_step = 1
|
||||
self.last_update = utime.ticks_ms()
|
||||
if utime.ticks_diff(utime.ticks_ms(), self.last_update) > self.delay:
|
||||
self.fill((0, 0, 0))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import time
|
||||
from machine import WDT
|
||||
wdt = WDT(timeout=2000) # Enable watchdog with a 2 second timeout
|
||||
p = Patterns(pin=10, num_leds=200, color1=(255,0,0), color2=(0,0,255), brightness=127, selected="bidirectional_scanner", delay=50)
|
||||
p.select("pulse")
|
||||
for i in range(1000):
|
||||
p.tick()
|
||||
wdt.feed()
|
||||
time.sleep_ms(1)
|
Reference in New Issue
Block a user