Tugas Pendahuluan 1



Percobaan 1 kondisi 3
(Led, Buzzer, & LDR) 


1. Prosedur[Kembali]

    1. Rangkai rangkaian di website wokwi sesuai dengan kondisi percobaan.
    2. Buat program di website wokwi.
    4. Setelah program selesai, jalankan simulasi rangkaian pada website wokwi sesuai kondisi.
    5. Selesai.

2. Hardware dan Diagram Blok[Kembali]

Hardware :

  • Raspberry pi pico
  • Buzzer
  • LED
  • Resistor

  • LDR dan Photodioda





Diagram Blok



3. Rangkaian Simulasi[Kembali]

  • Rangkaian sebelum di running


  • Rangkaian setelah di running



  • Prinsip Kerja 
       Rangkaian ini menggunakan Raspberry Pi Pico sebagai pusat kendali yang memantau intensitas cahaya lingkungan melalui sensor LDR (Light Dependent Resistor). Sensor LDR terhubung ke pin ADC (GP28) pada Raspberry Pi Pico dan akan mengirimkan nilai analog yang mewakili tingkat kecerahan cahaya. Pada awal program dijalankan, sistem menyimpan nilai lux awal sebagai nilai cahaya normal (lux_normal). Setiap saat, Raspberry Pi Pico membaca nilai lux terbaru dari LDR dan membandingkannya dengan nilai normal tersebut.

        Jika cahaya yang terdeteksi meningkat tajam, yaitu lebih terang dari nilai awal sebesar 200 lux, maka sistem menganggap adanya perubahan cahaya yang signifikan. Sebagai respon, Raspberry Pi Pico mengaktifkan LED merah dan buzzer sebagai indikator peringatan. LED merah akan menyala berkedip setiap 0,5 detik selama 4 detik, sedangkan buzzer berbunyi dengan frekuensi variatif (500–1000 Hz) dan duty cycle sebesar 45% selama periode tersebut. Setelah 4 detik berlalu, LED dan buzzer akan otomatis dimatikan, dan sistem kembali ke mode pemantauan normal. Jika tidak ada perubahan cahaya yang melebihi ambang batas, maka LED dan buzzer tetap tidak aktif. Sistem ini cocok digunakan sebagai alarm perubahan intensitas cahaya, seperti untuk mendeteksi cahaya lampu tiba-tiba menyala di ruangan gelap.


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(27, 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 mendeteksi perubahan cahaya

# 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 + 200:
        led_should_blink = True         # Nyalakan mode kedip
        buzzer.duty_u16(int(65535 * 0.45))  # Duty Cycle 45%

        start_time = utime.ticks_ms()

        # LED berkedip selama 4 detik
        while utime.ticks_diff(utime.ticks_ms(), start_time) <= 4000:     # Kedip selama 4 detik
           
            for i in range(500, 1000, 100):  # Variasi frekuensi buzzer agar suara tidak monoton
                buzzer.freq(i)
                utime.sleep(0.1)  # Memberi waktu untuk setiap frekuensi, sementara LED tetap berkedip

        #Kedip LED setiap 0.5 detik        
            current_time = utime.ticks_ms()
            if utime.ticks_diff(current_time, last_blink_time) >= 500:  # 0.5 detik kedip
                led_state = not led_state
                led.value(led_state)    #Membuat LED menyala dan mati selang 0,5 detik (kedip)
                last_blink_time = current_time
            utime.sleep(0.05)  # Delay kecil supaya tidak terlalu berat CPU

    # Setelah 4 detik, matikan LED dan buzzer
        led.off()
        buzzer.duty_u16(0)

    else:
        led_should_blink = False
        led.off()
        buzzer.duty_u16(0)

    utime.sleep(0.1)  # Delay antar pembacaan sensor


5. Kondisi[Kembali]

Percobaan 1 Kondisi 3

Buatlah rangkaian seperti gambar pada percobaan 1, buatlah ketika LDR membaca Lebih terang dari normal sebesar 200 LUX  Led merah hidup berkedip selama 4 detik dan Duty Cycle Buzzer 45%

6. Video Simulasi[Kembali]

     



7. Download File[Kembali]

Rangkaian [Download
Listing Program [Download]
Video Simulasi [Download]  
Datasheet Raspberry pi pico [Download]
  











Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

Elektronika

 BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA C Disusun Oleh : Nabilah Darma Fitri 2210953003 Dosen Pengampu : Dr. Darwison, M.T JURUSAN ...