LA Percobaan 4






1. Prosedur [Kembali]
  • Rangkai semua komponen pada motherboard sesuai dengan percobaan pada modul 
  • Buat program untuk Raspberry Pi Pico di Thonny IDE, sesuaikan konfigurasinya dengan rangkaian yang telah dibuat dan kondisi yang dipakai pada modul
  • HUbungkan program dengan rangkaian yang telah dibuat
  • Simulasikan rangkaian

2. Hardware dan Diagram Blok[Kembali]

  • Rasberry Pi Pico

  • Potensiometer


  • Motor Servo


  • Buzzer


3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

Rangkaian Simulasi: 




Prinsip Kerja:
  1. 1. Input: Potensiometer ke ADC

    • Potensiometer menghasilkan tegangan variabel antara 0V hingga 3.3V.

    • Tegangan ini dibaca oleh pin ADC di Raspberry Pi Pico.

    • Fungsi: mengatur nilai input yang akan memengaruhi servo dan buzzer.


    2. Pemrosesan: Raspberry Pi Pico

    • Nilai analog dari potensiometer diubah menjadi nilai digital (0–65535) menggunakan modul ADC.

    • Nilai ini kemudian digunakan untuk:

      • Mengatur posisi servo motor (melalui PWM).

      • Menyalakan buzzer jika nilai melampaui batas tertentu.


    3. Output:

    a. Servo Motor (PWM Output)

    • Pico menghasilkan sinyal PWM (frekuensi ~50Hz).

    • Duty cycle PWM menentukan posisi sudut servo (biasanya antara 0° hingga 180°).

    • Semakin besar nilai potensiometer, semakin besar sudut servo.

    b. Buzzer (Digital Output)

    • Buzzer bisa diaktifkan secara digital (GPIO HIGH) jika:

      • Sudut servo lebih dari batas tertentu (misalnya 150°).

      • Atau jika potensiometer mencapai nilai tertentu (misalnya 90%).

Fungsi Rangkaian:

  • Rangkaian ini adalah sistem kendali sederhana berbasis Raspberry Pi Pico yang memanfaatkan:

    • ADC untuk membaca input analog dari potensiometer,

    • PWM untuk mengendalikan sudut servo motor,

    • serta digital output untuk mengaktifkan buzzer saat kondisi tertentu terpenuhi.

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. Kondisi[Kembali]
Buatlah Rangkaian seperti gambar percobaan 4

6. Video Simulasi[Kembali]




7. Download File[Kembali]

Download Project Klik Disini
Download Video Klik Disini
Datasheet Raspberry Pi Pico [Download]
Datasheet Resistor [Download]
Datasheet LED [Download]

Komentar

Postingan populer dari blog ini

Tugas Besar (Parkir Otomatis)