Modul 2 Percobaan 4 Kondisi 5
- Buka WOKWI di browser.
- Klik Pi Pico pada Simulate with Wokwi Online.
- Klik Microphyton pada Starter Templates.
- Rangkai rangkaian sesuai dengan kondisi yang dipilih.
- Tulis program sesuai kondisi.
- Klik tombol Start Simulation.
2. Hardware dan Diagram Blok[Kembali]
- Hardware :
- Diagram Blok :
3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]
- Rangkaian Simulasi :
- Prinsip Kerja :
Buatlah rangkaian sesuai kondisi. Dimana ada rasberry pi pico. Buzzer kaki positif dihubungkan ke GP14 dan kaki negatif dihubungkan ke GND rasberry pi pico. Potensiometer kaki VCC dihubungka ke 3,3V pi pico, kaki GND dihubungkan ke GND pi pico, kaki out[ut tengah dihubungkan ke GP26 (ADC0). Servo motor kaki VCC dihubungkan ke 5V pipico, kaki GND dihubungkan ke GND pipico, kaki sinyal dihubungkan ke GP16 pi pico.
Kemudian buatkan listing program sesuai kondisi agar dapat menjalankan rangkaian. Pada program ada yang mengatur pin terhubung dengan potensiometer, servo, dan buzzer. Servo menggunakan frekuensi 50 Hz, buzzer 1000 Hz. Membaca nilai analog dari potensiometer (0–65535), kemudian di-mapping ke sudut 0°–180° untuk servo. Sudut diubah ke sinyal PWM dengan duty cycle yang sesuai agar servo bergerak. Jika sudut antara 0° dan 180°, buzzer akan berbunyi (duty 50%). Namun, logika ini bisa disederhanakan (lihat catatan di bawah).
Ketika potensiometer diputar, nilai ADC dari GP26 berubah.
Nilai tersebut dimapping ke sudut 0°–180°, kemudian servo bergerak sesuai sudut tersebut (searah jarum jam saat nilai potensiometer naik).
Selama sudut servo berada dalam rentang > 0° dan < 180°, buzzer akan menyala/bunyi karena diberikan sinyal PWM.
Jika servo tidak berada dalam rentang itu (idealnya jika sudut tepat di 0° atau 180°), buzzer akan mati.
- Flowchart :
- Listing Program :
from machine import Pin, PWM, ADC
from time import sleep
# Inisialisasi
pot = ADC(26) # Potensiometer di GP26 (ADC0)
servo = PWM(Pin(16)) # Servo di GP16
buzzer = PWM(Pin(14)) # Buzzer di GP14
# Konfigurasi frekuensi PWM
servo.freq(50) # Frekuensi servo 50Hz
buzzer.freq(1000) # Frekuensi buzzer 1kHz (bisa diubah)
def map_value(value, in_min, in_max, out_min, out_max):
# Fungsi untuk mapping nilai ADC ke rentang PWM
return int((value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)
while True:
pot_value = pot.read_u16() # Baca nilai ADC dari 0-65535
angle = map_value(pot_value, 0, 65535, 0, 180) # Mapping ke sudut 0-180 derajat
# Konversi sudut ke sinyal PWM servo (1300–7700 kira-kira duty untuk 0-180 derajat)
duty = map_value(angle, 0, 180, 1400, 7500)
servo.duty_u16(duty)
# Kondisi buzzer
if angle < 0 or angle < 180:
buzzer.duty_u16(30000) # Buzzer bunyi 50% duty cycle
else:
buzzer.duty_u16(0) # Buzzer mati
sleep(0.05) # Delay kecil untuk kestabilan pembacaan
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.
- HTML [klik disini]
- Rangkaian simulasi [klik disini]
- Video simulasi [klik disini]
- Datasheet Rasberry Pi Pico [klik disini]
- Datasheet Buzzer [klik disini]
- Datasheet Motor Servo [klik disini]
- Datasheet Potentiometer [klik disini]
Tidak ada komentar:
Posting Komentar