LA 1 uP uC M2
LA 1 - Percobaan 4
Motor Servo, Buzzer, & Potensiomter
- Rangkailah sistem percobaan sesuai dengan diagram yang ada, dengan input berupa potensiometer, serta output berupa buzzer dan motor servo. Sambungkan potensiometer, motor servo dan buzzer menggunakan kabel jumper ke pin rapsberry pi pico yang sesuai dengan pengaturan program.
- Uploadlah program pada thonny IDE
- Setelah program selesai, percobaan dapat dilihat dengan menyesuaikan prinsip kerja rangkaian
A. Hardware
B. Blok Diagram
3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]
A. Rangkaian Simulasi
B. Prinsip Kerja
Potensiometer berfungsi sebagai input analog yang mengirimkan nilai tegangan ke pin ADC (Analog to Digital Converter) pada Raspberry Pi Pico. Saat pengguna memutar knop potensiometer, nilai tegangan yang terbaca oleh mikrokontroler akan berubah, dan perubahan ini digunakan untuk mengatur posisi sudut pada servo motor. Raspberry Pi Pico akan mengolah nilai analog dari potensiometer dan mengubahnya menjadi sinyal PWM (Pulse Width Modulation) yang dikirimkan ke servo motor untuk menggerakkannya ke posisi tertentu sesuai dengan nilai potensiometer, perputaran motor servo benbanding terbalik dengan perputaran pada wiper potensiometer, dimana saat wiper di kearah kiri maka motor servo akan berputar berlawanan jarum jam sedangkan saat wiper diputar kearah kana maka motor servo akan bergerak mengikuti arah jarum jam. Selain itu, rangkaian ini juga dilengkapi dengan buzzer sebagai output audio. Buzzer kemungkinan besar akan diaktifkan ketika nilai potensiometer mencapai ambang batas tertentu, misalnya saat diputar ke posisi maksimum, sebagai bentuk peringatan atau notifikasi.
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)
- Motor stepper memiliki beberapa kumparan (biasanya 4 atau lebih) yang harus diaktifkan dalam urutan tertentu untuk menggerakkan motor satu langkah demi satu langkah.
- Driver bertugas mengatur urutan pulsa (step), mengontrol arah, serta mengatur arus/tegangan ke tiap fasa motor.
- Pengendalian langsung dari mikrokontroler akan terlalu kompleks dan bisa merusak pin karena arus motor lebih besar dari kemampuan pin I/O biasa.
- Dapat langsung dikendalikan dengan tegangan DC sederhana — misalnya 0V untuk mati dan 5V atau 12V untuk hidup.
- Namun, jika ingin kontrol kecepatan atau arah, maka tetap perlu driver (HBridge) atau PWM control.
- Jadi, untuk kontrol sederhana, MDC bisa lebih mudah dihubungkan.
- Umumnya memiliki feedback internal dari potensiometer untuk menentukan posisi poros.
- Servo menerima sinyal PWM, dan membandingkan nilai posisi PWM dengan posisi aktual dari potensiometer.
- Ketika sinyal PWM berubah (misalnya untuk mengatur sudut 0° ke 90°), kontroler internal membandingkan nilai ini dengan nilai resistansi potensiometer.
- Jika nilai PWM menunjukkan posisi target lebih besar dari posisi potensiometer saat ini, maka servo berputar ke kanan.
- Jika nilai PWM lebih kecil dari posisi sekarang, maka servo berputar ke kiri.
- Arah putar servo ditentukan oleh perbedaan nilai target dan nilai aktual potensiometer.
- Download video demo klik disini
- Datasheet raspberry Pi Pico klik disini
- Datasheet buzzer klik disini
- Datasheet Motor servo klik disini