LAPORAN AKHIR MODUL 2 DHT22

 [KEMBALI KE MENU SEBELUMNYA]





1. Prosedur[Kembali]
  • Rangkailah semua komponen 
  • Buatlah program di website wokwi
  • Jalankan program  sesuai kondisi yang dipilih

2. Hardware dan Diagram Blok[Kembali]
Hardware :

1. Raspberry Pi Pico



2. LED

3. Resistor


  4. Motor Servo




Diagram Blok:


3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

Rangkaian:

Prinsip Kerja:
    Proses dimulai dengan inisialisasi pin untuk servo, potensiometer, dan LED RGB agar dapat berfungsi sesuai tugasnya masing-masing. Setelah inisialisasi, sistem akan membaca nilai ADC (Analog to Digital Converter) dari potensiometer. Nilai ini kemudian digunakan untuk menentukan sudut pergerakan dari servo motor. Berdasarkan sudut yang dihasilkan, sistem akan mengaktifkan LED RGB dengan warna dan kondisi tertentu. Jika sudut yang dihasilkan kurang dari 60 derajat, maka LED RGB akan menyala merah dan berkedip. Jika sudut berada di antara 61 hingga kurang dari 120 derajat, maka LED akan menyala hijau dan berkedip. Sedangkan jika sudut berada antara 121 hingga kurang dari 180 derajat, LED akan menyala biru dan berkedip. Apabila sudut tidak berada dalam rentang tersebut, maka sistem akan berhenti sementara dan kembali mengulang proses dari awal. Sistem ini berjalan secara terus-menerus dalam satu siklus loop, menyesuaikan respon LED RGB berdasarkan posisi sudut servo yang dikendalikan oleh nilai dari potensiometer.



4. Flowchart dan Listing Program[Kembali]

listing program:

from machine import Pin, PWM, ADC import utime

 

# Definisi pin

servo = PWM(Pin(16)) # Servo pada GP16

pot = ADC(Pin(28))    # Potensiometer pada GP28 led_red = Pin(1, Pin.OUT) # LED Merah pada GP1 led_green = Pin(2, Pin.OUT) # LED Hijau pada GP2 led_blue = Pin(3, Pin.OUT) # LED Biru pada GP3

 

# Konfigurasi servo (frekuensi 50Hz) servo.freq(50)

 

# Fungsi map seperti di Arduino

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)

 

# Variabel untuk kontrol kedipan LED last_blink = utime.ticks_ms()

led_state = True # Mulai dalam keadaan menyala

while True:

# Waktu sekarang

now utime.ticks_ms()

 

# Membaca nilai potensiometer (0 - 65535) pot_value = pot.read_u16()

 

# Konversi ke sudut servo (0° 180°)

angle = map_value(pot_value, 0, 65535, 0, 180)

 

# Konversi sudut ke duty cycle (1500 - 7500)  sesuai servo PWM duty = map_value(angle, 0, 180, 1500, 7500)

servo.duty_u16(duty)

 

# Print untuk debugging

print(f"Pot Value: {pot_value}, Angle: {angle}, Duty: {duty}")

 

# Jika sudah lewat 1000 ms (1 detik), ubah status LED RGB if utime.ticks_diff(now, last_blink) >= 1000:

led_state = not led_state

last_blink = now # reset waktu blink

 

# Nyalakan salah satu warna LED berdasarkan sudut if 0 <= angle <= 60:

led_red.value(led_state) led_green.value(0) led_blue.value(0)

elif 60 < angle <= 120: led_red.value(0) led_green.value(led_state) led_blue.value(0)

else:

led_red.value(0) led_green.value(0)

led_blue.value(led_state)

 

utime.sleep_ms(50) # Delay pendek untuk kestabilan pembacaan


Flowchart:



5. Video Demo[Kembali]



6. Analisa[Kembali] 
7. Download File[Kembali]

Rangkaian [download]
Video simulasi [download]















Tidak ada komentar:

Posting Komentar

   Bahan Presentasi Mata kuliah Elektronika TA Semester Genap 2023 Dosen Pengampu : Darwison, M.T. Oleh : Ahmad Bukhari 2210952018 A. Darwis...