Tampilan Grafis dengan TFT LCD ILI9341 dan STM32

3 min read 22-08-2024
Tampilan Grafis dengan TFT LCD ILI9341 dan STM32

Pendahuluan

TFT LCD (Thin Film Transistor Liquid Crystal Display) merupakan salah satu jenis layar yang banyak digunakan pada berbagai perangkat elektronik. Dengan kemampuannya untuk menampilkan gambar berwarna dengan kualitas tinggi, penggunaan TFT LCD semakin meluas, dari smartphone hingga perangkat embedded seperti mikrokontroler. Salah satu kombinasi yang populer dalam pengembangan aplikasi grafis adalah penggunaan driver ILI9341 dengan mikrokontroler STM32. Artikel ini akan membahas bagaimana cara mengimplementasikan tampilan grafis menggunakan TFT LCD ILI9341 dengan mikrokontroler STM32.

Apa itu ILI9341?

ILI9341 adalah sebuah driver layar TFT yang sangat populer, dikenal karena kemampuannya untuk menampilkan gambar dengan kualitas tinggi dan kecerahan yang baik. Driver ini mendukung resolusi 240x320 piksel dan dapat menampilkan 262.144 warna. ILI9341 dapat terhubung dengan mikrokontroler menggunakan antarmuka SPI (Serial Peripheral Interface) atau paralel, yang memungkinkan komunikasi data yang cepat dan efisien.

Mengapa Menggunakan STM32?

Mikrokontroler STM32 adalah keluarga mikrokontroler berbasis ARM Cortex-M yang terkenal karena kinerjanya yang tinggi dan konsumsi daya yang rendah. STM32 menawarkan berbagai fitur, termasuk kemampuan untuk mengontrol berbagai alat dan sensor, serta dukungan untuk perangkat lunak yang mendukung pengembangan proyek berbasis grafis. Dengan menggunakan STM32, pengembang dapat dengan mudah memanfaatkan kemampuan grafis dari layar TFT LCD untuk menampilkan antarmuka pengguna yang interaktif.

Persiapan Hardware

Sebelum mulai dengan kode, Anda harus menyiapkan beberapa komponen hardware berikut:

  • Layar TFT LCD ILI9341
  • Mikrokontroler STM32 (misalnya STM32F103)
  • Board pengembangan STM32 (seperti Nucleo atau Discovery)
  • Kabel jumper
  • Breadboard (jika diperlukan)

Skema Koneksi

Berikut adalah skema koneksi dasar antara STM32 dan TFT LCD ILI9341:

  • VCC TFT ke 3.3V (VCC) STM32
  • GND TFT ke GND STM32
  • SCK TFT ke SCK STM32 (pin yang sesuai pada STM32 untuk SPI)
  • SDA TFT ke MOSI STM32 (pin yang sesuai pada STM32 untuk SPI)
  • CS TFT ke pin GPIO (misalnya PA4)
  • DC/RS TFT ke pin GPIO (misalnya PA5)
  • RESET TFT ke pin GPIO (misalnya PA6)

Memprogram STM32

Setelah koneksi hardware selesai, langkah selanjutnya adalah memprogram STM32 untuk mengendalikan TFT LCD ILI9341. Kita akan menggunakan STM32CubeIDE untuk pengembangan ini. Pastikan Anda memiliki driver yang benar dan library untuk ILI9341.

Setup STM32CubeIDE

  1. Buka STM32CubeIDE

  2. Buat Proyek Baru:

    • Pilih jenis mikrokontroler yang Anda gunakan, seperti STM32F103.
    • Atur pengaturan default untuk projek, termasuk clock.
  3. Aktifkan Perpustakaan SPI di CubeMX.

    • Pilih SPI yang digunakan untuk TFT.
    • Aktifkan GPIO untuk pin CS, DC, dan RESET.
  4. Generate Code:

Setelah pengaturan, generate kode dan buka file utama (main.c).

Menambahkan Library ILI9341

Anda perlu menambahkan library untuk ILI9341. Banyak library yang tersedia di GitHub yang memudahkan pengendalian TFT LCD ILI9341.

  1. Clone atau Unduh Library: Anda dapat mencari library ILI9341 yang cocok di GitHub. Unduh atau clone ke direktori proyek Anda.

  2. Tambahkan File ke Proyek: Tambahkan file .c dan .h dari library ke dalam proyek Anda di STM32CubeIDE.

Pengkodean

Berikut contoh kode dasar untuk inisialisasi TFT LCD:

#include "ili9341.h"

// Fungsi untuk menginisialisasi TFT
void TFT_Init(void) {
    ILI9341_Init(); // Inisialisasi driver ILI9341
    ILI9341_SetRotation(1); // Atur orientasi layar
    ILI9341_FillScreen(ILI9341_BLACK); // Mengisi layar dengan warna hitam
}

// Fungsi utama
int main(void) {
    HAL_Init(); // Inisialisasi HAL
    SystemClock_Config(); // Atur clock sistem
    MX_GPIO_Init(); // Inisialisasi GPIO
    MX_SPI1_Init(); // Inisialisasi SPI

    TFT_Init(); // Panggil fungsi inisialisasi TFT

    // Contoh menggambar di layar
    ILI9341_DrawString(10, 10, "Selamat Datang!", ILI9341_WHITE);
    ILI9341_DrawCircle(120, 160, 50, ILI9341_RED);

    while (1) {
        // Loop program
    }
}

Fungsi-fungsi Dasar

Setelah inisialisasi selesai, Anda dapat memanggil berbagai fungsi dari library untuk menggambar objek, teks, atau gambar pada TFT LCD. Berikut beberapa fungsi dasar yang umum digunakan:

  • ILI9341_DrawPixel(x, y, color): Menggambar satu piksel pada koordinat yang ditentukan dengan warna yang ditentukan.
  • ILI9341_DrawLine(x1, y1, x2, y2, color): Menggambar garis antara dua titik.
  • ILI9341_DrawRectangle(x, y, width, height, color): Menggambar persegi panjang.
  • ILI9341_FillScreen(color): Mengisi seluruh layar dengan warna tertentu.
  • ILI9341_DrawImage(x, y, width, height, image): Menggambar gambar bitmap pada koordinat yang ditentukan.

Kesimpulan

Dengan menggunakan TFT LCD ILI9341 dan mikrokontroler STM32, Anda dapat membuat berbagai aplikasi grafis yang menarik. Penggunaan library dan alat pengembangan seperti STM32CubeIDE memudahkan proses ini. Anda dapat menampilkan data, grafik, atau antarmuka pengguna yang interaktif. Dengan sedikit kreativitas, kemungkinan yang dapat Anda capai dengan kombinasi ini adalah hampir tidak terbatas. Selamat mencoba dengan proyek Anda, dan jangan ragu untuk mengeksplorasi lebih jauh fitur-fitur dari ILI9341 dan STM32!