M2 LA 2




Percobaan 4
1. Prosedur
[Kembali]
  • 1. Siapkan alat dan bahan: Raspberry Pi Pico, servo motor, buzzer, potensiometer, breadboard, kabel jumper, USB, dan Thonny IDE.

  • 2. Rakit rangkaian:

    • GP16 ke servo motor (sinyal)

    • GP14 ke buzzer

    • GP26 ke potensiometer (pin tengah)

    • Sambungkan 5V dan GND ke semua komponen sesuai kebutuhan

  • 3. Program Raspberry Pi Pico:

    • Baca nilai potensiometer dari GP26

    • Gerakkan servo sesuai nilai potensiometer

    • Nyalakan buzzer jika nilai > 512

  • 4. Uji coba:

    • Putar potensiometer → servo bergerak

    • Nilai tinggi → buzzer menyala




  • 2. Hardware dan Diagram Blok [Kembali]

    Hardware 
    • Raspberry Pi Pico
    Raspberry Pi Pico adalah mikrokontroler berbasis RP2040, yaitu chip buatan Raspberry Pi yang memiliki dual-core ARM Cortex-M0+ dengan kecepatan hingga 133 MHz. Mikrokontroler ini digunakan untuk berbagai proyek embedded system, seperti robotika, otomasi, dan pemrosesan sinyal, karena memiliki GPIO (General Purpose Input Output) yang fleksibel serta mendukung pemrograman dengan MicroPython dan C/C++.
    • Potensiometer


    Potensiometer adalah komponen elektronik yang berfungsi untuk mengatur atau mengubah resistansi secara manual. Secara sederhana, potensiometer adalah jenis resistor variabel yang memiliki tiga terminal: dua terminal untuk memberikan dan menerima tegangan, dan satu terminal untuk mengubah resistansi yang digunakan untuk mengubah tegangan atau arus.

    • Breadboard


    Breadboard adalah sebuah papan yang digunakan untuk merancang dan menguji rangkaian elektronik secara sementara tanpa perlu menyolder komponen. Breadboard memungkinkan perakitan rangkaian secara cepat dan mudah, sehingga sangat berguna dalam prototyping dan eksperimen elektronik.
    • Jumper male to male


    Kabel jumper Male to Male adalah kabel yang memiliki konektor jantan (male) di kedua ujungnya. Kabel ini biasanya digunakan untuk menghubungkan pin pada board elektronik, seperti Raspberry Pi, Arduino, atau breadboard, dengan komponen lainnya. Kabel jumper male to male sering digunakan dalam rangkaian prototyping atau percobaan karena fleksibilitas dan kemudahannya untuk digunakan.
    • Buzzer


    Push button adalah sakelar mekanik yang bekerja saat ditekan dan kembali ke posisi semula saat dilepas. Komponen ini digunakan untuk mengaktifkan atau menonaktifkan sirkuit listrik, seperti dalam sistem kontrol, input pengguna pada perangkat elektronik, dan tombol reset atau start dalam rangkaian mikroprosesor. Push button sering dikombinasikan dengan mikrokontroler untuk menangkap input pengguna dalam berbagai aplikasi interaktif.

    Diagram Blok :



    3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
    Rangkaian :

    Prinsip Kerja :

    Rangkaian ini bekerja dengan mengandalkan Raspberry Pi Pico sebagai pengendali utama untuk mengontrol pergerakan sebuah motor servo dan mengaktifkan buzzer berdasarkan nilai yang dibaca dari potensiometer. Potensiometer bertindak sebagai input analog, di mana perubahan posisi putarannya menghasilkan variasi tegangan yang dikirim ke pin ADC (GP26) pada Raspberry Pi Pico. Nilai analog ini kemudian diproses oleh program untuk menentukan posisi sudut dari motor servo yang terhubung ke pin GP16. Semakin besar nilai yang dibaca dari potensiometer, maka sudut putaran servo juga akan semakin besar. Pada Percobaan ini ketika nilai potensio diputar kearah VCC maka motor servo akan bergerak berlawanan jarum jam dan berlaku sebaliknya. Selain itu, sistem juga memiliki fitur peringatan menggunakan buzzer yang terhubung ke pin GP14. Buzzer akan menyala apabila nilai potensiometer melebihi ambang batas tertentu yang telah ditentukan dalam program, misalnya nilai lebih dari 512. Rangkaian ini mendapatkan suplai daya melalui koneksi USB ke Raspberry Pi Pico, yang selanjutnya mendistribusikan tegangan 3.3V dan ground ke seluruh komponen. 




    4. Flowchart dan Listing Program [Kembali]
    • 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 === 
        # 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. Analisa [Kembali]






    7. Download File [Kembali]
    Download Video Demo Disini


    Tidak ada komentar:

    Posting Komentar