Tugas Pendahuluan 2 Modul 2
Tugas Pendahuluan 2 Modul 2
(Percobaan 5 Kondisi 3)
1. Buat rangkaian di wokwi sesuai dengan kondisi percobaan.
2. Buat program di wokwi.
4. Jalankan simulasinya
2. Buat program di wokwi.
4. Jalankan simulasinya
5. Selesai.
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Sensor DHT22 yang tersambung ke GPIO 16 digunakan untuk mengukur suhu dan kelembapan udara. Hasil pembacaan ini kemudian dimanfaatkan untuk mengontrol buzzer yang terhubung ke GPIO 14 dalam kondisi tertentu. Jika suhu terdeteksi di bawah 35°C, buzzer akan mengeluarkan nada E5 sebagai peringatan suhu rendah. Sementara itu, jika kelembapan melebihi 50%, buzzer akan memainkan melodi khusus yang terdiri dari nada E5, F5, dan G5 sebagai tanda kelembapan tinggi.
Seluruh sistem berjalan dalam sebuah loop yang terus-menerus memantau input dari sensor dan potensiometer, lalu mengatur motor servo dan buzzer sesuai kondisi yang terbaca. Hal ini menggambarkan bagaimana Raspberry Pi Pico dapat digunakan dalam sistem pemantauan sederhana yang melibatkan kendali aktuator dan peringatan berbasis suara.
4. Flowchart dan Listing Program [Kembali]
Flowchart
Listing program
from machine import Pin, ADC, PWM
import time
import dht
# Inisialisasi potensiometer pada GPIO 26 (ADC0)
pot = ADC(26)
# Inisialisasi motor servo pada GPIO 15 (PWM)
servo = PWM(Pin(15))
servo.freq(50) # Frekuensi PWM untuk servo
# Inisialisasi buzzer sebagai PWM pada GPIO 14
buzzer = PWM(Pin(14))
buzzer.duty_u16(0) # Tidak ada suara saat awal
# Inisialisasi sensor DHT22 pada GPIO 16
dht_sensor = dht.DHT22(Pin(16))
# Fungsi mapping nilai
def map_value(value, in_min, in_max, out_min, out_max):
return int((value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)
# Fungsi untuk membunyikan buzzer dengan nada tertentu
def play_buzzer_note(frequency, duration_ms):
buzzer.freq(frequency)
buzzer.duty_u16(32768) # Volume setengah
time.sleep_ms(duration_ms)
buzzer.duty_u16(0)
time.sleep_ms(50) # Jeda antar nada
# Fungsi melodi untuk kelembapan tinggi
def play_high_humidity_melody():
play_buzzer_note(659, 200) # E5
play_buzzer_note(698, 200) # F5
play_buzzer_note(784, 200) # G5
while True:
# Baca potensiometer
pot_value = pot.read_u16()
servo_angle = map_value(pot_value, 0, 65535, 0, 180)
servo_duty = map_value(servo_angle, 0, 180, 1638, 8192)
servo.duty_u16(servo_duty)
# Baca suhu dan kelembapan dari DHT22
dht_sensor.measure()
temperature = dht_sensor.temperature()
humidity = dht_sensor.humidity()
print(f"Suhu: {temperature}°C | Kelembapan: {humidity:.1f}%")
# Cek kondisi dan mainkan melodi sesuai kondisi
if temperature < 35:
print("🔥 Buzzer ON: Suhu Rendah!")
play_buzzer_note(659, 200) # E5
if humidity > 50:
print("💧 Buzzer ON: Kelembapan tinggi!")
play_high_humidity_melody()
5. Kondisi [Kembali]
Percobaan 5 Kondisi 3
Buatlah rangkaian seperti gambar pada percobaan 5. Jika potensiometer diputar searah jarum jam, servo bergerak searah jarum jam. Jika suhu < 35°C buzzer berbunyi dan kelembapan >50% buzzer berbunyi dengan 3 nada.
6. Video Simulasi [Kembali]
7. Download File [Kembali]
Komentar
Posting Komentar