Rabu, 07 Mei 2025

Tugas Pendahuluan Modul 2 Up & Uc Percobaan 2






1. Prosedur [kembali]
    Langkah-langkah percobaan :

        1. Siapkan alat dan bahan yaitu dengan komponen utama Rapsberry Pi Pico, Potensiometer, Buzzer dan Motor Servo.

        2. Rangkai sesuai gambar percobaan

        3. Rancang kerja rangkaian sesuai flowchat

        4. Tekan tombol “Play” untuk menjalankan simulasi



2. Hardware dan Diagram Blok [kembali]
        A. Hardware
            1. Rapsberyy Pi Pico



            2. Potensiometer






            3. Motor Servo





            4. Buzzer




                      B. Blok Diagram


3. Rangkaian Simulasi dan Prinsip Kerja [kembali]


    Pada rangkaian terdiri dari rapsberry pi pico, Potensiometer, Buzzer dan Motor servo. Prinsip kerjanya ketika potensiometer digeser maka akan memengaruhi buzzer apakah aktif atau tidak, sesuai kondisi diantara sudut 0 derajat hingga 180 derajat, maka buzzer akan aktif . Sementara pada motor servo akan memengaruhi pergeseran motor berdasarkan tingkat sudut bergesernya potensiometernya, pada kondisi yang digunakan maka servo akan bergeser dan bergerak berlawanan arah jarum jam ketika potensiometer kita gerakan searah jarum jam.

4. Flowchart dan Listing Program [kembali]
        A. Flowchart


        B. 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)  # Set 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)
   
    # Membaca nilai potensiometer
    pot_value = pot.read_u16()
   
    # Karena kamu mau *berlawanan jarum jam* saat potensiometer membesar,
    # maka kita balik mappingnya: besar pot → kecil sudut
    angle = map_value(pot_value, 0, 65535, 180, 0)
   
    # Konversi sudut ke duty cycle untuk servo
    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 Control ===
    if 0 < angle < 180:
        freq = int(200 + (val / 65535) * (2000 - 200))  # Mapping frekuensi
        buzzer.freq(freq)
        buzzer.duty_u16(30000)  # Buzzer berbunyi
    else:
        buzzer.duty_u16(0)  # Buzzer mati
   
    sleep(0.05)


5. Kondisi [kembali]

       - Percobaan 4 Kondisi 6

       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]

Tidak ada komentar:

Posting Komentar

LAPORAN AKHIR DEMO PROJECT PRAKTIKUM MIKROPROSESOR & MIKROKONTROLER

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Komponen 4. Landasan Teori 5. Flowchart dan ...