TP 1 MIKRO M2




PERCOBAAN 4 KONDISI 8

1. Prosedur[Kembali]

  • Membuat rangkaian di proteus sesuai dengan kondisi 4 percobaan 8.
  • Buat program untuk Raspbery Pi Pico di software Wokwi Simulator.
  • Setelah program selesai di upload, jalankan simulasi rangkaian pada software wokwi.
  • Untuk uji coba adanya gerakan servo motor, potensiometer divariasikan nilainya untuk mengubah putaran servo motor.
  • Selesai.


2. Hardware dan Diagram Blok[Kembali]

A. Hardware 
1. Software Wokwi Simulator


2. Raspbery Pi Pico


3. Buzzer 



4. Potensiometer 



5. Servo Motor 

B. Blok Diagram



3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

Rangkaian Simulasi: 




Prinsip Kerja:

Rangkaian ini bekerja dengan menghubungkan potensiometer sebagai input untuk mengatur posisi sudut dari motor servo, dan memberikan peringatan melalui buzzer jika sudut yang diatur melewati batas normal.

Saat potensiometer diputar, nilai resistansinya berubah, menghasilkan tegangan analog yang dibaca oleh pin ADC dari Raspberry Pi Pico. Nilai tegangan ini kemudian dikonversi secara digital menjadi angka 16-bit (antara 0 hingga 65535). Angka ini diolah dalam program untuk menentukan sudut tujuan servo. Jika sudut masih dalam batas aman (antara 0 hingga 180 derajat), Raspberry Pi Pico mengirimkan sinyal PWM ke servo agar bergerak ke sudut tersebut. Namun, jika sudut berada di luar rentang (misalnya -30 atau 210 derajat), servo tetap dibatasi agar tidak bergerak ke luar area aman, dan sebagai gantinya buzzer akan menyala sebagai peringatan bahwa input tidak sesuai.

Secara keseluruhan, potensiometer mengatur sudut, servo bergerak mengikuti, dan buzzer menjadi sistem peringatan jika potensiometer diputar terlalu jauh.

4. Flowchart dan Listing Program[Kembali] 


Flowchart:








Listing Program:

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

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

servo.freq(50)
buzzer.freq(1000)

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()

    # Biarkan sudut bisa < 0 dan > 180
    angle = map_value(pot_value, 0, 65535, -30, 210)

    # Batasi duty cycle tetap aman untuk servo
    duty = map_value(min(max(angle, 0), 180), 0, 180, 1500, 7500)
    servo.duty_u16(duty)

    # Buzzer nyala kalau sudut di luar batas normal
    if angle < 0 or angle > 180:
        buzzer.duty_u16(30000)
    else:
        buzzer.duty_u16(0)

    print(f"Pot: {pot_value}, Angle: {angle}, Duty: {duty}")
    sleep(0.05)


5. Kondisi[Kembali]
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]

Download HTML [Download]
Download File Rangkaian [Download]
Download Video Simulasi [Download]
Download Listing Program [Download]
Datasheet Raspberry pi pico [Download]
Datasheet Potensiometer [Download]
Datasheet Motor Servo [Download]



Komentar

Postingan populer dari blog ini