TUGAS PENDAHULUAN 2 : PERCOBAAN 4 KONDISI 5



 

1.)     Prosedur [kembali]

  1. Buka Wokwi dengan pada link https://wokwi.com/
  2. Pilih Pi Pico dan pilih template 
  3. Tambahkan komponen
  4. Hubungkan komponen sesuai kondisi
  5. Tambahkan atau ketik Program yang sesuai dengan kondisi rangkaian
  6. Jalankan Program simulasi

2.)     Hardware dan Diagram Blok [kembali]

 A. Hardware

1. Raspberry Pi Pico


Raspberry Pi Pico adalah papan mikrokontroler berbiaya rendah dan berkinerja tinggi dengan antarmuka digital fleksibel, yang dibuat di atas silikon yang dirancang di Raspberry Pi . Fitur-fitur utamanya meliputi: Chip mikrokontroler RP2040 yang dirancang oleh Raspberry Pi di Inggris Raya. Prosesor dual-core ARM Cortex M0+, clock fleksibel yang berjalan hingga 133 MHz.

2.  Potensimeter


Potensiometer tergolong sebagai variabel resistor. Dalam hal ini, potensiometer berfungsi sebagai pembagi tegangan yang bisa disesuaikan. Dengan demikian, nilai resistansi pada potensiometer bisa diatur sesuai dengan kebutuhan. Baik itu berdasarkan kebutuhan pemakaian ataupun pada rangkaian elektronika lainnya.

3. Motor Servo



Servo Motor adalah perangkat listrik yang digunakan pada mesin-mesin industri pintar yang berfungsi untuk mendorong atau memutar objek dengan kontrol yang dengan presisi tinggi dalam hal posisi sudut, akselerasi dan kecepatan, sebuah kemampuan yang tidak dimiliki oleh motor biasa.

Motor servo dikendalikan dengan memberikan Pulse Wide Modulation / PWM melalui kabel kontrol. Durasi "denyut" (pulse) yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Poros motor servo akan bergerak dan bertahan di posisi yang telah diperintahkan ketika durasi "denyut"nya telah diberikan. Motor servo akan mencoba menahan atau melawan dengan besarnya kekuatan torsi yang dimilikinya apabila ada yang mencoba memutar atau mengubah posisi tersebut. Posisi motor servo tidak akan seterusnya diam saja karena sinyal "denyut"nya harus diulang setiap 20 ms (mili second) untuk menginstruksikan agar tetap pada posisinya.


4. Buzzer


Buzzer adalah komponen elektronik yang digunakan untuk menghasilkan suara atau bip. Ini adalah perangkat output yang mengubah sinyal listrik menjadi suara. Buzzer sering digunakan dalam perangkat rumah tangga, jam alarm, komputer, dan banyak perangkat elektronik lainnya sebagai cara untuk memberikan indikasi audio kepada pengguna.

Fitur utama buzzer adalah:

  • Mekanisme Penghasil Suara: Buzzer umumnya bekerja dengan menggunakan elektromagnet, piezoelektrik, atau mekanisme mekanis. Buzzer piezoelektrik, misalnya, menggunakan disk piezoelektrik yang bergetar ketika tegangan listrik diterapkan, menghasilkan suara.
  • Frekuensi Suara: Buzzer menghasilkan suara dengan frekuensi tertentu, yang biasanya dinyatakan dalam Hertz (Hz). Frekuensi ini menentukan nada suara yang dihasilkan.
  • Volume: Intensitas suara yang dihasilkan buzzer biasanya dinyatakan dalam desibel (dB). Volume ini bisa bergantung pada tegangan yang diterapkan dan konstruksi buzzer.
  • Tipe Aktuasi: Beberapa buzzer diaktifkan secara langsung oleh tegangan (buzzer aktif), sedangkan yang lain memerlukan sirkuit pembangkit sinyal eksternal untuk menghasilkan suara (buzzer pasif).


B. Diagram Blok


3.)     Rangkaian Simulasi dan Prinsip Kerja [kembali]


Gambar rangkaian percobaan 4 kondisi 5

Prinsip Kerja:

Rangkaian ini bekerja dengan memanfaatkan pembacaan nilai potensiometer yang diubah menjadi sinyal digital melalui ADC (Analog-to-Digital Converter). Potensiometer yang diputar akan menghasilkan nilai antara 0 hingga 65535 (dalam format 16-bit), di mana putaran ke kanan meningkatkan nilai tersebut. Nilai ini kemudian dipetakan secara terbalik menjadi sudut servo 180° hingga 0° menggunakan fungsi `map_value`, sehingga ketika potensiometer diputar ke kanan (nilai membesar), servo bergerak searah jarum jam dari 180° menuju 0°. Konversi sudut ke _duty cycle_ PWM (1500-7500) memungkinkan kontrol presisi pada servo, di mana nilai 1500 sesuai dengan pulsa 0.5ms (0°) dan 7500 setara dengan 2.5ms (180°) dalam periode 20ms.  

Buzzer aktif akan berbunyi hanya ketika sudut servo berada di antara 0° dan 180° (tidak termasuk posisi ekstrim). Frekuensi buzzer diatur secara dinamis berdasarkan nilai potensiometer, mulai dari 200 Hz (nilai potensiometer rendah) hingga 2000 Hz (nilai potensiometer tinggi), menciptakan efek nada yang semakin tinggi seiring putaran potensiometer ke kanan. Volume suara dikontrol melalui _duty cycle_ PWM buzzer pada 30000 (sekitar 50% dari maksimal 65535), sementara di posisi 0° atau 180°, buzzer dimatikan dengan mengatur _duty cycle_ ke 0 untuk mencegah suara tidak diinginkan.  

Seluruh proses berjalan dalam loop kontinu dengan jeda 0.05 detik, memastikan respons real-time terhadap perubahan potensiometer. Sistem ini menggabungkan umpan balik visual (gerakan servo) dan audio (bunyi buzzer) untuk memberikan interaksi yang intuitif, di mana hubungan antara input mekanis (putaran potensiometer), output gerakan, dan suara terjalin secara harmonis melalui manipulasi sinyal PWM dan logika kondisional.

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 ===
    # 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]

 => 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 [disini]
Datasheet Raspberry Pi Pico [disini]
Datasheet Servo [disini]
Datasheet Buzzer [disini]
Datasheet Potensiometer [disini]
Video Simulasi [disini]



Komentar

Postingan populer dari blog ini