TP1 M2




Tugas Pendahuluan 1 Modul 2
(Percobaan 1 Kondisi 8)

1. Prosedur
[Kembali]
  • Rangkai semua komponen 
  • Buat program di website wokwi
  • Jalankan program dan cobakan sesuai kondisi

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Raspberry Pi Pico



2. LED

3. Resistor



4. Buzzer
5. LDR Sensor


Diagram Blok :


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Sebelum dirunning:


Rangkaian Simulasi Setelah dirunning:
  


Prinsip Kerja : 

Pada percobaan ini menggunakan beberapa komponen diantaranya LDR sensor, Raspberry Pi Pico, LED, Resistor dan Buzzer. Rangkaian ini berfungsi untuk mendeteksi tingkat pencahayaan di lingkungan menggunakan sensor cahaya yang terhubung ke Raspberry Pi Pico. Sensor tersebut mengukur nilai intensitas cahaya dalam satuan lux dan mengirimkan datanya ke mikrokontroler. Raspberry Pi Pico kemudian memproses data tersebut dan membandingkannya dengan nilai ambang batas yang telah ditentukan, yaitu 300 lux. Apabila nilai lux yang terdeteksi lebih kecil dari 300, maka Raspberry Pi Pico akan mengaktifkan LED sehingga LED berkedip dengan interval waktu 1 detik, dan sekaligus menyalakan buzzer sebagai peringatan suara. LED akan terus berkedip dan buzzer akan berbunyi selama kondisi pencahayaan tetap di bawah 300 lux. Sebaliknya, jika nilai lux lebih besar atau sama dengan 300, maka Raspberry Pi Pico akan mematikan LED dan buzzer sehingga keduanya dalam keadaan tidak aktif.


4. Flowchart dan Listing Program [Kembali]

Flowchart :



Listing Program :

from machine import Pin, PWM, ADC
import utime

# Pin Setup
ldr = ADC(28)         # Pin AO dari LDR ke GP28
ldr_digital = Pin(0, Pin.IN)  # Pin DO dari LDR ke GP0
led = Pin(6, Pin.OUT)  # LED di GP6
buzzer = PWM(Pin(15))  # Buzzer di GP15 dengan PWM

# Konfigurasi PWM Buzzer
buzzer.freq(1000)      # Frekuensi awal buzzer (1kHz)
buzzer.duty_u16(0)     # Mulai dengan buzzer mati

# Fungsi untuk mengonversi nilai ADC ke lux
def adc_to_lux(adc_value):
    return (adc_value / 65535) * 900 + 10  # Rentang 10 - 1000 lux

# Variabel untuk menyimpan kondisi normal awal
lux_normal = 0

# Variabel untuk kedip LED
last_blink_time = utime.ticks_ms()
led_state = False
led_should_blink = False  # hanya True saat kondisi mendeteksi perubahan cahaya signifikan

# 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: {lux_normal}")

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

    if lux < lux_normal + 75:
        led_should_blink = True  # nyalakan mode kedip
        buzzer.duty_u16(9830)   # nyalakan buzzer
        for i in range(500, 1000, 100):  # variasi frekuensi buzzer
            buzzer.freq(i)
            utime.sleep(0.1)
    else:
        led_should_blink = False
        led.off()
        buzzer.duty_u16(0)

    # Kedip LED jika perlu
    if led_should_blink:
        current_time = utime.ticks_ms()
        if utime.ticks_diff(current_time, last_blink_time) >= 1000:
            led_state = not led_state
            led.value(led_state)
            last_blink_time = current_time

    utime.sleep(0.1)  # sedikit delay supaya tidak terlalu cepat baca LDR

5. Kondisi [Kembali]

Percobaan 1 Kondisi 5
Buatlah rangkaian seperti gambar pada percobaan 1, buatlah ketika LDR membaca Lebih Gelap dari normal sebesar 300 LUX Led merah hidup berkedip selama 1 detik dan Duty Cycle Buzzer 15%


6. Video Simulasi [Kembali]



7. Download File [Kembali]

Download HTML [Download]
Download File Rangkaian [Download]
Download Video Simulasi [Download]
Download Listing Program [Download]
Datasheet Raspberry Pi Pico [Download]
Datasheet Resistor [Download]
Datasheet LED [Download]

 

Tidak ada komentar:

Posting Komentar