LA Modul 3 Up & Uc



Percobaan 6
  I2C (Pico – LCD)


1. Prosedur[Kembali]

1. Siapkan alat dan bahan yaitu dengan komponen utama Rapsberry Pi Pico, LCD, Potensiometer dan Motor Servo

2. Rangkai sesuai gambar percobaan
3. Rancang kerja rangkaian sesuai flowchat
4. Tekan tombol “Play” untuk menjalankan simulasi
5. Selesai.


2. Hardware dan Diagram Blok[Kembali]

Hardware :

  • Raspberry pi pico

  • Jumper Cable Wire


  • Beard board

  • Motor Servo





  • Potensiometer



  • LCD






3. Rangkaian Simulasi[Kembali]

Rangkailah seperti rangkaian percobaan 6 pada modul 3







  • Prinsip Kerja 
        Proses komunikasi I2C antara Raspberry Pi Pico dengan LCD (misalnya LCD 16x2 yang menggunakan modul I2C backpack) berlangsung sebagai berikut:

Raspberry Pi Pico bertindak sebagai master, sementara LCD sebagai slave. Pico akan menginisialisasi komunikasi dengan mengatur jalur SDA (data) dan SCL (clock) menggunakan pustaka seperti machine pada MicroPython atau Wire jika menggunakan C/C++.

Setelah itu, Pico mengirimkan alamat I2C dari LCD yang umumnya adalah 0x27 atau 0x3F, tergantung pada jenis backpack I2C yang digunakan. Alamat ini dikirim melalui jalur SDA, dan sinyal sinkronisasi dikendalikan oleh SCL.

Jika LCD mengenali alamat tersebut sebagai miliknya, maka ia akan memberikan sinyal ACK (acknowledge), yang berarti ia siap menerima data.

Selanjutnya Pico mengirimkan perintah (command) untuk mengatur mode LCD, seperti mengaktifkan tampilan, mengatur jumlah baris dan kolom, serta menentukan apakah data yang dikirim adalah karakter atau instruksi.

Setiap karakter yang ingin ditampilkan dikirim dalam bentuk data byte. LCD akan menerima byte ini, memprosesnya, dan menampilkan karakter pada posisi yang ditentukan di layar.

Komunikasi terus berlangsung dalam mode master-slave hingga semua karakter atau perintah dikirim. Setelah selesai, Pico mengirimkan sinyal stop untuk mengakhiri komunikasi.

Keseluruhan proses berlangsung secara sinkron dengan kecepatan standar I2C (biasanya 100 kHz) dan dapat dikonfigurasi sesuai kebutuhan.

 


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 Demo[Kembali]









6. Analisa[Kembali]





7. Download File[Kembali]

HTML [Download]
Listing Program [Download]
Video Simulasi [Download]  
Datasheet LCD [Download]
Datasheet Raspberry pi pico [Download]









Tidak ada komentar:

Posting Komentar

ELEKTRONIKA

 BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA C Disusun Oleh : Abdul Hadi Aldoreza 2210952008 Dosen Pengampu : Dr. Darwison, M.T JURUSAN ...