LAPORAN AKHIR 1 MODUL 2
PERCOBAAN 4

1. Prosedur 
[Kembali]

1. Siapkan seluruh alat dan komponen yang diperlukan untuk percobaan sesuai daftar pada modul.
2. Susun rangkaian pada breadboard mengikuti skema yang tertera dalam panduan
3. Buka aplikasi Thonny, lalu ketik atau salin kode program ke dalam jendela editor.
4. Sambungkan rangkaian ke komputer menggunakan kabel USB agar dapat terhubung dengan perangkat lunak.
5. Jalankan program melalui Thonny untuk mulai menguji fungsionalitas rangkaian.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Raspberryy Pi Pico

2. Motor Servo

3. Buzzer

4. Potensiometer

Diagram blok :




3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi 



Prinsip Kerja : 

Pada rangkaian ini, potensiometer berfungsi sebagai input analog yang memberikan sinyal ke Raspberry Pi Pico melalui pin GP26 (ADC0). Saat pengguna memutar poros potensiometer, tegangan keluarannya berubah secara proporsional, dan perubahan ini dibaca oleh ADC (Analog to Digital Converter) pada Raspberry Pi Pico sebagai nilai digital 16-bit dalam rentang 0 hingga 65535.

Nilai digital tersebut kemudian diproses dan diubah menjadi nilai sudut antara 0° hingga 180°, yang merepresentasikan posisi target dari servo motor. Raspberry Pi Pico menghasilkan sinyal PWM (Pulse Width Modulation) dengan frekuensi 50 Hz, dan mengirimkannya ke pin GP16 untuk mengontrol sudut putaran servo motor sesuai nilai hasil mapping tadi.

Secara paralel, sebuah buzzer terhubung pada pin GP14 akan aktif dan menghasilkan suara apabila sudut servo berada di dalam rentang kerja (lebih dari 0° dan kurang dari 180°). Sinyal PWM untuk buzzer diatur dengan frekuensi 1000 Hz dan duty cycle 50% agar menghasilkan nada konstan. Ketika servo mencapai posisi 0° atau 180°, buzzer akan nonaktif sebagai indikasi bahwa servo berada di salah satu batas ekstrem.

Dengan sistem ini, pengguna dapat mengatur posisi servo hanya dengan memutar potensiometer, sambil memanfaatkan bunyi buzzer sebagai indikator bahwa gerakan sedang berlangsung.

  

4. Flowchart dan Listing Program [Kembali]

Flowchart :





Listing Program :

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

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

# Konfigurasi frekuensi awal
servo.freq(50)        # Frekuensi servo 50 Hz
buzzer.freq(1000)     # Frekuensi awal buzzer 1000 Hz

# Fungsi mapping nilai
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:
    # Baca nilai ADC dari potensiometer
    pot_value = pot.read_u16()  # 0 - 65535

    # Konversi nilai potensiometer ke sudut servo (0° - 180°)
    angle = map_value(pot_value, 0, 65535, 0, 180)

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

    # Cetak nilai untuk debugging
    print(f"Pot Value: {pot_value}, Angle: {angle}, Duty: {duty}")

    # Atur frekuensi buzzer berdasarkan nilai potensiometer
    if angle > 0 and angle < 180:
        freq = map_value(pot_value, 0, 65535, 200, 2000)
        buzzer.freq(freq)
        buzzer.duty_u16(30000)  # Atur volume/suara
    else:
        buzzer.duty_u16(0)  # Matikan buzzer saat servo di posisi ekstrem

    sleep(0.05)



5. Video Demo [Kembali]









6. Analisa [Kembali]






















7. Download File [Kembali]

Download HTML [Download]
Download Video Demo [Download]
Download Listing Program [Download