Percobaan 6
I2C (PICO - LCD)
- Rangkai dengan inputnya yaitu potensiometer dan outputnya yaitu 1 motor servo. Kemudian LCD I2C sebagai slave dan raspberry pi pico sebagai master.
- Buatlah program dengan konfigurasi pin input dan output berdasarkan pada pin GP Raspberry yang telah dirangkai sebelumnya. Kemudian buatlah program untuk menghasilkan output motor servo bergerak searah jarum jam.
- Buat inisialisasi program LCD I2C, LCD diatur sebagai slave yang akan menampilkan data sudut servo
- Run program, putar potensiometer untuk melihat output motor servo dan tulisan sudut servo beserta nilainya
- Program selesai
2. Hardware dan Diagram Blok[Kembali]
A. Hardware
B. Blok Diagram
3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]
A. Rangkaian Simulasi
B. Prinsip Kerja
4. Flowchart dan Listing Program[Kembali]
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 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°
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 di 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
Rangkaian Simulasi Klik Disini
Video Demo Klik Disini
DataSheet Raspberry Pi Pico Klik Disini
DataSheet Potensiometer Klik Disini
DataSheet I2C LCD Klik Disini
DataSheet Motor Servo Klik Disini
Tidak ada komentar:
Posting Komentar