# ----------------------------------------------------------
# Bài 5 - Một nút điều khiển ba đèn
# Chương trình sinh ra từ mô tả bằng tiếng Việt của học sinh.
# button1: GPIO4 → một chân nút · chân còn lại → GND
# led1: GPIO23 → điện trở 220 Ω → chân dài của LED · chân ngắn → GND
# led2: GPIO18 → điện trở 220 Ω → LED vàng · chân ngắn → GND
# led3: GPIO19 → điện trở 220 Ω → LED lục · chân ngắn → GND
# ----------------------------------------------------------
from machine import Pin
import time
# ===== CẤU HÌNH =====
CHAN_BUTTON = 4 # GPIO4 → một chân nút · chân còn lại → GND
CHAN_LED1 = 23 # GPIO23 → điện trở 220 Ω → chân dài của LED · chân ngắn → GND
CHAN_LED2 = 18 # GPIO18 → điện trở 220 Ω → LED vàng · chân ngắn → GND
CHAN_LED3 = 19 # GPIO19 → điện trở 220 Ω → LED lục · chân ngắn → GND
NGUONG_DEN_1 = 1 # — ngưỡng den (lần 1)
NGUONG_DEN_2 = 2 # — ngưỡng den (lần 2)
NGUONG_DEN_3 = 3 # — ngưỡng den (lần 3)
NGUONG_DEN_4 = 3 # — ngưỡng den (lần 4)
THOI_GIAN_5 = 20 # ms — thời gian chờ 5
CHONG_DOI = 200 # ms — bỏ qua nhiễu tiếp điểm sau mỗi lần nhấn
# ====================
button = Pin(CHAN_BUTTON, Pin.IN, Pin.PULL_UP)
led1 = Pin(CHAN_LED1, Pin.OUT)
led2 = Pin(CHAN_LED2, Pin.OUT)
led3 = Pin(CHAN_LED3, Pin.OUT)
truoc_button = False
den = 1
while True:
nhan_button = button.value() == 0
if nhan_button and not truoc_button:
led1.off()
led2.off()
led3.off()
if den == NGUONG_DEN_1:
led1.on()
if den == NGUONG_DEN_2:
led2.on()
if den == NGUONG_DEN_3:
led3.on()
den = den + 1
if den > NGUONG_DEN_4:
den = 1
time.sleep_ms(CHONG_DOI)
truoc_button = nhan_button
time.sleep_ms(THOI_GIAN_5)