2. Alat dan Bahan [Kembali]
Hardware
1) Laptop yang sudah terinstal Software Thonny
2) Port sambungan kabel dari laptop ke Raspberry Pi Pico(USB)
3) White Board atau Project Board
4) Raspberry Pi Pico
5) Potensiometer
7) Jumper
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian
Prinsip Kerja :
Berdasarkan gambar rangkaian yang ditampilkan, sistem ini menggunakan Raspberry Pi Pico sebagai pusat kendali utama yang mengatur kerja potensiometer, motor servo, dan LCD melalui jalur komunikasi dan kontrol masing-masing. Raspberry Pi Pico membaca input analog dari potensiometer melalui salah satu pin ADC (Analog to Digital Converter). Potensiometer berfungsi sebagai sensor input yang mengubah posisi putarannya menjadi sinyal tegangan analog. Tegangan ini kemudian dikonversi oleh mikrokontroler menjadi nilai digital yang mewakili sudut tertentu. Nilai sudut ini digunakan untuk mengatur posisi motor servo. Raspberry Pi Pico menghasilkan sinyal PWM (Pulse Width Modulation) dari salah satu pin digitalnya, yang dikirim ke pin sinyal pada motor servo. Motor servo kemudian merespons sinyal PWM tersebut dengan mengubah posisi porosnya sesuai dengan lebar pulsa yang diterima, yang mencerminkan nilai sudut dari potensiometer.
Selain mengendalikan servo, Raspberry Pi Pico juga mengirimkan informasi sudut tersebut ke LCD menggunakan protokol komunikasi I2C melalui dua jalur yaitu SDA dan SCL. Modul LCD berperan sebagai slave I2C yang menerima data karakter dari mikrokontroler untuk ditampilkan di layar. Dengan demikian, sistem ini bekerja secara terintegrasi di mana potensiometer sebagai input menghasilkan nilai tegangan, Raspberry Pi Pico memproses dan menerjemahkan nilai tersebut menjadi sinyal kontrol untuk motor servo, sekaligus menampilkan nilai sudutnya secara real-time pada layar 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 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
5. Video Penjelasan [Kembali]
Soal analisa :
1. Analisa bagaimana konfigurasi rangkaian dan program dari percobaan yang telah dilakukan!
jawab:
Pada percobaan 6, rasspberry pi pico digunakan sebagai motor I2C yang membaca nilai potensiometer melalui pin ADC dan mengatur posisi servo menggunakan PWM. Data sudut servo kemudian ditampilkan pada LCD kumunikasi I2C terjadi melalui pin SDA dan SCL dan dari program tersebut potensiometer dirubah menjadi sudut dikonversi ke bentuk teks, lalu dikirimkan dan ditampilkan di LCD
2. Jelaskan bagaimana proses yang terjadi pada percobaan (UART Dan I2C)!
jawab:
UART merupakan kumonikasi serial yang bersifat asynchronous, menggunakan 2 jalur yaitu Tx dan Rx tanpa sinyal clock. UART digunakan untuk mengirim data berupa dari STM32 ke rasspberry pi pico, sementara itu I2C merupakan komunikasi serial synchronous yang menggunakan 2 jalur yaitu SDA dan SCL dengan sistem master slave. Dalam percobaan ini ,rasspberry pi pico bertindak sebagai master yang mengirim data ke LCD sebagai slave. Data yang diterima melalui UART dari STM32 kemudian diteruskan ke LCD melalui protokol I2C untuk ditampilkan.
3. Jelaskan bagaimana proses data dikirimkan hingga dapat tampil sebagai karakter LCD!
jawab:
Dimulai dari pembacaan nilai analog potensiometer oleh rasspberry pi pico melalui pin ADC. Nilai tersebut kemudian dikonversi menjadi sudut servo dan dirubah ke format teks. Selanjutnya ,data teks ini dikirim ke LCD menggunakan protokol I2C. LCD menerima data tersebut melalui jalur SDA dan SCL, lalu menampilkannya dalam bentuk karakter sesuai posisi yang diatur di layar LCD.
Komentar
Posting Komentar