Tugas Pendahuluan 2

[menuju akhir]

1. Prosedur [kembali]

  1. Rangkai rangkaian di Proteus berdasarkan kondisi 3 percobaan yang terdapat pada percobaan ke-7.
  2. Buat program untuk Raspberry Pi Pico menggunakan software Wokwi Simulator.
  3. Sesuaikan desain program dengan kondisi percobaan, di mana saat push button hijau ditekan, LED RGB dan buzzer menyala, sedangkan push button lainnya tidak memicu buzzer.
  4. Setelah program dibuat, jalankan simulasi rangkaian di Wokwi.
  5. Tekan push button untuk menguji dan memastikan bahwa LED RGB serta buzzer berfungsi sesuai dengan kondisi yang telah ditentukan.
  6. Selesai.

2. Hardware dan Diagram Blok [kembali]

  • Hardware

a) Raspberry Pi Pico

b) Push Button
c) LED RGB
d) Buzzer
  • Diagram Blok

3. Rangkaian Simulasi dan Prinsip Kerja [kembali]

  • Rangkaian sebelum disimulasikan

  • Rangkaian setelah disimulasikan
  • Prinsip Kerja

Rangkaian ini bekerja dengan prinsip mikrokontroler, di mana tombol digunakan sebagai input, sedangkan LED dan buzzer sebagai output, dengan Raspberry Pi Pico sebagai pengendali utama. Raspberry Pi Pico membaca status tombol melalui pin GPIO yang dikonfigurasi sebagai input dengan mode pull-up internal.

Saat tombol ditekan, nilai GPIO berubah dari HIGH (1) menjadi LOW (0), yang kemudian diproses oleh Raspberry Pi Pico untuk mengubah status LED yang sesuai dan mengaktifkan buzzer. Setiap tombol memiliki fungsi sebagai berikut:

  • Tombol Merah: Jika ditekan, Raspberry Pi Pico akan mengubah status LED merah (ON jika sebelumnya OFF, dan sebaliknya).
  • Tombol Hijau: Jika ditekan, LED hijau akan berganti status, dan buzzer berbunyi selama 100 milidetik sebagai tanda bahwa tombol telah ditekan. Selama tombol hijau tetap ditekan, buzzer akan tetap menyala.
  • Tombol Biru: Jika ditekan, LED biru akan berganti status dan buzzer berbunyi selama 100 milidetik.

Dalam kode program, perubahan status tombol dideteksi dengan membandingkan nilai sebelumnya dengan nilai saat ini, memastikan bahwa perubahan hanya terjadi sekali setiap kali tombol ditekan (menghindari efek bouncing). LED dikontrol menggunakan fungsi updateLEDs(), sementara buzzer dikontrol dengan fungsi buzz().

Program berjalan dalam loop terus-menerus untuk memantau status tombol dan memperbarui output secara real-time. Penundaan singkat 50 milidetik digunakan untuk debounce sederhana, sehingga pembacaan tombol menjadi lebih stabil dan responsif.

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()

    # Tombol Merah Ditekan
    if redBtnState == 0 and lastRedBtnState == 1:
        redState = not redState
        print("Tombol Merah Ditekan")
        buzz(100)
    lastRedBtnState = redBtnState

    # Tombol Hijau Ditekan
    if greenBtnState == 0 and lastGreenBtnState == 1:
        greenState = not greenState
        print("Tombol Hijau Ditekan")
        buzz(100)  # Buzzer hanya berbunyi saat tombol hijau ditekan
    lastGreenBtnState = greenBtnState

    # Tombol Biru Ditekan
    if blueBtnState == 0 and lastBlueBtnState == 1:
        blueState = not blueState
        print("Tombol Biru Ditekan")
        buzz(100)
    lastBlueBtnState = blueBtnState

    # Cek kondisi tombol untuk menyalakan atau mematikan buzzer
    if greenBtnState == 0:  # Tombol hijau ditekan, buzzer hidup
        BUZZER.value(1)
    else:  # Tombol lain ditekan, buzzer mati
        BUZZER.value(0)

    updateLEDs()
    utime.sleep_ms(50)  # Debounce sederhana

# Nama: AISYAH HELVIA JONIUS
# NIM : 2210951020

5. Kondisi [kembali]

    Percobaan 7 Kondisi 3

Buatlah rangkaian seperti gambar pada percobaan 4 dan output akhir rangkaian keseluruhannya ditunjukkan dengan LED RGB menampilkan warna sesuai dengan input push button tetapi saat push button LED RGB warna hijau ditekan, Buzzer berbunyi dan push button warna lainnya Buzzer mati.

6. Video Simulasi [kembali]

7. Download File [kembali]

Rangkaian [klik disini]
Video Simulasi [klik disini]
Listing Program [klik disini]




Komentar

Postingan populer dari blog ini

Modul 1 General Input dan Output

Modul 1 Gerbang Logika Dasar & Monostable Multivibrator