1. Sediakan alat dan bahan percobaan
2. Rangkailah rangkaian di breadboard sesuai modul
3. Buka aplikasi thonny dan masukkan listing program ke dalam aplikasi tersebut
4. Hubungkan rangkaian dengan software dengan kabel USB
5. Jalankan program
1. Rasberry Pi Pico
2. Motor Servo
3. Potensiometer
Resistor adalah komponen elektronik pasif yang berfungsi untuk membatasi arus listrik dalam suatu rangkaian. Resistor bekerja berdasarkan hukum Ohm, yang menyatakan bahwa tegangan (V) = arus (I) × resistansi (R). Resistor memiliki satuan Ohm (Ω) dan digunakan dalam berbagai aplikasi seperti pembagian tegangan, kontrol arus, dan proteksi rangkaian elektronik.
potensiometer, buzzer, dan servo motor. Potensiometer berfungsi sebagai input analog yang terhubung ke pin GP26 (ADC0) Raspberry Pi Pico. Saat potensiometer diputar, nilai tegangan analog yang keluar dari pin tengah potensiometer berubah, dan Raspberry Pi Pico membacanya sebagai nilai digital 16-bit (kisaran 0 hingga 65535). Nilai ini kemudian di-mapping ke sudut antara 0° hingga 180°, yang mewakili posisi sudut servo. Nilai sudut ini selanjutnya dikonversi ke sinyal PWM dengan frekuensi 50 Hz, lalu dikirimkan ke pin GP16 untuk mengatur posisi servo motor. Secara bersamaan, buzzer yang terhubung ke pin GP14 akan mengeluarkan bunyi jika sudut servo berada di antara 0° dan 180° (tidak pada batas ekstrim). Buzzer dibunyikan menggunakan sinyal PWM dengan frekuensi 1000 Hz dan duty cycle 50%. Namun, jika servo berada tepat di posisi 0° atau 180°, maka buzzer akan mati karena tidak menerima sinyal PWM. Rangkaian ini memungkinkan interaksi langsung antara posisi potensiometer dengan gerakan servo dan bunyi buzzer sebagai indikator aktifnya pergerakan.
from machine import Pin, PWM, ADCfrom time import sleep
# Inisialisasipot = ADC(26) # Potensiometer di GP26 (ADC0)servo = PWM(Pin(16)) # Servo di GP16buzzer = PWM(Pin(14)) # Buzzer di GP14
# Konfigurasi frekuensi awalservo.freq(50) # Frekuensi untuk servo (50 Hz)buzzer.freq(1000) # Frekuensi awal buzzer
# Fungsi mapping dari satu rentang ke rentang laindef 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)
# Loop utamawhile True:val = pot.read_u16() # Nilai ADC dari potensiometer (0 - 65535)
# === Kontrol Servo Motor ===angle = map_value(val, 0, 65535, 0, 180) # Mapping ke sudut 0–180°duty = map_value(angle, 0, 180, 1500, 7500) # Duty cycle untuk PWM servoservo.duty_u16(duty)
# Debug outputprint(f"Pot Value: {val}, Angle: {angle}, Duty: {duty}")
# === Kontrol Buzzer ===freq = int(200 + (val / 65535) * (2000 - 200)) # Mapping ke frekuensi 200–2000 Hzbuzzer.freq(freq)buzzer.duty_u16(30000) # Volume buzzer (50% duty cycle)
sleep(0.05) # Delay untuk kestabilan
5. Video Demo[Kembali]
Download HTML klik disini
Download video Demo klik disini
Download Datasheet Servo klik disiniDownload Datasheet Potensiometer klik disini
Download Datasheet Resistor klik disini
Download Datasheet IC Rasberry Pi Pico klik disini








.png)
.png)



Tidak ada komentar:
Posting Komentar