Percobaan 4 Kondisi 8



1. Prosedur[Kembali]

  1. Siapkan alat alat yang diperlukan pada wokwi
  2. Hubungkan setiap komponen
  3. Inputkan Listing Program
  4. Running

2. Hardware dan Diagram Blok [Kembali]

Hardware yang digunakan dalam rangkaian ini meliputi:

  • Raspberry Pi Pico – Sebagai mikrokontroler utama untuk mengendalikan sistem.


  • Servo

  • Potensiometer

  • Buzzer


Diagram Blok





3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]





Prinsip Kerja :

  • Input dari Potensiometer

    • Potensiometer dihubungkan ke pin GP26 (ADC0) pada Raspberry Pi Pico.

    • GP26 dipilih karena merupakan pin ADC yang bisa membaca sinyal analog.

    • Nilai analog ini mencerminkan posisi putaran potensiometer (range: 0 – 65535).

  • Konversi Nilai Analog ke Sudut Servo

    • Nilai dari potensiometer dikonversi menjadi sudut antara 0° hingga 180°.

    • Jika nilai di luar rentang, akan dianggap sebagai nilai tidak valid.

  • Kontrol Servo Motor

    • Servo dikendalikan dari pin GP16, yang mendukung output PWM.

    • PWM digunakan untuk mengatur sudut posisi servo sesuai hasil konversi dari potensiometer.

    • Duty cycle PWM menentukan posisi lengan servo.

  • Peringatan Menggunakan Buzzer

    • Buzzer terhubung ke pin GP14, juga menggunakan sinyal PWM.

    • Jika sudut servo berada di luar batas (kurang dari 0° atau lebih dari 180°), buzzer akan menyala.

    • Jika nilai valid, buzzer akan dimatikan.

  • Sumber Daya dan Ground

    • Semua komponen berbagi ground (GND) yang sama agar sistem stabil.

    • Komponen diberi daya dari 3.3V output Raspberry Pi Pico.



  • 4. Flowchart dan Listing Program[Kembali]

    Flowchart







    Listing Program

    from machine import Pin, PWM, ADC
    from time import sleep

    # Inisialisasi
    pot = ADC(26)  # GP26 = ADC0
    servo = PWM(Pin(16))
    buzzer = PWM(Pin(14))

    # Konfigurasi PWM
    servo.freq(50)  # Frekuensi standar servo
    buzzer.freq(1000)  # Default 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:
        pot_value = pot.read_u16()  # Nilai ADC (0 - 65535)

        # Konversi ke sudut servo (0° - 180°)
        angle = map_value(pot_value, 0, 65535, -1, 181)

        # Validasi sudut dan kontrol buzzer
        if angle < 0 or angle > 180:
            buzzer.duty_u16(30000)  # Bunyikan buzzer
        else:
            buzzer.duty_u16(0)      # Matikan buzzer

        # Konversi sudut ke duty cycle servo
        duty = map_value(angle, 0, 180, 1500, 7500)
        servo.duty_u16(duty)

        # Debug output
        print(f"Pot Value: {pot_value}, Angle: {angle}, Duty: {duty}")

        sleep(0.05)




    6. Kondisi[Kembali]

    Percobaan 4 kondisi 8

    Buatlah rangkaian seperti gambar pada percobaan 4, jika nilai pada potensiometer diperkecil maka servo bergerak berlawanan jarum jam dan jika jika sudut servo <0 ° dan >180 ° buzzer berbunyi

    7. Video Simulasi[Kembali]





    8. Download File[Kembali]

    File Rangkaian Wokwi

    Datasheet Raspberry Pi Pico


    Komentar

    Postingan populer dari blog ini

    Modul 1 Sistem Digital

    Home

    Modul 3 Sistem Digital