Laporan Akhir M3

 [KEMBALI KE MENU SEBELUMNYA]




1. Prosedur
 [Kembali]

1. Rangkai semua komponen pada breadboard yang terhubung ke mikrokontroler Raspberry Pi Pico.
2. Buat program untuk mikrokontroler Raspberry Pi Pico di software Thonny.
3. Inputkan program ke dalam mikrokontroler melalui USB.
4. Setelah program diinputkan, uji rangkaian yang telah dirangkai sesuai dengan output yang ditentukan.
5. Selesai.


2. Hardware dan Diagram Blok [Kembali]

Raspberry Pi Pico 

 

 

Potensiometer

 

Power Supply

 

3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]





Prinsip Kerja

Sistem ini menggunakan Raspberry Pi Pico sebagai pengendali utama yang mengatur hubungan antara potensiometer, motor servo, dan layar LCD melalui jalur komunikasi dan kontrol masing-masing. Potensiometer berfungsi sebagai sensor masukan yang menghasilkan tegangan analog sesuai dengan posisi rotasinya. Tegangan ini kemudian dibaca oleh pin ADC pada Raspberry Pi Pico dan diubah menjadi nilai digital yang mencerminkan sudut tertentu.

Nilai sudut yang diperoleh digunakan untuk mengatur posisi motor servo. Raspberry Pi Pico mengeluarkan sinyal PWM (Pulse Width Modulation) melalui salah satu pin digital, yang lalu dikirim ke pin sinyal pada servo. Motor servo akan merespons dengan memutar porosnya sesuai dengan lebar pulsa PWM yang diterimanyaselaras dengan nilai sudut dari potensiometer.

Di samping itu, Raspberry Pi Pico juga mengirimkan informasi sudut tersebut ke layar LCD menggunakan protokol komunikasi I2C melalui dua jalur, yaitu SDA dan SCL. Modul LCD berfungsi sebagai perangkat slave yang menerima data karakter dari Raspberry Pi Pico untuk ditampilkan secara langsung. Dengan cara ini, semua komponen dalam sistem berfungsi secara terintegrasi: potensiometer sebagai input, Raspberry Pi Pico sebagai pengolah dan pengendali, motor servo sebagai aktuator, serta LCD sebagai media keluaran informasi.



4. Flowchart dan Listing Program [Kembali]

Flowchart

Listing Program

from machine import Pin, ADC, PWM, I2C
from pico_i2c_lcd import I2cLcd
import utime

# === 1. Setup Potensiometer (GP26 = ADC0) ===
pot = ADC(Pin(26))

# === 2. Setup Servo (GP15) ===
servo = PWM(Pin(15))
servo.freq(50)  # Frekuensi PWM standar servo: 50 Hz

# === 3. Setup LCD I2C 16x2 ===
I2C_ADDR = 0x27  # Alamat I2C LCD, bisa juga 0x3F tergantung modul
I2C_NUM_ROWS = 2
I2C_NUM_COLS = 16
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)  # GP0 = SDA, GP1 = SCL
lcd = I2cLcd(i2c, I2C_ADDR, I2C_NUM_ROWS, I2C_NUM_COLS)

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

# === Kalibrasi Duty Cycle Servo ===
SERVO_MIN_DUTY = 1500   # Duty cycle untuk sudut 0°
SERVO_MAX_DUTY = 7500   # Duty cycle untuk sudut 180°

# === Loop utama ===
while True:
    # Baca nilai dari potensiometer (0 - 65535)
    pot_value = pot.read_u16()

    # Konversi ke sudut servo (0 - 180 derajat)
    angle = map_value(pot_value, 0, 65535, 0, 180)

    # Konversi sudut ke nilai duty cycle PWM
    duty = map_value(angle, 0, 180, SERVO_MIN_DUTY, SERVO_MAX_DUTY)
    servo.duty_u16(duty)

    # Tampilkan sudut pada LCD
    lcd.clear()
    lcd.putstr("Sudut Servo:")
    lcd.move_to(0, 1)
    lcd.putstr(f"{angle} derajat")

    utime.sleep_ms(200)  # Delay untuk mengurangi flicker layar LCD

5. Video Demo [Kembali]




6. Analisa [Kembali]





7. Link Download [Kembali]
Download File Rangkaian [Download]
Download Video Simulasi [Download]
Download Listing Program [Download]


Tidak ada komentar:

Posting Komentar

Popular Posts