- 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).
-
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.
-
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.
-
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.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.
-
Amati tampilan pada LCD, di mana nilai sudut servo yang sedang aktif akan ditampilkan
Laporan Akhir M3
Laporan Akhir Modul 3
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi
Prinsip Kerja :
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]
Datasheet Potensiometer Download
Langganan:
Postingan (Atom)
Kelebihan dan Kekurangan Seorang Pemimpin
Kelebihan dan Kekurangan Seorang Pemimpin Seorang pemimpin memainkan peran penting dalam keberhasilan sebuah organisasi, komunitas, atau ne...
-
Bahan Presentasi Untuk Mata Kuliah Elektronika B 2023-2024 Disusun Oleh: Dicky Setiawan NIM : 2210952051 Dosen Pengampu : Dr. Darwison ,MT R...
-
Kelebihan dan Kekurangan Seorang Pemimpin Seorang pemimpin memainkan peran penting dalam keberhasilan sebuah organisasi, komunitas, atau ne...
Tidak ada komentar:
Posting Komentar