tugas pendahuluan 1 M1




1. Prosedur [Kembali]

1. Buatlah rangkaian seperti gambar pada percobaan 1 dengan input 3 input Push button dan 6 output led merah, dengan 1 input masing-masing menghidupkan 2 output
2. Tulis program pada situs Wokwi.
3. Setelah program selesai dibuat, jalankan simulasi rangkaian di Wokwi sesuai dengan skenario yang telah ditentukan.
4. Proses selesai.

2. Hardware dan Diagram Blok [Kembali]

a) Raspberry Pi Pico

b) LED
c) Touch Sensor
d) Resistor

Diagram Blok


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]


Rangkaian ini menggunakan Raspberry Pi Pico sebagai mikrokontroler utama untuk membaca input dari tiga tombol push button dan mengontrol enam LED merah sebagai output.

  • Tombol Push Button:

    • Terdapat 3 tombol push button, masing-masing terhubung ke salah satu pin GPIO Raspberry Pi Pico sebagai input.

    • Setiap tombol dikonfigurasi dengan pull-down resistor internal, sehingga dalam keadaan normal tombol akan membaca nilai LOW (0), dan saat ditekan akan membaca nilai HIGH (1).

  • LED sebagai Output:

    • Terdapat 6 LED yang masing-masing terhubung ke pin GPIO sebagai output.

    • Setiap LED dilengkapi dengan resistor (220Ω – 1kΩ) untuk membatasi arus dan melindungi LED dari kerusakan.

    • LED akan menyala ketika tombol yang sesuai ditekan dan mati ketika tombol dilepaskan.

Program ditulis dalam MicroPython dan berjalan pada Raspberry Pi Pico. Program ini membaca input dari tiga tombol push button dan mengontrol enam LED berdasarkan tombol yang ditekan. Berikut adalah prinsip kerja kode secara bertahap:

1. Inisialisasi GPIO

  • LED sebagai Output

    • Enam LED dihubungkan ke pin GPIO (6, 7, 8, 10, 11, 12) dan dikonfigurasi sebagai output.

    • LED akan menyala jika pin GPIO-nya diberi logika HIGH (1) dan mati jika diberi logika LOW (0).

  • Push Button sebagai Input dengan Pull-Down Resistor

    • Tiga tombol push button dihubungkan ke pin GPIO (2, 3, 4) dan dikonfigurasi sebagai input.

    • Masing-masing tombol menggunakan internal pull-down resistor, yang memastikan bahwa dalam keadaan normal (tidak ditekan), nilai bacaannya adalah LOW (0).

    • Ketika tombol ditekan, nilainya berubah menjadi HIGH (1).

2. Looping Utama (Pengulangan Tanpa Henti)

  • Program akan berjalan terus-menerus dalam loop while True, sehingga sistem dapat terus membaca input dan mengontrol LED secara real-time.

3. Mengecek Status Tombol dan Mengontrol LED

Di dalam loop utama, program akan melakukan hal berikut:

  1. Membaca status setiap tombol push button.

  2. Jika tombol ditekan (HIGH/1):

    • Menyalakan dua LED yang sudah dipetakan dalam dictionary button_led_map.

  3. Jika tombol tidak ditekan (LOW/0):

    • Mematikan kembali LED yang terkait dengan tombol tersebut.

Misalnya:

  • Jika tombol GPIO 2 ditekan, maka LED di GPIO 6 dan 7 akan menyala.

  • Jika tombol GPIO 3 ditekan, maka LED di GPIO 8 dan 10 akan menyala.

  • Jika tombol GPIO 4 ditekan, maka LED di GPIO 11 dan 12 akan menyala.

4. Menambahkan Delay (Debounce)

  • Setelah pengecekan tombol dan pengaturan LED, program menunggu 50 milidetik (time.sleep(0.05)).

  • Delay ini bertujuan untuk mencegah bouncing tombol, yaitu efek di mana tombol dapat terbaca beberapa kali dalam waktu yang sangat singkat akibat noise mekanis.

5. Mengulangi Proses

  • Setelah delay, program kembali ke langkah awal dan terus membaca status tombol secara berulang.

  • Hal ini memungkinkan LED merespons secara real-time saat tombol ditekan atau dilepaskan.

Kesimpulan

  • Program ini bekerja berdasarkan pemetaan tombol ke LED, di mana setiap tombol dapat mengontrol dua LED sekaligus.

  • Menggunakan loop tanpa henti (while True) agar program terus berjalan dan membaca input secara real-time.

  • Menambahkan pull-down resistor internal pada tombol untuk memastikan pembacaan input yang stabil.

  • Menggunakan delay 50 ms untuk mencegah bouncing tombol dan memastikan respons yang lebih akurat.

4. Flowchart dan Listing Program [Kembali]

 
 

from machine import Pin
import time

# Daftar mapping tombol ke LED
button_led_map = {
    2: [6, 7],  # button_1 mengontrol led_1 dan led_2
    3: [8, 10],  # button_2 mengontrol led_2 dan led_3
    4: [11, 12],  # button_3 mengontrol led_3 dan led_4
}

# Inisialisasi LED sebagai output
leds = {pin: Pin(pin, Pin.OUT) for pin in {6, 7, 8, 10, 11, 12}}

# Inisialisasi push button sebagai input dengan pull-down
buttons = {pin: Pin(pin, Pin.IN, Pin.PULL_DOWN) for pin in button_led_map.keys()}

while True:
    for button_pin, led_pins in button_led_map.items():
        if buttons[button_pin].value() == 1:
            for led_pin in led_pins:
                leds[led_pin].on()
        else:
            for led_pin in led_pins:
                leds[led_pin].off()
   
    time.sleep(0.05)  # Delay untuk debounce sederhana


5. Kondisi [Kembali]

Percobaan 1 Kondosi 4: Buatlah rangkaian seperti gambar pada percobaan 1 dengan input 3 input Push button dan 6 output led merah, dengan 1 input masing-masing menghidupkan 2 output

6. Video Simulasi [Kembali]



7.Download File [Kembali]

- Rangkaian klik disini

- Video Simulasi klik disini

Datasheet raspberry Pi Pico klik disini

Datasheet LED klik disini

- Datasheet resistor klik disini

- Datasheet push button klik disini

 

Tidak ada komentar:

Posting Komentar

  BAHAN PRESENTASI UNTUK MATA KULIAH  SISTEM DIGITAL 2024 OLEH: Afifah Febry Nabilla 2210952001 Dosen Pengampu: Darwison, M.T Referensi:  a....