LAPORAN AKHIR MODUL 3 PRAKTIKUM MIKROKONTROLLER

 [KEMBALI KE MENU SEBELUMNYA]



PERCOBAAN 2 : kondisi 5

1. Prosedur[Kembali]
  1. Rangkai semua komponen 
  2. Buat program di aplikasi Thonny
  3. Jalankan program dan inputkan program 
  4. Jalankan rangkaian

2. Hardware dan Diagram Blok[Kembali]
Hardware :

1. Raspberry Pi Pico



2.  LCD





3. Potensiometer



Diagram Blok  :


3. 


  • Rangkaian Simulasi
Prinsip Kerja : 

Rangkaian ini terdiri dari beberapa komponen, yaitu dua unit Raspberry Pi Pico, sebuah potensiometer, dan sebuah LCD. Proses dimulai dari input yang diberikan melalui potensiometer, kemudian data tersebut dikirim dan diproses oleh Raspberry Pi Pico. Raspberry Pi Pico pertama (UART 1) berperan sebagai pengirim (TX) dan mengirimkan data ke Raspberry Pi Pico kedua (UART 2) yang berfungsi sebagai penerima (RX) menggunakan protokol komunikasi UART (Universal Asynchronous Receiver-Transmitter). Setelah diproses, data akan ditampilkan pada LCD melalui protokol komunikasi I2C. Seluruh sistem ini dijalankan menggunakan program yang telah diunggah ke dalam Raspberry Pi Pico. 




4. Flowchart dan Listing Program[Kembali]

Flowchart :



Listing Program :

TX (Pengirim - Raspberry Pi Pico):

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 (Penerima - Raspberry Pi Pico + LCD I2C):

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))  # Data mentah
            print("Decoded:", decoded_data)         # Data bersih

            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])  # Maks 16 karakter error
            print("Error:", e, "| Data:", raw_data)

    sleep(0.1)

5. Video Demo[Kembali]





6. Analisa[Kembali] 





































7. Download File[Kembali]
















Tidak ada komentar:

Posting Komentar

   Bahan Presentasi Mata kuliah Elektronika TA Semester Genap 2023 Dosen Pengampu : Darwison, M.T. Oleh : Ahmad Bukhari 2210952018 A. Darwis...