# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Activity 1 — Digital Input Bingo (W1+W2)
# Level 3 | First Month Recap
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
from machine import Pin
import time
# ── Button inputs (PULL_UP: pressed = 0) ────────
btn = [
Pin(12, Pin.IN, Pin.PULL_UP),
Pin(13, Pin.IN, Pin.PULL_UP),
Pin(14, Pin.IN, Pin.PULL_UP),
Pin(15, Pin.IN, Pin.PULL_UP),
]
# ── LED outputs ─────────────────────────────────
led = [
Pin(2, Pin.OUT),
Pin(4, Pin.OUT),
Pin(5, Pin.OUT),
Pin(18, Pin.OUT),
]
def blink_all(times):
for _ in range(times):
for l in led: l.value(1) # all on
time.sleep(0.15)
for l in led: l.value(0) # all off
time.sleep(0.15)
while True:
pressed = [btn[i].value() == 0 for i in range(4)]
for i in range(4):
led[i].value(1 if pressed[i] else 0) # mirror
if all(pressed): # BINGO: all 4 pressed
print('BINGO!')
blink_all(3)
if any(pressed):
print('Pressed:', [i+1 for i in range(4) if pressed[i]])
time.sleep(0.05) # 50ms polling
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4