LA MODUL 3


LA 2- Percobaan 3


1. Prosedur 
[Kembali]
  1. Buat rangkaian seperti yang ada pada percobaan 4 modul 3
  2. setelah selesai membuat rangkaian,
  3. Buka Aplikasi THONYIDE  Laptop anda
  4. Kemudian buat program  berdasarkan perintah yag ada di modul
  5. setalah rangkaian hardware selesai hubungkan ke Laptop
  6. Amati dan Analisa simulasi rangkaian berdasarkan panduan di modul
2. Hardware dan Diagram Blok [Kembali]

Hardware :

a) Raspberry Pi Pico
Raspberry Pi Pico adalah papan rangkaian elektronik yang di dalamnya terdapat komponen utama chip mikrokontroler RP2040, yang dirancang dan diproduksi oleh Raspberry Pi Foundatio. Tidak seperti komputer mini raspberry Pi lainnya yang menjalankan sistem operasi seperti Linux, Pico dirancang untuk tugas-tugas yang lebih sederhana dan langsung (embedded system), seperti membaca sensor, mengontrol perangkat, atau melakukan pengolahan data pada tingkat hardware.




Spesifikasi









b) Potensiometer
Potensiometer adalah komponen elektronika jenis resistor variabel yang digunakan untuk mengatur atau membagi tegangan dalam sebuah rangkaian listrik. Potensiometer memiliki tiga terminal, yaitu dua terminal di ujung jalur resistif dan satu terminal wiper (penggeser) yang bergerak di sepanjang jalur tersebut. Dengan memutar poros atau menggeser tuas potensiometer, pengguna dapat mengubah posisi wiper sehingga nilai resistansi antara terminal tengah dan salah satu ujung berubah. Perubahan resistansi ini akan menghasilkan variasi tegangan pada output yang dapat dimanfaatkan sebagai sinyal input analog, seperti untuk mengontrol kecerahan lampu, volume suara, atau sudut motor servo. Potensiometer banyak digunakan dalam perangkat elektronik karena kemampuannya mengubah sinyal secara halus dan presisi, serta mudah dioperasikan secara manual oleh pengguna.





Spesifikasi :
SpesifikasiKeterangan
Jenis PotensiometerRotary (putar) / Slide (geser)
TipeLinear (linier taper) / Logarithmic (log taper)
Nilai Resistansi1 kΩ, 5 kΩ, 10 kΩ (paling umum), 50 kΩ, hingga 1 MΩ
Tegangan OperasiHingga 5V atau 3.3V (disesuaikan dengan sistem mikrokontroler)
OutputTegangan analog (antara 0 – Vcc) tergantung posisi knob
Jumlah Pin3 pin: Vcc, Ground (GND), dan Output (wiper)
Toleransi Resistansi±10% hingga ±20% tergantung jenis dan kualitas
Sudut RotasiSekitar 270° (untuk rotary potensiometer standar)
Daya MaksimumBiasanya antara 0.1W hingga 0.5W (tergantung ukuran dan tipe)
Dimensi ShaftUmumnya 6 mm diameter, panjang 15 – 20 mm (untuk knob standar)
Tipe PemasanganTHT (Through-Hole) / Panel Mount / SMD (Surface Mount)
BahanPlastik karbon, metal film, atau wire wound (untuk akurasi tinggi)





Diagram Blok  :


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Gambar Rangkaian





Prinsip Kerja :

Prinsip Kerja Rangkaian

Rangkaian ini terdiri dari dua Dev.board, yaitu board pengirim (TX) dan board penerima (RX) yang berkomunikasi menggunakan protokol UART, serta menampilkan data hasil pembacaan sensor ke LCD berbasis I2C.

1. Bagian TX (Pengirim Data Analog dalam Bentuk Digital)

Pada sisi pengirim, terdapat potensiometer yang terhubung ke pin GPIO 26 (ADC0) dari Dev.board (misalnya Raspberry Pi Pico). Potensiometer ini menghasilkan tegangan analog yang kemudian dibaca oleh ADC internal menggunakan perintah pot.read_u16(), yang akan menghasilkan nilai digital antara 0 hingga 65535.

Setelah membaca nilai tersebut, data diformat menjadi string dengan awalan "POT:", contohnya "POT:32768\n", lalu dikirimkan melalui UART TX (GPIO 0) ke board penerima. Kecepatan pengiriman (baud rate) disetel pada 9600 bps agar sinkron dengan RX. Proses pengiriman dilakukan secara terus-menerus setiap 0.5 detik dengan jeda time.sleep(0.5).

2. Bagian RX (Penerima dan Penampil Data ke LCD)

Pada sisi penerima, board menggunakan UART RX (GPIO 1) untuk menerima data dari pengirim. Setiap data yang masuk dicek dengan uart.any() untuk memastikan buffer tidak kosong. Data kemudian dibaca dengan uart.readline() dan didekode menggunakan .decode('utf-8').

Jika data valid dan sesuai format (diawali dengan "POT:"), maka program akan mengambil angka di belakang tanda titik dua (:), mengkonversinya ke bilangan bulat (int()), lalu menampilkannya pada LCD 16x2 yang terhubung menggunakan protokol I2C (SDA: GPIO 4, SCL: GPIO 5).

LCD akan diinisialisasi menggunakan library i2c_lcd, dan alamat I2C default-nya adalah 0x27 (bisa berubah tergantung modul). Setelah nilai berhasil diterima, layar LCD akan dibersihkan (lcd.clear()) dan data akan ditampilkan di baris pertama dengan perintah lcd.putstr(f"Value:{pot_value}").

Jika format data salah atau terjadi error dalam parsing, LCD akan menampilkan pesan "ERROR" di baris pertama dan menampilkan deskripsi kesalahan di baris kedua.

    

4. Flowchart dan Listing Program [Kembali]

Flowchart :


Listing Program :
TX
from machine import Pin, ADC, UART import time # Inisialisasi pin ADC untuk membaca potensiometer (GPIO26/ADC0) pot = ADC(26) # Inisialisasi UART0 pada GPIO0 (TX) dan GPIO1 (RX) dengan baud rate 9600 uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1)) while True: # Membaca nilai analog dari potensiometer (0–65535) pot_value = pot.read_u16() # Format data yang dikirim: "POT:<nilai>\n" data = f"POT:{pot_value}\n" # Mengirim data melalui UART uart.write(data) # Menampilkan data yang dikirim di serial monitor (debugging) print("Sent:", data.strip()) # Delay 0.5 detik time.sleep(0.5)
RX
from machine import UART, I2C, Pin from i2c_lcd import I2cLcd from time import sleep # Inisialisasi UART0 pada GPIO0 (TX) dan GPIO1 (RX) uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1)) # Inisialisasi I2C pada GPIO4 (SDA) dan GPIO5 (SCL) i2c = I2C(0, sda=Pin(4), scl=Pin(5)) # Inisialisasi LCD I2C dengan alamat 0x27 dan ukuran 2 baris x 16 kolom lcd = I2cLcd(i2c, 0x27, 2, 16) while True: if uart.any(): raw_data = uart.readline() try: # Decode data dari byte ke string dan hilangkan newline decoded_data = raw_data.decode('utf-8').strip() # Debugging output print("Received RAW:", repr(raw_data)) print("Decoded:", decoded_data) # Mengecek apakah format data benar if decoded_data.startswith("POT:"): # Ambil nilai setelah 'POT:' pot_value = int(decoded_data.split(':')[1]) # Tampilkan nilai di LCD lcd.clear() lcd.putstr(f"Value:{pot_value}") else: # Jika format salah, munculkan error raise ValueError("Format salah") except Exception as e: # Jika terjadi error, tampilkan pesan di LCD lcd.clear() lcd.putstr("ERROR") lcd.move_to(0, 1) lcd.putstr(str(e)[:16]) # Maksimal 16 karakter di baris kedua print("Error:", e, "| Data:", raw_data)




5. Analisa[Kembali]

1. Jelaskan bagaimana proses komunikasi yang terjadi pada percobaan (UART dan I2C)!

Pada percobaan komunikasi UART, proses komunikasi terjadi secara asinkron antara dua Dev.board dengan memanfaatkan dua jalur utama, yaitu TX (transmit) dan RX (receive). Salah satu board berperan sebagai pengirim data, mengirimkan informasi melalui pin TX, sementara board lainnya menerima melalui pin RX. Komunikasi ini tidak memerlukan sinyal clock, sehingga kedua perangkat harus dikonfigurasi dengan baud rate yang sama agar data yang dikirim dapat diterima dengan benar. Data yang dikirimkan dibungkus dalam format frame yang terdiri dari start bit, data bit (biasanya 8 bit), optional parity bit, dan stop bit. Sementara itu, pada percobaan komunikasi I2C, komunikasi terjadi secara sinkron dan melibatkan satu perangkat master dan satu atau lebih perangkat slave. I2C menggunakan dua jalur komunikasi yaitu SDA (data) dan SCL (clock). Proses dimulai dengan master mengirimkan kondisi START diikuti oleh alamat slave dan bit penanda baca/tulis. Setelah itu, data dikirim atau diterima tergantung dari arah komunikasi, dan diakhiri dengan kondisi STOP. Protokol I2C sangat efisien karena memungkinkan komunikasi antar banyak perangkat hanya dengan dua kabel, dengan identifikasi perangkat dilakukan berdasarkan alamat unik masing-masing.

 

2. Jelaskan bagaimana proses data analog dikirimkan antara kedua Dev.board!

Proses pengiriman data analog antara dua Dev.board memerlukan konversi karena data analog tidak bisa dikirim langsung melalui protokol digital seperti UART atau I2C. Pertama, Dev.board yang bertindak sebagai pengirim membaca sinyal analog menggunakan modul ADC (Analog to Digital Converter), misalnya dari potensiometer atau sensor tegangan. Nilai analog tersebut diubah menjadi data digital berupa angka biner, yang kemudian dikirimkan melalui komunikasi UART atau I2C ke Dev.board penerima. Di sisi penerima, data digital ini dapat langsung diproses sebagai representasi nilai analog. Jika diperlukan, data tersebut dapat dikonversi kembali menjadi sinyal analog menggunakan DAC (Digital to Analog Converter). Namun, dalam banyak kasus praktikum, nilai digital hasil ADC cukup ditampilkan atau digunakan untuk pengendalian tanpa perlu dikonversi kembali ke analog.

 

3. Jelaskan bagaimana proses data yang dikirimkan menampilkan karakter pada LCD! Jelaskan dengan rinci.

Proses penampilan karakter pada LCD diawali dari pengiriman data digital dari Dev.board melalui protokol komunikasi seperti I2C atau SPI (tergantung jenis LCD yang digunakan, misalnya LCD 16x2 dengan modul I2C backpack). Data yang dikirim biasanya berupa karakter ASCII yang merepresentasikan huruf, angka, atau simbol. Saat perintah atau data dikirim ke LCD, ada dua mode pengiriman yang digunakan, yaitu mode instruksi (untuk mengatur posisi kursor, clear display, dll) dan mode data (untuk menampilkan karakter). Dev.board akan menginisialisasi LCD dengan konfigurasi tertentu, seperti jumlah baris dan kolom, mode tampilan, dan posisi awal kursor. Setelah itu, data karakter dikirim satu per satu ke LCD melalui pin data (jika paralel) atau melalui jalur serial (jika menggunakan I2C/SPI), dan modul LCD akan menerjemahkan kode ASCII tersebut menjadi piksel yang tampil pada layar LCD. Contohnya, jika Dev.board menerima nilai ADC berupa angka 123, maka angka tersebut dikonversi ke karakter ASCII (‘1’, ‘2’, ‘3’) dan dikirimkan ke LCD untuk ditampilkan secara berurutan.

 





6. Video Demo[Kembali]






7. Download File [Kembali]

File Analisa []
Video Demo []
Raspberry Pi Pico [Download]
Datasheet LED [Download]
Datasheet Resistor [Download]

Komentar

Postingan populer dari blog ini