Tugas Pendahuluan 2




1. Prosedur [kembali]

  1. Buka WOKWI di browser.
  2. Klik Pi Pico pada Simulate with Wokwi Online.
  3. Klik Microphyton pada Starter Templates.
  4. Rangkai rangkaian sesuai dengan kondisi yang dipilih.
  5. Tulis program sesuai kondisi.
  6. Klik tombol Start Simulation.


2. Hardware dan Diagram Blok [kembali]

Hardware :

  • Raspberry Pi Pico


  • Potentiometer


  • Buzzer


  • Motor Servo



  • Diagram Blok







3. Rangkaian Simulasi [kembali]








  • 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
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 ===
    # Buzzer hanya aktif saat sudut antara 0° dan 180° eksklusif
    if 0 < angle < 180:
        # Ubah val ke frekuensi (200 Hz - 2000 Hz)
        freq = int(200 + (val / 65535) * (2000 - 200))
        buzzer.freq(freq)
        buzzer.duty_u16(30000)  # Volume/suaranya
    else:
        buzzer.duty_u16(0)             # Matikan suara

    sleep(0.05)



5. 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.

6. Video Simulasi [Kembali]







7. Download File [Kembali]

Rangkaian [Download
Listing Program [Download]
Video Simulasi [Download 

Tidak ada komentar:

Posting Komentar

Modul 4

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Tujuan 2. Alat dan Komponen 3. Landasan Teori 4. Flowchart System 5. Listing Pro...