2. Buat program untuk mikrokontroler Raspberry Pi Pico di software Thonny.
3. Inputkan program ke dalam mikrokontroler melalui USB.
4. Setelah program diinputkan, uji rangkaian yang telah dirangkai sesuai dengan output yang ditentukan.
Sistem ini menggunakan microcontroller, seperti Raspberry Pi Pico, untuk mengendalikan tiga LED dan sebuah buzzer berdasarkan input dari tiga tombol. LED dikonfigurasi sebagai output agar dapat dinyalakan atau dimatikan, sementara tombol berfungsi sebagai input dengan mode pull-up, di mana dalam keadaan normal bernilai 1
dan berubah menjadi 0
saat ditekan. Ketika tombol ditekan, program akan mendeteksi perubahan nilai tersebut dan membalik status LED terkait. Jika LED dalam kondisi mati, maka akan menyala, begitu pula sebaliknya. Selain itu, setiap penekanan tombol juga memicu buzzer untuk berbunyi selama 100 milidetik sebagai bentuk umpan balik kepada pengguna.
Agar pembacaan tombol lebih akurat, sistem menerapkan teknik debounce dengan menambahkan jeda 50 milidetik sebelum membaca kembali status tombol. Hal ini bertujuan untuk mencegah deteksi ganda akibat bouncing mekanis yang dapat menyebabkan perubahan status LED yang tidak diinginkan. Setelah tombol ditekan dan dilepaskan, sistem menyimpan status terakhir tombol untuk dibandingkan dengan kondisi berikutnya. Dengan metode ini, sistem mampu beroperasi secara stabil dalam mengontrol LED berdasarkan input dari tombol serta memberikan indikasi suara melalui buzzer.
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
Tidak ada komentar:
Posting Komentar