Tugas Pendahuluan - Percobaan 5 Kondisi 1
MODUL I
PERCOBAAN 5 KONDISI 1
- Rangkai semua komponen sesuai kondisi yang dipilih
- Buat program di website Wokwi
- Jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
- Selesai
2. Hardware dan Diagram Blok [Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
→ Gambar Rangkaian Sebelum Disimulasikan
→ Gambar Rangkaian Setelah Disimulasikan
PRINSIP KERJA
Prinsip kerja dari program ini adalah untuk mengontrol bunyi buzzer berdasarkan input dari dua tombol push button. Program diawali dengan menginisialisasi pin GPIO pada mikrokontroler, di mana pin 12 digunakan sebagai output untuk mengontrol buzzer, dan pin 10 serta pin 7 digunakan sebagai input untuk tombol, dengan konfigurasi pull-up agar tombol terbaca sebagai logika tinggi (1) saat tidak ditekan dan logika rendah (0) saat ditekan. Program kemudian menyimpan status terakhir dari kedua tombol untuk mendeteksi perubahan keadaan (dari belum ditekan menjadi ditekan). Dalam loop utama yang berjalan terus-menerus, program memeriksa apakah tombol 1 ditekan (berubah dari 1 ke 0), dan jika ya, buzzer akan menyala selama 3 detik. Jika tombol 2 ditekan, buzzer akan menyala dua kali berturut-turut, masing-masing selama 3 detik. Setiap aksi diikuti oleh pembaruan status tombol agar hanya merespons sekali setiap kali tombol ditekan. Delay singkat selama 10 milidetik digunakan untuk debouncing, yaitu menghindari pembacaan ganda akibat getaran mekanik saat tombol ditekan. Dengan demikian, buzzer akan memberikan respons berbeda tergantung pada tombol yang ditekan, baik satu kali atau dua kali bunyi panjang.
4. FlowChart [Kembali]
from machine import Pin
import utime
# Konfigurasi pin
BUZZER = Pin(12, Pin.OUT)
Button1 = Pin(10, Pin.IN, Pin.PULL_UP)
Button2 = Pin(7, Pin.IN, Pin.PULL_UP)
# Variabel untuk menyimpan status tombol terakhir
lastButton1State = True
lastButton2State = True
# Fungsi untuk menyalakan buzzer selama durasi tertentu
def buzz(duration):
BUZZER.value(1) # Nyalakan buzzer
utime.sleep_ms(duration)
BUZZER.value(0) # Matikan buzzer
# Loop utama
while True:
Button1State = Button1.value()
Button2State = Button2.value()
# Cek apakah tombol 1 ditekan dan status berubah
if Button1State == 0 and lastButton1State == 1:
print("Tombol 1 Ditekan")
buzz(3000)
lastButton1State = Button1State # Update status tombol 1
# Cek apakah tombol 2 ditekan dan status berubah
if Button2State == 0 and lastButton2State == 1:
print("Tombol 2 Ditekan")
buzz(3000)
buzz(3000)
lastButton2State = Button2State # Update status tombol 2
# Debounce sederhana dengan delay singkat
utime.sleep_ms(10) # Debounce sederhana (10 ms)
b. Flowchart
Kondisi →Percobaan 5 Kondisi 1
Buatlah Rangkaian seperti gambar pada percobaan 5 dengan kondisi ketika push button ditekan maka buzzer akan aktif selama 3 detik
6. Video Simulasi [Kembali]
7. Download File [Kembali]
Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini
Download Datasheet Raspberry Pi Pico Klik disini
Download Datasheet Button Klik disini
Download Datasheet Buzzer Klik disini
Komentar
Posting Komentar