Percobaan 1 Kondisi 3
Led & Switch
1. Prosedur [Kembali]
- Rangkai semua komponen
- Buat program di website wokwi
- Jalankan program dan cobakan sesuai kondisi
- Rangkaian
- Listing Program
from machine import Pin, PWM, ADCimport utime# Pin Setupldr = ADC(26) # Pin AO dari LDR ke GP26led = Pin(0, Pin.OUT) # LED di GP0buzzer = PWM(Pin(2)) # Buzzer di GP2 dengan PWM# Konfigurasi PWM Buzzerbuzzer.freq(1000) # Frekuensi awal buzzer (1kHz)buzzer.duty_u16(0) # Mulai dengan buzzer mati# Fungsi untuk mengonversi nilai ADC ke luxdef adc_to_lux(adc_value):return (adc_value / 65535) * 900 + 10 # Rentang 10 - 1000 lux# Variabel untuk menyimpan kondisi normal awallux_normal = 0# Variabel untuk kedip LEDlast_blink_time = utime.ticks_ms()led_state = Falseled_should_blink = False # Hanya True saat mendeteksi perubahan cahaya signifikan# Loop utamawhile True:analog_value = ldr.read_u16()lux = adc_to_lux(analog_value)if lux_normal == 0:lux_normal = luxprint(f"Lux Normal: {lux_normal}")print(f"LDR Value: {analog_value} | Lux: {lux}")if lux > lux_normal + 200:print("Cahaya lebih terang 200 lux! Aktifkan LED dan Buzzer selama 4 detik.")led_should_blink = True # Nyalakan mode kedipbuzzer.duty_u16(int(0.45 * 65535)) # Duty Cycle 45%blink_start_time = utime.ticks_ms() # Waktu mulai kedip# Kedip LED selama 4 detikwhile utime.ticks_diff(utime.ticks_ms(), blink_start_time) <= 4000: # Kedip selama 4 detik# Ubah frekuensi buzzer secara berkala selama 4 detikfor i in range(500, 1000, 100): # Variasi frekuensi buzzerbuzzer.freq(i)utime.sleep(0.1) # Memberi waktu untuk setiap frekuensi, sementara LED tetap berkedip# Kedip LED setiap 500mscurrent_time = utime.ticks_ms()if utime.ticks_diff(current_time, last_blink_time) >= 500: # Kedip setiap 500msled_state = not led_stateled.value(led_state)last_blink_time = current_time# Setelah 4 detik, matikan LED dan buzzerled_should_blink = Falseled.off()buzzer.duty_u16(0)else:led_should_blink = Falseled.off()buzzer.duty_u16(0)utime.sleep(0.1) # Sedikit delay supaya tidak terlalu cepat baca LDR
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%
HTML [Download] Rangkaian [Download]
Tidak ada komentar:
Posting Komentar