Laporan Akhir modul 3 mikro




Laporan Akhir 1 Modul 3
(Percobaan 4)

1. Prosedur
[Kembali]
1. Rangkai rangkaian sesuai dengan kondisi percobaan.
2. Buat program untuk Raspberry pi pico di software ThonyIDE.
3. Upload program dari ThonyIDE ke Raspberry Pi Pico.
4. Masukkan Library Lcd pada bagian Rx
5. Jalankan program, dan lcd akan menampilkan besaran nilai dari potensiometer
4. Selesai. 

2. Hardware dan Diagram Blok [Kembali]

Hardware :

Diagram Blok :



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]


Rangkaian Simulasi




Prinsip Kerja : 

  Rangkaian ini bekerja dengan prinsip komunikasi serial UART antara dua Raspberry Pi Pico, di mana Pico pertama (TX) membaca nilai analog dari potensiometer melalui pin ADC (GP26), mengubahnya menjadi data digital 16-bit, lalu mengirimkannya dalam format string "POT:<nilai>" melalui UART0 (TX=GP0, RX=GP1). Pico kedua (RX) menerima data ini, memprosesnya, dan menampilkan nilai tersebut pada LCD 16x2 berbasis I2C (SDA=GP4, SCL=GP5). Sistem ini memungkinkan pemantauan nilai potensiometer secara real-time, dan dilengkapi dengan penanganan error untuk menampilkan pesan kesalahan jika format data tidak sesuai.

4. Flowchart dan Listing Program [Kembali]

Flowchart :


Listing Program :

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




7. Download File [Kembali]

Datasheet Raspberry Pi Pico  Download
Datasheet Buzzer Download
Datasheet Motor Servo Download
















Komentar

Postingan populer dari blog ini

BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA 2022