Skip to content

Commit bf31880

Browse files
committed
examples/hwapi: Add uasyncio example of fading 2 LEDs in parallel.
1 parent 8212773 commit bf31880

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

examples/hwapi/hwconfig_dragonboard410c.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,8 @@
1515
# User LED 1 on gpio21
1616
LED = Pin(21, Pin.OUT)
1717

18+
# User LED 2 on gpio120
19+
LED2 = Pin(120, Pin.OUT)
20+
1821
# Button S3 on gpio107
1922
BUTTON = Pin(107, Pin.IN)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Like soft_pwm_uasyncio.py, but fading 2 LEDs with different phase.
2+
# Also see original soft_pwm.py.
3+
import uasyncio
4+
from hwconfig import LED, LED2
5+
6+
7+
async def pwm_cycle(led, duty, cycles):
8+
duty_off = 20 - duty
9+
for i in range(cycles):
10+
if duty:
11+
led.value(1)
12+
await uasyncio.sleep_ms(duty)
13+
if duty_off:
14+
led.value(0)
15+
await uasyncio.sleep_ms(duty_off)
16+
17+
18+
async def fade_in_out(LED):
19+
while True:
20+
# Fade in
21+
for i in range(1, 21):
22+
await pwm_cycle(LED, i, 2)
23+
# Fade out
24+
for i in range(20, 0, -1):
25+
await pwm_cycle(LED, i, 2)
26+
27+
28+
loop = uasyncio.get_event_loop()
29+
loop.create_task(fade_in_out(LED))
30+
loop.call_later_ms_(800, fade_in_out(LED2))
31+
loop.run_forever()

0 commit comments

Comments
 (0)