Jumat, 09 Mei 2025

M2 - Laporan Akhir 1

M2 - Laporan Akhir 1



1. Prosedur[Kembali]

Prosedur

1. buka website wokwi

2. pilih bagian mikropyth

3. buat file yang akan di simpan nanti nya

4. rangkai rangkaian pada wokwi sesuai dengan arahan yang ada 

5. perbaiki program yang ada pada modul agar sesuai dengan perintah kondisi

6. masukan program ke wokwi

7. run dan simulasikan

8. lihat hasil keluaran nya dari rangkaian


2. Hardware dan Diagram Blok[Kembali]

1. Pico Pi

    Sebagai Mikrokontroler utama



2. Modul Sensor LDR

    Sebagai inputan

3. Buzzer

    Sebagai Output/ keluaran



4. Resistor

    Sebagai pelindung LED agar tidak rusak






5. LED

    Sebagai output


3. Rangkaian Simulasi Dan Prinsip Kerja[Kembali]








Prinsip Kerja :

    Prinsip kerja rangkaian ini adalah mendeteksi tekanan pada dua push button dan mengaktifkan buzzer berdasarkan kondisi tertentu. Push button 1 dan push button 2 dihubungkan ke mikrokontroler dengan konfigurasi pull-up, sehingga dalam keadaan normal (tidak ditekan) tombol akan bernilai HIGH (1). Ketika salah satu tombol ditekan, nilainya berubah menjadi LOW (0), sementara tombol lainnya tetap HIGH (1). Mikrokontroler akan membaca kondisi ini dan menyalakan buzzer selama 100 milidetik sebagai respons. Jika kedua tombol ditekan bersamaan atau tidak ada tombol yang ditekan, buzzer tidak akan menyala. Program ini bekerja secara terus-menerus dalam loop utama, sehingga dapat segera merespons perubahan tekanan tombol dengan akurat. Untuk mencegah kesalahan pembacaan akibat bouncing tombol, digunakan delay debounce selama 10 milidetik.


4. Flowchart dan Listing[Kembali]



Listing Program 

from machine import Pin, PWM, ADC
import utime

# Pin Setup
ldr = ADC(28)              # Pin A0 dari LDR ke GP28
led = Pin(6, Pin.OUT)      # LED Merah di GP6
buzzer = PWM(Pin(15))      # Buzzer di GP15 dengan PWM

# Konfigurasi awal buzzer
buzzer.freq(1000)
buzzer.duty_u16(0)

# Fungsi konversi ADC ke Lux
def adc_to_lux(adc_value):
    return (adc_value / 65535) * 900 + 10  # Rentang kira-kira 10 - 1000 lux

# Kalibrasi nilai normal hanya sekali di awal
lux_normal = 0

# Loop utama
while True:
    analog_value = ldr.read_u16()
    lux = adc_to_lux(analog_value)

    if lux_normal == 0:
        lux_normal = lux
        print(f"Lux Normal (kalibrasi awal): {lux_normal}")

    print(f"LDR Value: {analog_value} | Lux: {lux}")

    if lux > lux_normal + 100:
        # Kondisi: Lebih terang 100 LUX dari normal
        buzzer.duty_u16(int(65535 * 0.25))  # Duty cycle 25%
       
        # LED berkedip selama 2 detik (dengan interval 200ms, total 10 kedipan)
        for i in range(10):
            led.toggle()
            utime.sleep(0.2)

        led.off()
        buzzer.duty_u16(0)  # Matikan buzzer
    else:
        led.off()
        buzzer.duty_u16(0)

    utime.sleep(0.2)  # Delay pembacaan


5. Video Demo[Kembali]




6. Analisa[Kembali]


7. Download File[Kembali]


Download Rangkaian Klik Disini

Download Vidio Demo Klik Disini

Download Datasheet Push Button Klik Disini

Download Datasheet Buzzer Klik Disini

Download Datasheet Raspberry Pi Pico Klik Disini

Download Listing Program Klik Disini

Related Posts:

0 komentar:

Posting Komentar