Tugas Pendahulu M2 = 1






1. Prosedur [kembali]
  • 1. Buka Web "Wokwi" 
  • 2. Lalu masuk pada web wokwi tersebut lalu pilih bagian "Pi Pico"
  • 3. Lalu setelah masuk pilih bagian "Mikropiton"
  • 4. Setelah masuk pilihlah komponen yang akan digunakan pada "Menu Biru"
  • 5. Setelah memilih rangkailah sesuai percobaan dan kondisi yang dipilih "P1K8"
  • 6. Setelah rangkaian selesai masukan "program"
  • 7. Setelah itu coba jalankan rangkaian
  • 8. Cek komponen 
  • 9. Jika sudah berjalan dengan baik 
  • 10. Rangkaian Percobaan berhasil dibuat

2. Hardware dan Diagram Blok [kembali]
  • Hardware
LDR SENSOR
STM32
LED
BUZZER
  • Diagram blok

3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
  • Rangkaian pada wokwi
  • Prinsip Kerja
Dimana pada percobaan 1 kondisi 8 ini pada saat rangkaian ini di jalankan sensor ldr akan membaca intensitas cahaya yang didapat atau yang di deteksi yang dimana ketika sensor ldr membaca lebih gelap dari normal 300 lux maka output led yang di keluarkan akan menyala mengedip selama 1 detik dan duty cycle buzzer sebesar 15% dan buzer akan berbunyi 



5. Listing program dan Flowchart [kembali]
  • 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


6. Kondisi [kembali]
  • P1K8
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%

7. Video Simulasi [kembali]


8. Download file [kembali]


Komentar

Postingan populer dari blog ini

MODUL 1 MIKRO

TUGAS BESAR "KONTROL BANJIR OTOMATIS"

MODUL 2 SISDIG