TP 2 M2 MIKRO





Tugas Pendahuluan 2 Modul 2
(Percobaan 5 Kondisi 1)

1. Prosedur
[Kembali]

1. Membuat rangkaian sesuai gambar di wokwi.
2. Tulis program untuk Raspberry Pi Pico.
3. Jalankan sistem.
4. Selesai.

2. Hardware dan Diagram Blok [Kembali]

Hardware :
1. Raspberry Pi Pico 

2. Servo

3. Buzzer

4. DHT22


5. Potensiometer



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]


Rangkaian Simulasi :





Prinsip Kerja : 

Percobaan kelima ini menggunakan Raspberry Pi Pico sebagai pengendali utama yang terhubung dengan berbagai komponen, yaitu sensor suhu dan kelembapan DHT22, potensiometer, servo motor, dan buzzer. Potensiometer berfungsi sebagai input analog untuk mengontrol arah putaran servo motor—semakin diputar searah jarum jam, nilai ADC akan meningkat, dan Raspberry Pi Pico akan menghasilkan sinyal PWM yang membuat servo berputar mengikuti arah dan sudut yang sesuai. Sensor DHT22 digunakan untuk membaca suhu dan kelembapan di lingkungan sekitar. Data dari sensor ini kemudian diolah oleh Raspberry Pi Pico; buzzer akan berbunyi jika suhu turun di bawah 35°C atau kelembapan melebihi 50%. Masing-masing kondisi menghasilkan suara buzzer yang berbeda (misalnya dalam hal frekuensi atau pola bunyi), sehingga pengguna dapat mengidentifikasi situasi hanya melalui suara. Sistem ini mengintegrasikan kontrol motor, pembacaan sensor digital, input analog, serta output suara dalam satu rangkaian monitoring berbasis mikrokontroler.


Flowchart :


Listing Program :
from machine import Pin, ADC, PWM
import time
import dht

# Inisialisasi potensiometer pada GPIO 26
pot = ADC(26)

# Inisialisasi servo pada GPIO 15
servo = PWM(Pin(15))
servo.freq(50)

# Inisialisasi buzzer pada GPIO 14
buzzer = PWM(Pin(14))
buzzer.duty_u16(0)

# 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 memainkan nada buzzer
def play_buzzer_note(freq, duration_ms):
    buzzer.freq(freq)
    buzzer.duty_u16(32768)  # Volume sedang
    time.sleep_ms(duration_ms)
    buzzer.duty_u16(0)
    time.sleep_ms(50)

# Melodi jika suhu < 35°C
def melody_low_temp():
    play_buzzer_note(523, 200)   # C5
    play_buzzer_note(587, 200)   # D5
    play_buzzer_note(659, 200)   # E5

# Melodi jika kelembapan > 50%
def melody_high_humidity():
    play_buzzer_note(784, 200)   # G5
    play_buzzer_note(880, 200)   # A5
    play_buzzer_note(988, 200)   # B5

# Melodi kombinasi (suhu < 35 dan kelembapan > 50)
def melody_combined():
    play_buzzer_note(1047, 200)  # C6
    play_buzzer_note(1175, 200)  # D6
    play_buzzer_note(1319, 200)  # E6

# Loop utama
while True:
    # Baca nilai potensiometer dan gerakkan servo
    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
    try:
        dht_sensor.measure()
        temperature = dht_sensor.temperature()
        humidity = dht_sensor.humidity()
       
        print(f"Suhu: {temperature}°C | Kelembapan: {humidity:.1f}% | sudut {servo_angle}")

        # Cek kondisi dan mainkan melodi yang sesuai
        if temperature < 35 and humidity > 50:
            print("🌡️ Suhu rendah & 💧 Kelembapan tinggi — Combined melody")
            melody_combined()
        elif temperature < 35:
            print("🌡️ Suhu rendah — Low temp melody")
            melody_low_temp()
        elif humidity > 50:
            print("💧 Kelembapan tinggi — High humidity melody")
            melody_high_humidity()
        else:
            buzzer.duty_u16(0)  # Matikan buzzer

    except OSError:
        print("⚠️ Gagal membaca sensor DHT22.")

    time.sleep(0.5)

5. Kondisi [Kembali]

Percobaan 5 Kondisi 1
Buatlah rangkaian seperti gambar pada percobaan 5. Jika potensiometer diputar searah jarum jam, servo bergerak searah jarum jam. Jika suhu < 35°C buzzer berbunyi, jika kelembapan >50% buzzer berbunyi, jika kedua kondisi tadi memnuhi buzzer jugaberbunyi. Dimana masing masing keadaan tadi memiliki bunyi yang berbeda

6. Video Simulasi [Kembali]






7. Download File [Kembali]

HTML Download
File Rangkaian Download
Video Percobaan Download
Datasheet Raspberry Pi Pico  Download
Datasheet Push Button Download
Datasheet LED RGB Download
Datasheet Resistor Download
Datasheet Buzzer Download








Komentar

Postingan populer dari blog ini

BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA 2022