Laporan Akhir M3




Laporan Akhir Modul 3


1. Prosedur
[Kembali]

  1. Rangkai komponen sesuai gambar rangkaian pada percobaan, dengan input berupa potensiometer yang terhubung ke pin GP26 (ADC0) pada Raspberry Pi Pico, dan output berupa servo motor yang terhubung ke pin GP15 (PWM) serta LCD I2C 16x2 yang terhubung ke SDA (GP0) dan SCL (GP1).

  2. Hubungkan kabel jumper sesuai konfigurasi pin yang digunakan pada program. Pastikan koneksi potensiometer, pin PWM servo, dan koneksi I2C ke LCD sudah sesuai dan kuat.

  3. Buat program dengan konfigurasi sebagai berikut:

    • Input potensiometer di GP26 (ADC),

    • Output servo motor di GP15 (PWM),

    • Output tampilan LCD menggunakan I2C dengan alamat 0x27, baris 2 dan kolom 16 karakter.

  4. Upload program ke Raspberry Pi Pico menggunakan Thonny IDE. Pastikan program berhasil dijalankan dan disimpan sebagai main.py agar dapat berjalan otomatis saat Pico dinyalakan.

  5. Putar potensiometer dan amati perubahan sudut pada servo motor. Nilai analog dari potensiometer dikonversi ke sudut 0°–180°, kemudian dikonversi ke sinyal PWM yang menggerakkan servo.

  6. Amati tampilan pada LCD, di mana nilai sudut servo yang sedang aktif akan ditampilkan



2. Hardware dan Diagram Blok [Kembali]

Hardware :

Diagram Blok :


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]


Rangkaian Simulasi

Prinsip Kerja : 

  Pada percobaan ini, prinsip kerja dimulai dari pembacaan nilai analog dari potensiometer oleh Raspberry Pi Pico melalui pin GP26 yang berfungsi sebagai input ADC. Nilai analog yang terbaca berkisar antara 0 hingga 65535, kemudian dikonversi menjadi nilai sudut antara 0 hingga 180 derajat menggunakan fungsi pemetaan (mapping). Nilai sudut ini kemudian dikonversi kembali menjadi sinyal PWM (Pulse Width Modulation) dengan duty cycle tertentu yang sesuai dengan posisi sudut servo, lalu dikirimkan melalui pin GP15 untuk mengatur posisi servo motor. Semakin besar nilai potensiometer, maka sudut putar servo juga akan semakin besar. Selain itu, nilai sudut yang sama juga ditampilkan pada LCD I2C 16x2 menggunakan komunikasi I2C melalui pin GP0 (SDA) dan GP1 (SCL). Pesan yang ditampilkan pada LCD berisi informasi “Sudut Servo:” di baris pertama dan nilai sudut dalam satuan derajat di baris kedua. Seluruh proses berjalan secara terus-menerus dalam loop, sehingga perubahan posisi potensiometer secara real-time akan mempengaruhi posisi servo dan tampilan data pada LCD.

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

# 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
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 servo
SERVO_MIN_DUTY = 1500   # Duty cycle untuk 0°
SERVO_MAX_DUTY = 7500   # Duty cycle untuk 180°

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

    # Konversi ke sudut 0–180°
    angle = map_value(pot_value, 0, 65535, 0, 180)

    # Konversi sudut ke duty cycle
    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")

    # Delay untuk mengurangi flicker
    utime.sleep_ms(200)


5. Analisa  [Kembali]



6. Video Demo [Kembali]



7. Download File [Kembali]

Video Demo Download
Datasheet Raspberry Pi Pico  Download
Datasheet Potensiometer Download
Datasheet Motor Servo Download
Datasheet I2C LCD Download















Tidak ada komentar:

Posting Komentar

Kelebihan dan Kekurangan Seorang Pemimpin 

Kelebihan dan Kekurangan Seorang Pemimpin  Seorang pemimpin memainkan peran penting dalam keberhasilan sebuah organisasi, komunitas, atau ne...