LA1 Modul 3 up&uc

[menuju akhir]


PERCOBAAN 4
UART ( Pico – Pico )

1. Prosedur[kembali]

1. Hubungkan kedua Raspberry Pi Pico ke laptop melalui USB (satu per satu saat upload program).

2. Setelah program diunggah ke masing-masing Pico, nyalakan keduanya secara bersamaan.

3. Putar potensiometer untuk mengubah nilai tegangan input.

4. Nilai analog akan dibaca oleh Pico TX, dikonversi, lalu dikirim melalui UART.

5. Pico RX akan menerima data, memproses, dan menampilkan nilai digital potensiometer pada layar LCD I2C secara real-time. 

6. Amati perubahan nilai di LCD saat potensiometer diputar.

7. Jika terjadi error dalam format data atau komunikasi, LCD akan menampilkan pesan "ERROR".


2. Hardware dan Diagram Blok[kembali]

  • Raspberry Pi Pico

  • Raspberry Pi Pico adalah mikrokontroler berbasis RP2040, yaitu chip buatan Raspberry Pi yang memiliki dual-core ARM Cortex-M0+ dengan kecepatan hingga 133 MHz. Mikrokontroler ini digunakan untuk berbagai proyek embedded system, seperti robotika, otomasi, dan pemrosesan sinyal, karena memiliki GPIO (General Purpose Input Output) yang fleksibel serta mendukung pemrograman dengan MicroPython dan C/C++.
  • Breadboard


  • Breadboard adalah sebuah papan yang digunakan untuk merancang dan menguji rangkaian elektronik secara sementara tanpa perlu menyolder komponen. Breadboard memungkinkan perakitan rangkaian secara cepat dan mudah, sehingga sangat berguna dalam prototyping dan eksperimen elektronik.

  • Jumper male to male


  • Kabel jumper Male to Male adalah kabel yang memiliki konektor jantan (male) di kedua ujungnya. Kabel ini biasanya digunakan untuk menghubungkan pin pada board elektronik, seperti Raspberry Pi, Arduino, atau breadboard, dengan komponen lainnya. Kabel jumper male to male sering digunakan dalam rangkaian prototyping atau percobaan karena fleksibilitas dan kemudahannya untuk digunakan.
  • lcd




        LCD yang kompatibel dengan Arduino, namun yang paling umum adalah tipe 16x2, yang         berarti layarnya dapat menampilkan 16 karakter dalam 2 baris. LCD ini biasanya                    memiliki pin untuk power, ground, input data, dan beberapa kontrol lainnya.

3. Rangkaian Simulasi dan Prinsip Kerja[kembali]

  • Rangkaian 

Sistem ini terdiri dari dua bagian utama: transmitter (TX) dan receiver (RX), yang masing-masing menggunakan Raspberry Pi Pico. Pada sisi TX, sebuah potensiometer terhubung ke pin ADC dari Pico dan digunakan sebagai sumber input analog. Mikrokontroler membaca nilai tegangan dari potensiometer, mengonversinya menjadi nilai digital 16-bit (rentang 0–65535), kemudian mengemas nilai tersebut dalam format teks seperti POT:<nilai>\n. Data ini dikirim secara serial melalui komunikasi UART menggunakan pin TX, dan juga ditampilkan di konsol Thonny untuk keperluan debugging.

Di sisi RX, Raspberry Pi Pico menerima data dari TX melalui pin RX menggunakan protokol UART dengan baudrate yang sama. Setiap kali data diterima, Pico mencoba memproses string tersebut. Jika format data sesuai (dimulai dengan "POT:"), maka nilai angka akan diekstrak dan ditampilkan pada layar LCD I2C. LCD ini terhubung melalui pin SDA dan SCL dan berfungsi sebagai antarmuka visual untuk menunjukkan nilai potensiometer secara real-time. Jika data yang diterima salah format atau gagal diproses, sistem akan menampilkan pesan "ERROR" beserta informasi kesalahan di layar LCD sebagai indikator kegagalan komunikasi atau parsing data.


4. Flowchart dan Listing Program [kembali]

TX
from machine import Pin, ADC, UART
import time
pot = ADC(26) # GPIO 26 (ADC0)
uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
while True:
pot_value = pot.read_u16() # Baca nilai (0-65535)
data = f"POT:{pot_value}\n" # Format: "POT:<nilai>\n"
uart.write(data)
print("Sent:", data.strip()) # Debug: Cek di Thonny
time.sleep(0.5)
RX
from machine import UART, I2C, Pin
from i2c_lcd import I2cLcd
from time import sleep
uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
i2c = I2C(0, sda=Pin(4), scl=Pin(5))
lcd = I2cLcd(i2c, 0x27, 2, 16) # Ganti 0x27 jika perlu
while True:
if uart.any():
raw_data = uart.readline()
try:
decoded_data = raw_data.decode('utf-8').strip()
print("Received RAW:", repr(raw_data)) # Tampilkan data mentah (termasuk \n)
print("Decoded:", decoded_data) # Data tanpa \n
if decoded_data.startswith("POT:"):
pot_value = int(decoded_data.split(':')[1])
lcd.clear()
lcd.putstr(f"Value:{pot_value}")
else:
raise ValueError("Format salah")
except Exception as e:
lcd.clear()
lcd.putstr("ERROR")
lcd.move_to(0, 1)
lcd.putstr(str(e)[:16]) # Tampilkan pesan error
print("Error:", e, "| Data:", raw_data)
sleep(0.1)

5. Analisa [kembali]




6. Video Simulasi [kembali]



7. Download file [kembali]
























[menuju awal]


Tidak ada komentar:

Posting Komentar

     BAHAN PRESENTASI     MATA KULIAH ELEKTRONIKA 2022 Oleh Zahara 2210953017 DOSEN PENGAMPU DR. DARWISON, M.T. Referensi  1. Darwison, 2010...

Postingan Populer