TP 1 M2 PRAK UP UC




Tugas Pendahuluan 1Modul 2
(Percobaan 4 Kondisi 4)

1. Prosedur
[Kembali]

1. Akses Wokwi melalui browser untuk mulai membuat rangkaian.

2. Buat program di wokwi sesuai dengan kondisi percobaan.

3. Compile dan jalankan program.

4. Amati hasil simulasi Wokwi dan pastikan berfungsi sesuai dengan kondisi.

5. Selesai.


2. Hardware dan Diagram Blok [Kembali]

Hardware:

1. Raspberry Pi Pico


2. Motor Servo


3. Buzzer


4. Potensiometer


Diagram Blok:




3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Sebelum dirunning:



Rangkaian Simulasi Setelah dirunning:
 




Prinsip Kerja : 

Rangkaian ini bekerja dengan memanfaatkan potensiometer sebagai alat input untuk mengendalikan arah dan sudut putaran motor servo, yang dikontrol oleh mikrokontroler Raspberry Pi Pico. Ketika nilai pada potensiometer diturunkan, Raspberry Pi Pico mendeteksi perubahan tersebut melalui pin ADC, kemudian mengolahnya untuk menggerakkan motor servo searah jarum jam. Pergerakan servo disesuaikan berdasarkan konversi nilai ADC ke dalam rentang sudut antara 0° hingga 180°. Selain itu, sistem ini dilengkapi dengan buzzer sebagai penanda batas gerak. Jika servo bergerak melewati batas sudut yang telah ditentukan—kurang dari 0° atau lebih dari 180°—maka buzzer akan berbunyi sebagai peringatan. Dengan cara ini, pengguna dapat mengatur sudut servo secara manual menggunakan potensiometer, sekaligus mendapatkan peringatan suara bila terjadi pelanggaran batas gerakan.


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)    # 50 Hz untuk servo
buzzer.freq(1000) # Frekuensi buzzer

# Fungsi mapping
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:
    # Baca nilai potensiometer
    pot_value = pot.read_u16()

    # Mapping nilai potensiometer ke sudut servo (DIBALIK supaya arah CCW saat potensiometer diperkecil)
    angle = map_value(pot_value, 0, 65535, 180, 0)  # <- 180 ke 0, bukan 0 ke 180!

    # Konversi sudut ke duty cycle (1638 - 8192 sesuai datasheet PWM servo)
    duty = map_value(angle, 0, 180, 1638, 8192)
    servo.duty_u16(duty)

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

    # === Buzzer ===
    if angle < 0 or angle > 180:
        buzzer.duty_u16(30000)  # Suara ON
    else:
        buzzer.duty_u16(0)      # Suara OFF

    sleep(0.05)



5. Kondisi [Kembali]

Percobaan 4 Kondisi 4:
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


6. Video Simulasi [Kembali]






7. Download File [Kembali]

Rangkaian [klik disini]
Video Simulasi [klik disini]
Listing Program [klik disini]











Komentar

Postingan populer dari blog ini

LA MODUL 4 UP UC

Transistor Testing

MODUL 1 - DIODA