Jumat, 16 Mei 2025

TP 1 Modul 2 Mikro



Tugas Pendahuluan 1

(Percobaan 4 kondisi 8)

1. Prosedur[Kembali]

  • 1. Rangkai semua komponen di Wokwi sesuai dengan percobaan pada modul 
  • 2. Buat program untuk Rspberry pi pico, sesuaikan konfigurasinya dengan rangkaian pada wokwi dan kondisi yang dipakai
  • 3. Masukkan Program ke wokwi (micropython)
  • Simulasikan rangkaian

2. Hardware dan Diagram Blok[Kembali]

1. Raspberry PI PICO

Blok Diagram :

3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

Rangkaian sebelum di running :



Rangkaian sesudah di running :




Prinsip Kerja : 

Jadi disini kita menggunakan wokwi untuk membuat rangkaiannya. Komponen yang kita gunakan adalah Servo, Buzzer, Raspberry Pi Pico, dan Potensiometer. Yang menjadi input untuk Raspberry Pi Pico adalah Potensiometer, sedangkan buzzer dan servo akan menjadi outputnya. 
Input dari potensiometer dihubungkan ke pin GP26 (yang merupakan pin ADC). Lalu servo dihubungkan ke pin GP16 dan buzzer ke pin GP14. Nilai analog dari potensiometer dibaca dan dikonversi menjadi sudut antara 0 hingga 180 derajat, sehingga ketika nilai potensiometer diperkecil, sudut servo juga ikut mengecil. Hal ini menyebabkan servo bergerak melawan arah jarum jam saat potensiometer dikecilkan. Lalu pada programnya, kita menggunakan loop "while" yang mana kita akan membuat kondisi "if" jika sudut <0 dan >180, maka buzzer akan aktif. Dan kondisi "else" jika 0<sudut<180 maka buzzer akan off. Sistem membaca input potensiometer terus-menerus, mengubah posisi servo, dan memantau apakah buzzer perlu diaktifkan. 

4. Flowchart dan Listing Program[Kembali]

Flowchart :



Listing Program :
from machine import Pin, PWM, ADC #Mengimpor modul kontrol hardware: Pin digital, PWM, dan ADC (analog)
from time import sleep #Mengimpor fungsi sleep untuk delay

# Inisialisasi
pot = ADC(26)  # Inisialisasi input analog (potensiometer) pada pin GP26 (ADC0)
servo = PWM(Pin(16)) #Inisialisasi output PWM ke servo pada pin GP16
buzzer = PWM(Pin(14)) # Inisialisasi output PWM ke buzzer pada pin GP14

# Konfigurasi PWM
servo.freq(50)   # Mengatur frekuensi PWM servo ke 50 Hz (frekuensi standar servo motor)
buzzer.freq(1000)  # Mengatur frekuensi buzzer ke 1000 Hz (standar suara buzzer aktif)
python
Salin kode

def map_value(value, in_min, in_max, out_min, out_max): # Fungsi untuk memetakan nilai dari satu rentang ke rentang lain
    return int((value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)

while True: # Loop utama (berjalan terus menerus)
    pot_value = pot.read_u16()  # Membaca nilai ADC dari potensiometer (range: 0 - 65535)

    # Konversi ke sudut servo (0° - 180°)
    angle = map_value(pot_value, 0, 65535, -1, 181) # Konversi nilai potensiometer ke sudut (range: -1 hingga 181)

    # Validasi sudut dan kontrol buzzer
    if angle < 0 or angle > 180: # Jika sudut di luar batas normal
        buzzer.duty_u16(30000)  # Aktifkan buzzer (nilai PWM menengah)
    else:
        buzzer.duty_u16(0)      # Jika sudut valid, matikan buzzer

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

    # Debug output
    print(f"Pot Value: {pot_value}, Angle: {angle}, Duty: {duty}") # Menampilkan nilai potensiometer, sudut, dan PWM di terminal

    sleep(0.05) # Delay 50ms agar tidak terlalu cepat berubah



5. 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

6. Video Simulasi[Kembali]



7. Download File[Kembali]

Download File Rangkaian [download]
Download Video Simulasi [download]
Datasheet Raspberry Pi Pico [download]


Related Posts:

0 komentar:

Posting Komentar