LA 1 MODUL 1 PRAKTIKUM UP & UC
- Rangkai semua komponen pada breadboard (LED RGB, Buzeer, dan Push Button) yang terhubung ke Raspberry Pi Pico.
- Hubungkan Raspberry Pi Pico dengan aplikasi Thony IDE menggunakan kabel USB
- Build program yang telah dibuat, lalu inputkan program ke dalam mikrokontroler melalui stlink.
- Setelah program diinputkan, uji rangkaian yang telah dirangkai sesuai dengan output yang ditentukan.
- Selesai.



- LED RGB menggunakan tiga pin terpisah (Red, Green, Blue) yang masing-masing dikendalikan oleh Raspberry Pi Pico.
- Push button digunakan sebagai input, yang akan mendeteksi saat tombol ditekan dan mengubah status LED yang sesuai.
- Buzzer digunakan sebagai indikator suara yang berbunyi setiap kali tombol ditekan.
- Resistor digunakan sebagai pull-up resistor untuk push button guna memastikan sinyal stabil dan menghindari gangguan (noise).
- Raspberry Pi Pico berfungsi sebagai pengendali utama yang membaca input tombol dan mengubah status LED serta mengaktifkan buzzer sesuai perintah.
Inisialisasi Pin
- LED RGB dihubungkan ke tiga pin output:
- Merah (Red) → Pin 5
- Hijau (Green) → Pin 6
- Biru (Blue) → Pin 11
- Push button dihubungkan sebagai input dengan pull-up internal:
- Tombol Merah → Pin 10
- Tombol Hijau → Pin 7
- Tombol Biru → Pin 8
- Buzzer dihubungkan ke pin 12 sebagai output.
- LED RGB dihubungkan ke tiga pin output:
-
Membaca Status Tombol
Setiap tombol diperiksa dalam loop utama dengan membaca nilai digitalnya (0 = ditekan, 1 = tidak ditekan). Jika tombol ditekan, maka status LED terkait akan dibalik (jika menyala → mati, jika mati → menyala). -
Mengubah Status LED
Setiap kali tombol ditekan, variabel redState, greenState, dan blueState akan diubah. FungsiupdateLEDs()
akan diperbarui untuk menyesuaikan status LED sesuai dengan variabel tersebut. -
Menyertakan Buzzer sebagai Indikator
Setiap kali tombol ditekan, buzzer akan menyala selama 100 milidetik sebagai umpan balik suara. -
Debounce Sederhana
Program menggunakanutime.sleep_ms(50)
untuk menghindari bouncing pada tombol, yang dapat menyebabkan pembacaan tombol tidak stabil.
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: utime.sleep_ms(50) # Debounce if BTN_RED.value() == 0: global redState redState = not redState print("Tombol Merah Ditekan") buzz(100) lastRedBtnState = redBtnState if greenBtnState == 0 and lastGreenBtnState == 1: utime.sleep_ms(50) # Debounce if BTN_GREEN.value() == 0: global greenState greenState = not greenState print("Tombol Hijau Ditekan") buzz(100) lastGreenBtnState = greenBtnState if blueBtnState == 0 and lastBlueBtnState == 1: utime.sleep_ms(50) # Debounce if BTN_BLUE.value() == 0: global blueState blueState = not blueState print("Tombol Biru Ditekan") buzz(100) lastBlueBtnState = blueBtnState updateLEDs() utime.sleep_ms(50)
Komentar
Posting Komentar