LA MODUL 3
LA 2- Percobaan 3
- Buat rangkaian seperti yang ada pada percobaan 4 modul 3
- setelah selesai membuat rangkaian,
- Buka Aplikasi THONYIDE Laptop anda
- Kemudian buat program berdasarkan perintah yag ada di modul
- setalah rangkaian hardware selesai hubungkan ke Laptop
- Amati dan Analisa simulasi rangkaian berdasarkan panduan di modul
Spesifikasi | Keterangan |
---|
Jenis Potensiometer | Rotary (putar) / Slide (geser) |
Tipe | Linear (linier taper) / Logarithmic (log taper) |
Nilai Resistansi | 1 kΩ, 5 kΩ, 10 kΩ (paling umum), 50 kΩ, hingga 1 MΩ |
Tegangan Operasi | Hingga 5V atau 3.3V (disesuaikan dengan sistem mikrokontroler) |
Output | Tegangan analog (antara 0 – Vcc) tergantung posisi knob |
Jumlah Pin | 3 pin: Vcc, Ground (GND), dan Output (wiper) |
Toleransi Resistansi | ±10% hingga ±20% tergantung jenis dan kualitas |
Sudut Rotasi | Sekitar 270° (untuk rotary potensiometer standar) |
Daya Maksimum | Biasanya antara 0.1W hingga 0.5W (tergantung ukuran dan tipe) |
Dimensi Shaft | Umumnya 6 mm diameter, panjang 15 – 20 mm (untuk knob standar) |
Tipe Pemasangan | THT (Through-Hole) / Panel Mount / SMD (Surface Mount) |
Bahan | Plastik karbon, metal film, atau wire wound (untuk akurasi tinggi) |
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.
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.
Komentar
Posting Komentar