Laporan Akhir 1 Modul 3

  



Laporan Akhir 1 Modul 3

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]

Hardware :

Hardware :

Raspberry Pi Pico 

 

 

Potensiometer

 



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]






Sistem ini menggunakan Raspberry Pi Pico sebagai pengendali utama yang mengatur interaksi antara potensiometer, motor servo, dan LCD melalui jalur komunikasi dan kendali masing-masing. Potensiometer berfungsi sebagai sensor input yang menghasilkan tegangan analog berdasarkan posisi putarnya. Tegangan ini dibaca oleh pin ADC pada Raspberry Pi Pico dan dikonversi menjadi nilai digital yang merepresentasikan sudut tertentu.


Nilai sudut ini digunakan untuk mengontrol posisi motor servo. Raspberry Pi Pico menghasilkan sinyal PWM (Pulse Width Modulation) melalui salah satu pin digital, lalu mengirimkannya ke pin sinyal servo. Motor servo merespons dengan memutar porosnya sesuai lebar pulsa PWM yang diterima, mengikuti nilai sudut dari potensiometer. Raspberry Pi Pico juga mengirimkan informasi sudut tersebut ke LCD menggunakan protokol I2C melalui dua jalur, SDA dan SCL. Modul LCD sebagai slave menerima data karakter dari Raspberry Pi Pico untuk ditampilkan secara real-time. Dengan cara ini, seluruh komponen bekerja secara terintegrasi: potensiometer sebagai input, Raspberry Pi Pico sebagai pengendali, motor servo sebagai aktuator, dan LCD sebagai media output.


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. Download File [Kembali]

Download HTML [Download]
Download File Rangkaian [Download]
Download Video Simulasi [Download]
Download Raspberry pipico[Download]

Komentar

Postingan populer dari blog ini

PERANGKAT LUNAK

Modul 2

Laporan Akhir 1 Modul 1