Laporan Akhir 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]

Rangkailah seperti rangkaian percobaan 4 pada modul 2






        Rangkaian berhasil dijalankan  sesuai dengan kondisi yang diberikan pada program


  • Prinsip Kerja 
       Rangkaian dan program yang bekerja dengan berbasis Raspberry Pi Pico yang mengontrol servo motor dan buzzer menggunakan potensiometer sebagai input utama. Potensiometer terhubung ke pin ADC (GP26) pada Raspberry Pi Pico dan berfungsi sebagai pengatur nilai analog, yang akan dibaca dan diubah menjadi nilai digital (0–65535). Nilai ini kemudian digunakan untuk dua keperluan.

Pertama, nilai dari potensiometer dikonversi menjadi sudut (0°–180°) untuk mengatur posisi servo motor. Selanjutnya, sudut ini dikonversi lagi menjadi nilai duty cycle PWM (1500–7500) yang sesuai dengan standar kontrol servo, dan dikirim ke pin GP16 untuk mengatur posisi motor.

Kedua, nilai ADC juga digunakan untuk menghasilkan frekuensi PWM untuk buzzer pada pin GP14. Nilai ADC diubah ke rentang frekuensi 200 Hz hingga 2000 Hz, sehingga semakin besar nilai potensiometer, semakin tinggi nada yang dihasilkan buzzer. Duty cycle buzzer ditetapkan pada nilai tetap (30000) untuk menghasilkan suara yang stabil.


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]






6. Analisa[Kembali]

     Dikarenakan rangkaian berhasil maka tidak ada soal analisa






7. Download File[Kembali]

Listing Program [Download]
Video Simulasi [Download]  
Datasheet Motor servo [Download]
Datasheet Raspberry pi pico [Download]
Datasheet Potensiometer [Download]
Datasheet Buzzer [Download]









Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

Elektronika

 BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA C Disusun Oleh : Nabilah Darma Fitri 2210953003 Dosen Pengampu : Dr. Darwison, M.T JURUSAN ...