PERCOBAAN 4 KONDISI 1






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 1
    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

    Tidak ada komentar:

    Posting Komentar

         BAHAN PRESENTASI     MATA KULIAH ELEKTRONIKA 2022 Oleh Muhammad Farhan Pramasta 2210953033 DOSEN PENGAMPU DR. DARWISON, M.T. Referensi ...