from machine import Pin
import utime
# Konfigurasi pin untuk LED RGB dan Buzzer
LED_RED = Pin(5, Pin.OUT)
LED_GREEN = Pin(6, Pin.OUT)
LED_BLUE = Pin(11, Pin.OUT)
BUZZER = Pin(12, Pin.OUT)
# Konfigurasi push button
BTN_RED = Pin(10, Pin.IN, Pin.PULL_UP)
BTN_GREEN = Pin(7, Pin.IN, Pin.PULL_UP)
BTN_BLUE = Pin(8, Pin.IN, Pin.PULL_UP)
# Variabel status tombol
lastRedBtnState = True
lastGreenBtnState = True
lastBlueBtnState = True
def updateLED(r, g, b):
"""Mengatur warna LED RGB."""
LED_RED.value(r)
LED_GREEN.value(g)
LED_BLUE.value(b)
while True:
redBtnState = BTN_RED.value()
greenBtnState = BTN_GREEN.value()
blueBtnState = BTN_BLUE.value()
if redBtnState == 0 and lastRedBtnState == 1:
print("Tombol Merah Ditekan: LED Merah ON, Buzzer OFF")
updateLED(1, 0, 0) # LED merah menyala
BUZZER.value(0) # Matikan buzzer
utime.sleep_ms(200) # Debounce
lastRedBtnState = redBtnState
if greenBtnState == 0 and lastGreenBtnState == 1:
print("Tombol Hijau Ditekan: LED Hijau ON, Buzzer ON")
updateLED(0, 1, 0) # LED hijau menyala
BUZZER.value(1) # Buzzer menyala
utime.sleep_ms(200) # Debounce
lastGreenBtnState = greenBtnState
if blueBtnState == 0 and lastBlueBtnState == 1:
print("Tombol Biru Ditekan: LED Biru ON, Buzzer OFF")
updateLED(0, 0, 1) # LED biru menyala
BUZZER.value(0) # Matikan buzzer
utime.sleep_ms(200) # Debounce
lastBlueBtnState = blueBtnState
utime.sleep_ms(50) # Jeda kecil untuk mengurangi beban CPU