TP M2 P4 K5






1. Prosedur [kembali]
  1. Siapkan alat alat yang diperlukan pada wokwi simulation
  2. Hubungkan setiap komponen
  3. Inputkan Listing Program
  4. Running
1.
2. Hardware dan Diagram Blok [kembali]

  • Rasberry Pi Pico

  • Potensiometer


  • Motor Servo


  • Buzzer


3. Rangkaian Simulasi dan Prinsip Kerja [kembali]




Prinsip Kerja :Potensiometer berfungsi sebagai input analog.Ketika pengguna memutar potensiometer, nilai tegangan keluarannya berubah antara 0V sampai 3.3V.Tegangan ini dibaca oleh pin ADC (Analog to Digital Converter) pada Raspberry Pi Pico.Raspberry Pi Pico membaca nilai tegangan dari potensiometer.Nilai ADC kemudian diproses dalam program untuk menentukan posisi sudut servo motor.Semakin besar tegangan dari potensiometer, semakin besar pula sudut putaran servo.Servo motor akan bergerak berdasarkan nilai dari potensiometer.Misal, saat potensiometer diputar penuh, servo bergerak dari 0° hingga 180°.Buzzer terhubung ke salah satu pin output digital dari Raspberry Pi Pico.Buzzer ini kemungkinan akan berbunyi saat kondisi tertentu terjadi, misalnya:Sudut servo mencapai nilai maksimum/minimum,Atau tegangan dari potensiometer mencapai ambang tertentu.


4. Flowchart dan Listing Program [kembali]


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)

5. Video Demo [kembali]

-

6. Kondisi [kembali]
Percobaan 4 Kondisi 5
Buatlah rangkaian seperti gambar pada percobaan 4, jika nilai pada potensiometer diperbesar maka servo bergerak searah jarum jam dan jika jika sudut servo >0 ° dan <180 ° buzzer berbunyi


7. Video Simulasi [kembali]




8. Download file [kembali]

Download Project Klik Disini
Download Video Klik Disini
Datasheet Raspberry Pi Pico [Download]
Datasheet Resistor [Download]
Datasheet LED [Download]

Komentar

Postingan populer dari blog ini

Tugas Besar (Parkir Otomatis)