Laporan Akhir M3




PERCOBAAN 4

1. Prosedur[Kembali]

  • Rangkai semua komponen sesuai dengan percobaan 4 pada modul 
  • Buat program untuk Rspberry pi pico, sesuaikan konfigurasinya dengan rangkaian dan kondisi yang dipakai
  • Upload program ke Raspberry Pi Pico

2. Hardware dan Diagram Blok[Kembali]

1. Raspberry PI PICO



2. Potensio


3. LCD


3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

Rangkaian: 



Prinsip Kerja:

Pada percobaan kali ini  pertama tama inputan dimasukan dari potensio ke rasberry pi pico yang dimana kedua hubungan ini menggunkan komunikasi uart, selanjutnya dari rasberry pi pico pertama dan kedua itu menggunakan komunikasi spi yang dimana rasberry pi pico pertama bertindak sebagai master (transmitter) dan rasberry pi pico kedua bertindak sebagai slave (receiver), dan selanjutnya dari rasberry pi pico kedua ke LCD itu menggunkan komunikasi i2c  .


4. Flowchart dan Listing Program[Kembali] 




Listing Program:

TX

from machine import Pin, ADC, UART
import time

# Inisialisasi ADC di GPIO26
pot = ADC(26)  # ADC0

# Inisialisasi UART0 dengan TX=Pin0 dan RX=Pin1
uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))

while True:
    pot_value = pot.read_u16()  # Baca nilai ADC (0 - 65535)
    data = f"POT:{pot_value}\n"  # Format data yang dikirim
    uart.write(data)  # Kirim data lewat UART
    print("Sent:", data.strip())  # Tampilkan data yang dikirim
    time.sleep(0.5)  # Tunggu 0.5 detik

RX

from machine import UART, I2C, Pin
from i2c_lcd import I2cLcd
from time import sleep

# Inisialisasi UART0
uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))

# Inisialisasi I2C untuk LCD (ubah alamat I2C jika perlu)
i2c = I2C(0, sda=Pin(4), scl=Pin(5))
lcd = I2cLcd(i2c, 0x27, 2, 16)  # 2 baris, 16 karakter

while True:
    if uart.any():
        raw_data = uart.readline()  # Baca data dari UART

        try:
            decoded_data = raw_data.decode('utf-8').strip()
            print("Received RAW:", repr(raw_data))
            print("Decoded:", decoded_data)

            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])  # Batasi pesan error agar muat di LCD
            print("Error:", e, "| Data:", raw_data)

        sleep(0.1)




5. Analisa[Kembali]





6. Video Demo[Kembali]








7. Download File[Kembali]

Video simulasi [download]
Datasheet Raspberry Pi Pico [Download]









Komentar

Postingan populer dari blog ini

Modul 1 Pratikum Mikro

Modul 1 Pratikum Sistem Digital

Modul 2 Pratikum SISDIG