LA mPuP M3 P4




Modul 3
Percobaan 4

1. Prosedur
[Kembali]

1. Rangkai rangkaian di wokwi sesuai dengan kondisi percobaan.
2. Buat program dengan bahasa python.
3. Jalankan simulasi rangkaian.
4. Selesai.

analisa :






2. Hardware dan Diagram Blok [Kembali]

Hardware :

a) Raspberry Pi Pico









2. Push Button






3. Motor Servo


4. LED RGB



5. Potensio





Diagram Blok  :




3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :








Prinsip Kerja Rangkaian:

  1. Pengaturan Potensiometer:

    • Potensiometer berfungsi sebagai input analog yang membaca nilai resistansi berdasarkan putaran knop.

    • Potensiometer ini terhubung ke salah satu pin ADC (Analog to Digital Converter) pada Raspberry Pi Pico bagian bawah.

    • Raspberry Pi Pico ini akan membaca nilai tegangan dari potensiometer, lalu mengubahnya menjadi nilai digital menggunakan ADC.

  2. Komunikasi Antara Dua Raspberry Pi Pico:

    • Kemungkinan besar, dua Raspberry Pi Pico ini berkomunikasi menggunakan protokol serial (UART) atau I2C/SPI.

    • Raspberry Pi Pico yang membaca nilai dari potensiometer akan mengirimkan data tersebut ke Raspberry Pi Pico lainnya.

  3. Menampilkan Data di LCD:

    • Raspberry Pi Pico bagian atas (terhubung ke LCD) akan menerima data dari Pico bawah.

    • Setelah menerima data, Pico ini akan mengirimkan perintah ke LCD 16x2 untuk menampilkan informasi, seperti nilai ADC dari potensiometer (misalnya: “Nilai: 512”).

  4. LCD 16x2:

    • LCD ini digunakan untuk menampilkan data secara visual kepada pengguna.

    • Jika LCD menggunakan antarmuka I2C, maka hanya dua kabel data (SDA dan SCL) yang digunakan.

    • Jika menggunakan mode paralel, akan terlihat lebih banyak kabel ke pin data dan kontrol.


4. Flowchart dan Listing Program [Kembali]

Flowchart :

   




Listing Program :

# KODE TX - Raspberry Pi Pico (Pembaca Potensiometer)
from machine import Pin, ADC, UART
import time

pot = ADC(26)  # Gunakan ADC0 pada GPIO26
uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))  # UART0: TX = GPIO0, RX = GPIO1

while True:
    pot_value = pot.read_u16()  # Baca nilai 16-bit dari potensiometer (0-65535)
    data = f"POT:{pot_value}\n"  # Format string data
    uart.write(data)  # Kirim data lewat UART
    print("Sent:", data.strip())  # Tampilkan data ke Thonny (debug)
    time.sleep(0.5)  # Delay 0.5 detik

# KODE RX - Raspberry Pi Pico (Penerima dan Penampil di 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))  # UART0: TX = GPIO0, RX = GPIO1
i2c = I2C(0, sda=Pin(4), scl=Pin(5))  # I2C0: SDA = GPIO4, SCL = GPIO5
lcd = I2cLcd(i2c, 0x27, 2, 16)  # Alamat I2C LCD (0x27 umum, bisa diganti)

while True:
    if uart.any():
        raw_data = uart.readline()
        if raw_data:
            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])
                print("Error:", e, "| Data:", raw_data)

    sleep(0.1)


5. Kondisi [Kembali]

Percobaan 4, sesuai percobaan yang ada pada modul.

6. Video Simulasi [Kembali]





7. Download File [Kembali]

Download File Rangkaian [Download]
Link Wokwi [Link]






















Komentar

Postingan populer dari blog ini