LA 1 MODUL 1 PRAKTIKUM UP & UC




Percobaan 7
LED RGB, Buzeer, dan Push Button

1. Prosedur
[Kembali]

  1. Rangkai semua komponen pada breadboard (LED RGB, Buzeer, dan Push Buttonyang terhubung ke Raspberry Pi Pico.
  2. Hubungkan Raspberry Pi Pico dengan aplikasi Thony IDE menggunakan kabel  USB 
  3. Build program yang telah dibuat, lalu inputkan program ke dalam mikrokontroler melalui stlink.
  4. Setelah program diinputkan, uji rangkaian yang telah dirangkai sesuai dengan output yang ditentukan.
  5. Selesai.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

a) Raspberry Pi Pico


2. Resistor

3. Push Button

push button 4 kaki di Sabara Mikro | Tokopedia

4. Breadboard
BREADBOARD / PROJECTBOARD / PROTOBOARD 400 HOLES di M-kontrol | Tokopedia
 
5. RGB LED
Jual LED RGB 4 PIN WARNA MERAH HIJAU BIRU 5mm ( ARDUINO ) - Common Cathode  - Jakarta Barat - Ardushop-id | Tokopedia
 
6. Buzzer
Buzzer

Diagram Blok  :



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Sebelum dirunning:




Rangkaian Simulasi Setelah dirunning:
 




Prinsip Kerja : 
  1. LED RGB menggunakan tiga pin terpisah (Red, Green, Blue) yang masing-masing dikendalikan oleh Raspberry Pi Pico.
  2. Push button digunakan sebagai input, yang akan mendeteksi saat tombol ditekan dan mengubah status LED yang sesuai.
  3. Buzzer digunakan sebagai indikator suara yang berbunyi setiap kali tombol ditekan.
  4. Resistor digunakan sebagai pull-up resistor untuk push button guna memastikan sinyal stabil dan menghindari gangguan (noise).
  5. 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.
  • 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. Fungsi updateLEDs() 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 menggunakan utime.sleep_ms(50) untuk menghindari bouncing pada tombol, yang dapat menyebabkan pembacaan tombol tidak stabil.




4. Flowchart dan Listing Program [Kembali]

Flowchart :



Listing Program :

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)



5. Video Demo [Kembali]


6. Analisa [Kembali]

7. Download File [Kembali]

Download HTML [Download]
Download Video Demo [Download]
Datasheet Raspberry Pi Pico [Download]
Datasheet Push Button [Download]
Datasheet RGB LED [Download]
Datasheet Buzzer [Download]
 

Komentar

Postingan populer dari blog ini

MODUL 1 PRAKTIKUM UP & UC

Modul 1 Praktikum Sistem Digital

Modul 3 Praktikum Sistem Digital