LAPORAN AKIR 1





Percobaan 4
Motor Servo, Buzzer, & Potensiomter

1. Prosedur[Kembali]

    1. Rangkai rangkaian sesuai dengan rangkaian percobaan 4.
    2. Setelah semua komponen (Potensiometer, motor servo, dan buzzer , dihubungkan ke Raspberry pi      pico), hubungkan USB Raspberry pi pico ke laptop.
    3. Inisaialisasi program menggunakan thonny
    4. Setelah program selesai, simulasikan rangkaian.
    5. Selesai.

2. Hardware dan Diagram Blok[Kembali]

Hardware :

  • Raspberry pi pico
  • Potensiometer



  • Motor Servo


  • Buzzer



  • Jumper Cable Wire


  • Beard board



Diagram Blok

3. Rangkaian Simulasi[Kembali]


Rangkayan percobaan

  • Prinsip Kerja

    Sistem ini menggunakan Raspberry Pi Pico untuk mengendalikan servo motor dan buzzer, dengan potensiometer sebagai input utama. Potensiometer terhubung ke pin ADC (GP26) pada Pico dan menghasilkan nilai analog yang dikonversi menjadi digital (0–65535). Nilai ini digunakan untuk dua fungsi. Pertama, nilai tersebut diubah menjadi sudut antara 0° hingga 180° guna mengatur posisi servo. Sudut ini kemudian dikonversi ke nilai duty cycle PWM dalam rentang 1500–7500, sesuai standar kontrol servo, dan dikirim melalui pin GP16 untuk menggerakkan motor.

    Kedua, nilai ADC juga digunakan untuk menghasilkan frekuensi PWM bagi buzzer yang terhubung ke pin GP14. Nilai ADC diubah ke frekuensi antara 200 Hz hingga 2000 Hz, sehingga semakin tinggi nilai potensiometer, semakin tinggi pula nada buzzer. Duty cycle untuk buzzer ditetapkan tetap pada 30000 untuk menjaga kestabilan suara.

 

4. Flowchart dan Listing Program[Kembali]

  • Flowchart


  • Listing Program

from machine import Pin, PWM, ADC

from time import sleep


import utime


# Inisialisasi



pot = ADC(26)  # GP26 = ADC0

servo = PWM(Pin(16))


buzzer = PWM(Pin(14))



# Konfigurasi PWM

servo.freq(50)  # 50 Hz untuk servo
buzzer.freq(1000)  # Awal frekuensi buzzer

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)
while True:

val = pot.read_u16()  # Nilai ADC 16-bit (0 - 65535)

# === Servo Motor ===
# 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}")

# === Buzzer ===
# Ubah val ke frekuensi (200 Hz - 2000 Hz)
freq = int(200 + (val / 65535) * (2000 - 200))
buzzer.freq(freq)
buzzer.duty_u16(30000)  # Volume/suaranya

sleep(0.05)

5. Video Demo[Kembali]





  1. HTML [klik]
  2. Vidio Simulasi [klik]
  3. Datasheet [klik]



 






Tidak ada komentar:

Posting Komentar

     BAHAN PRESENTASI     MATA KULIAH ELEKTRONIKA 2022 Oleh Mutia Azzahra 2210953018 DOSEN PENGAMPU DR. DARWISON, M.T. Referensi  1. Darwiso...