M2_LA2



Laporan Akhir

Percobaan 4
  Motor Servo, Buzzer, & Potensiomter 


1. Prosedur[Kembali]

    1. Buat rangkaian dipapan rangkaian sesuai dengan percobaan yang dilakukan pada modul.
    2. Buat program di thonny ide.
    3. Connect Raspberry pi pico dengan laptop
    4. Jalankan program
    5. Selesai.

2. Hardware dan Diagram Blok[Kembali]

Hardware :

  • Raspberry pi pico
  • Push button


  • LED
  • Resistor
  • Potensiometer


  • Motor Servo



3. Rangkaian Simulasi[Kembali]

  • Rangkaian 


  • Prinsip Kerja 
Rangkaian ini menggunakan satu potensiometer sebagai input dan dua output, yaitu satu buzzer dan satu servo motor, yang semuanya dikendalikan oleh Raspberry Pi Pico. Potensiometer dihubungkan ke pin ADC pada Raspberry Pi Pico untuk membaca nilai tegangan analog dengan rentang 0 hingga 65535. Nilai ini kemudian digunakan untuk mengontrol sudut putar servo dan duty cycle pada buzzer. Ketika potensiometer diputar, nilai ADC berubah secara proporsional, sehingga sudut servo ikut menyesuaikan dari 0° hingga sekitar 180°, tergantung posisi potensiometer. Pada saat yang sama, buzzer juga merespons perubahan nilai tersebut dengan menyesuaikan duty cycle-nya, sehingga menghasilkan intensitas suara yang berubah sesuai hambatan potensiometer. Dengan demikian, perputaran potensiometer secara bersamaan mengontrol pergerakan servo dan kekuatan suara buzzer, sesuai logika yang diprogram pada Raspberry Pi Pico.

4. Flowchart dan Listing Program[Kembali]

  • Flowchart




  • Listing Program

from machine import Pin, PWM, ADC from time import sleep # Inisialisasi ADC dan PWM pot = ADC(26) # GP26 = ADC0 servo = PWM(Pin(16)) # GP16 untuk servo buzzer = PWM(Pin(14)) # GP14 untuk buzzer # Konfigurasi frekuensi PWM servo.freq(50) # 50 Hz untuk servo buzzer.freq(1000) # Default frekuensi buzzer # Fungsi untuk 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) while True: # === Baca ADC === pot_value = pot.read_u16() # Nilai 0 - 65535 # === Servo Motor === angle = map_value(pot_value, 0, 65535, 0, 180) # Derajat duty_servo = map_value(angle, 0, 180, 1500, 7500) # Duty cycle PWM servo.duty_u16(duty_servo) # === Buzzer === freq_buzzer = map_value(pot_value, 0, 65535, 200, 2000) # Frekuensi buzzer buzzer.freq(freq_buzzer) buzzer.duty_u16(30000) # Duty untuk suara # === Debug Output === print(f"Pot Value: {pot_value}, Angle: {angle}, Servo Duty: {duty_servo}, Buzzer Freq: {freq_buzzer}") sleep(0.05)





6. Analisa[Kembali]


Tidak ada analisa dikarenakan kondisi tidak terpenuhi

7. Download File[Kembali]

Listing Program [Download]
Video Simulasi [Download]  
  









 

Komentar

Postingan populer dari blog ini

Modul 1 Input Output

Modul 3

Tugas Besar