from machine import Pin
import utime
# Konfigurasi pin
LED_RED = Pin(5, Pin.OUT)
LED_GREEN = Pin(6, Pin.OUT)
LED_BLUE = Pin(11, Pin.OUT)
BUZZER = Pin(12, Pin.OUT)
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 LED (awalannya mati)
redState = False
greenState = False
blueState = False
lastRedBtnState = True
lastGreenBtnState = True
lastBlueBtnState = True
def updateLEDs():
LED_RED.value(redState) # Common Katode
LED_GREEN.value(greenState)
LED_BLUE.value(blueState)
def buzz(duration):
BUZZER.value(1) # Nyalakan buzzer
utime.sleep_ms(duration)
BUZZER.value(0) # Matikan buzzer
while True:
redBtnState = BTN_RED.value()
greenBtnState = BTN_GREEN.value()
blueBtnState = BTN_BLUE.value()
if redBtnState == 0 and lastRedBtnState == 1:
redState = not redState
print("Tombol Merah Ditekan")
buzz(100)
lastRedBtnState = redBtnState
if greenBtnState == 0 and lastGreenBtnState == 1:
greenState = not greenState
print("Tombol Hijau Ditekan")
buzz(100)
lastGreenBtnState = greenBtnState
if blueBtnState == 0 and lastBlueBtnState == 1:
blueState = not blueState
print("Tombol Biru Ditekan")
buzz(100)
lastBlueBtnState = blueBtnState
updateLEDs()
utime.sleep_ms(50) # Debounce sederhana