LA Percobaan 4 (Modul 2)




Percobaan 4
Motor Servo, Buzzer, & Potensiometer

1. Prosedur
[Kembali]
1. Rangkai semua komponen pada breadboard yang terhubung ke mikrokontroler Raspberry Pi Pico.
2. Buat program untuk mikrokontroler Raspberry Pi Pico di software Thonny.
3. Inputkan program ke dalam mikrokontroler melalui USB.
4. Setelah program diinputkan, uji rangkaian yang telah dirangkai sesuai dengan output yang ditentukan.
5. Selesai.

2. Hardware dan Diagram Blok [Kembali]
Hardware :
1. Raspberry Pi Pico
Raspberry Pi Pico - Seeed Studio | Mouser 
2. Breadboard
BREADBOARD / PROJECTBOARD / PROTOBOARD 400 HOLES di M-kontrol | Tokopedia
3. Motor Servo
4. Potensiometer
5. Buzzer
Buzzer
6. Jumper 

Diagram Blok  :



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian Simulasi Sebelum dirunning:


Rangkaian Simulasi Setelah dirunning:
 

Prinsip Kerja : 

Rangkaian ini menggunakan Raspberry Pi Pico untuk mengendalikan motor servo, buzzer, dan potensiometer. Potensiometer berfungsi sebagai input yang menghasilkan sinyal analog untuk mengatur posisi sudut motor servo dan frekuensi suara buzzer.

Sistem dimulai dengan inisialisasi komponen, lalu dalam loop utama potensiometer dibaca terus-menerus. Nilai analog dari potensiometer dikonversi menjadi sudut servo dan frekuensi buzzer. Sudut servo diatur melalui sinyal PWM, sedangkan frekuensi buzzer disesuaikan untuk menghasilkan suara sesuai nilai potensiometer. Data hasil konversi juga ditampilkan, dan proses ini diulang setiap 0,05 detik.


4. Flowchart dan Listing Program [Kembali]

Flowchart :

Listing Program :

from machine import Pin, PWM, ADC
from time import sleep

# ======================= Inisialisasi ==========================
pot = ADC(26) # GP26 = ADC0
servo = PWM(Pin(16)) # Servo di pin GP16
buzzer = PWM(Pin(14)) # Buzzer di pin GP14

# ======================= Konfigurasi PWM ========================
servo.freq(50) # Servo biasanya menggunakan 50 Hz
buzzer.freq(1000) # Frekuensi awal buzzer

# ======================= Fungsi Mapping ========================
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)

# ======================= Loop Utama ============================
while True:
val = pot.read_u16() # Nilai ADC 16-bit (0 - 65535)

# === Servo Motor ===
# Konversi nilai potensiometer ke sudut (0° - 180°)
angle = map_value(val, 0, 65535, 0, 180)

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

# Debug print
print(f"Pot Value: {val}, Angle: {angle}, Duty: {duty}")

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

sleep(0.05)

 

5. Video Demo [Kembali]


6. Analisa [Kembali]

7. Download File [Kembali]
Download Video Demo [Download]
Download Datasheet Mikrokontroler Raspberry Pi Pico [Download
Download Datasheet Motor Servo [Download]
Download Datasheet Potensiometer [Download]
Datasheet Buzzer [Download]
 

Komentar

Postingan populer dari blog ini

Modul 1: Gerbang Logika Dasar, Monostable Multivibrator, & Flip flop

Tugas Besar

Tugas Pendahuluan Modul 2 (Percobaan 1 Kondisi 21)