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
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
7. Video Simulasi [kembali]
8. Download file [kembali]
- Vidio simulasi [disini]
- Gambar rangkaian [disini]
- Hardware [disini]
- link wokwi [disini]
- Diagram blok [disini]
.jpeg)
.jpeg)
.jpeg)
.jpeg)


Komentar
Posting Komentar