- Material Diperlukan
- Diagram Sirkuit
- 128 * 64 LCD Grafis
- Mengubah Gambar menjadi Kode Hex:
- Kode Arduino dan Penjelasan Kerja
Ada banyak jenis LCD yang digunakan dalam Proyek Elektronik. Kami telah menggunakan LCD 16X2 di banyak proyek kami dan juga menggunakan LCD TFT dengan Arduino. Anda dapat menemukan seluruh proyek terkait LCD 16X2 kami dengan mengikuti tautan ini, termasuk antarmuka dengan 8051, AVR, Arduino dan banyak lagi.
The ST9720 grafis LCD benar-benar berbeda dari LCD biasa. LCD biasa hanya dapat mencetak teks atau angka sederhana dalam ukuran tetap. Namun di LCD Grafis kami memiliki 128 * 64 yang sama dengan 8192 titik atau 8192/8 = 1024 piksel, jadi selain karakter, kami dapat menampilkan Gambar Grafis apa pun di GLCD ini.
Kami sudah menghubungkan GLCD dengan 8051, hari ini kami akan menghubungkan LCD Grafis dengan Arduino untuk menampilkan teks dan gambar di atasnya.
Material Diperlukan
- Arduino UNO
- 128 * 64 LCD Grafis ST9720
- Potensiometer-10k
- Menghubungkan kabel
- Papan tempat memotong roti
Diagram Sirkuit
128 * 64 LCD Grafis
Grafis LCD ini memiliki konsumsi daya yang rendah dan juga cocok untuk perangkat portabel daya baterai. Ini memiliki rentang tegangan operasi yang luas 2.2v hingga 5.5v dan mendukung komunikasi paralel serial dan 8/4-bit dan dilengkapi dengan pengontrol LCD ST7290 / IC driver. Mode komunikasi antarmuka dapat dialihkan antara paralel dan serial menggunakan PSB PIN 15. LCD grafis ini memiliki fungsi Reset power otomatis dan dapat dengan mudah dikontrol oleh MCU seperti 8051, AVR, ARM, Arduino dan Raspberry Pi.
Anda dapat membuka dengan lembar data untuk informasi rinci tentang LCD Grafis ST7290 128 * 64
Konfigurasi Pin
Nomor Pin |
Nama Pin |
Deskripsi |
1 |
Gnd |
Terminal tanah |
2 |
Vcc |
Tegangan suplai input (2.7v hingga 5.5v) |
3 |
Vo |
Kontras LCD |
4 |
RS |
Daftar Pilih RS = 0: Register Instruksi RS = 1: Register Data |
5 |
R / W |
Kontrol Baca / Tulis |
6 |
E |
Memungkinkan |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Pin Data (digunakan dalam mode komunikasi 8 / 4bit paralel) |
15 |
PSB |
Pemilihan antarmuka: Rendah (0) untuk mode komunikasi serial Tinggi (1) untuk mode bus paralel 8/4-bit. |
16 |
NC |
Tidak terhubung |
17 |
RST |
Setel Ulang Pin |
18 |
Vout |
Output pengganda tegangan LCD. VOUT ≦ 7V. |
19 |
BLA |
Pasokan lampu latar positif |
20 |
BLK |
Lampu latar Pasokan negatif |
Aplikasi
- Perangkat industri
- Sistem Tertanam
- Keamanan
- Medis
- Peralatan genggam
Mengubah Gambar menjadi Kode Hex:
Untuk menampilkan gambar apapun pada LCD Grafis, kita membutuhkan kode HEX dari gambar tersebut, jadi berikut adalah beberapa langkah untuk mengubah gambar menjadi kode HEX. Sebelumnya Anda harus memastikan bahwa ukuran gambar tidak boleh melebihi 128 * 64.
Langkah-1: Kurangi ukuran gambar normal menjadi 128 * 64 atau kurang, yang dapat Anda lakukan dengan menggunakan perangkat lunak pengedit gambar seperti MS paint.
Seperti yang ditunjukkan pada gambar di atas, kami mengatur lebar dan tinggi gambar menjadi 128 * 64.
Langkah-2: Kemudian Anda perlu menyimpan gambar dalam format "image_name .bmp ".
Pilih format yang ditunjukkan pada gambar di atas dan simpan file untuk proses lebih lanjut.
Langkah-3: Setelah menyimpannya ke dalam format ".bmp" Anda perlu mengubah gambar menjadi kode hex untuk dicetak. Untuk ini, saya menggunakan perangkat lunak bernama GIMP 2, yang mengubah file Bmp menjadi kode hex.
Seperti yang ditunjukkan pada gambar di atas, kami membuka file format ".bmp" di perangkat lunak GIMP 2.
Langkah-4: Setelah men-download perangkat lunak, buka BMP format file gambar yang akan dicetak dan kemudian save as dalam “ .xbm ” (X Bitmap) format. Setelah menyimpannya, buka file itu menggunakan Notepad dan Anda akan mendapatkan kode Hex gambar.
Seperti yang ditunjukkan pada gambar di bawah ini, pilih opsi Ekspor untuk menyimpan file dalam format xbm :
Pilih format yang ditunjukkan pada gambar di bawah dan ekspor file gambar.
Setelah mengekspor file, Anda akan mendapatkan file dalam format ".xbm". Buka file xbm menggunakan Notepad dan Anda akan mendapatkan kode HEX seperti gambar di bawah ini.
Kode Arduino dan Penjelasan Kerja
Untuk menghubungkan LCD grafis dengan Arduino, pertama-tama kita perlu mendefinisikan perpustakaan yang digunakan untuk LCD Grafis. Arduino tidak memiliki perpustakaan ini, Anda harus mengunduh dan menginstal perpustakaan ini dari tautan ini. Kemudian Anda bisa memasukkan perpustakaan seperti di bawah ini:
#include "U8glib.h"
Di sini, ' u8g (10) ' mendefinisikan koneksi pin RS (Register Select) dari LCD grafis dengan pin ke-10 dari Arduino UNO. Pin RS digunakan sebagai 'chip select' dan 'Register Select' ketika digunakan dalam mode Serial dan Parallel. Jadi, kami menggunakan mode serial dan pin RS diatur ke Tinggi (1) untuk chip diaktifkan dan Rendah (0) untuk chip dinonaktifkan.
U8GLIB_ST7920_128X64_4X u8g (10);
Sekarang, untuk mencetak gambar kita perlu menempatkan kode Hex gambar di kode di bawah ini. Anda dapat mencetak gambar lain yang hanya perlu Anda lakukan adalah menempelkan kode hex gambar.
const uint8_t rook_bitmap U8G_PROGMEM = { Tempel kode Hex gambar di sini };
Periksa Kode Arduino Lengkap di akhir Artikel ini.
Fungsi di bawah ini digunakan untuk mencetak gambar, perintah yang digunakan untuk mencetak adalah "u8g.drawXBMP (x, y, lebar gambar, tinggi gambar)" . Di mana, X dan Y adalah posisi awal gambar pada LCD dan kita juga perlu menulis ukuran gambar yang tidak boleh melebihi 128 * 64 dan dalam argumen terakhir kita telah memanggil fungsi di mana kita menempatkan kode HEX gambar.
gambar kosong (kosong) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Kami telah membuat dua fungsi yang disebut "draw" dan "next", di mana kode untuk mencetak konten ditulis menggunakan perintah "u8g.drawStr (x, y," abcd ")". Di sini, x dan y adalah posisi di LCD tempat konten akan dicetak dan ' abcd ' adalah konten yang akan dicetak.
void draw (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "CIRCUIT DIGEST"); } batal berikutnya (batal) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Antarmuka"); u8g.drawStr (0, 35, "LCD Grafis"); u8g.drawStr (0, 55, "dengan Arduino"); }
Fungsi clearLCD () dibuat untuk membersihkan LCD dengan hanya memberikan nilai null pada fungsi tersebut.
void clearLCD () {u8g.firstPage (); lakukan {} while (u8g.nextPage ()); }
Menyiapkan piksel, warna dan intensitas dengan menggunakan kode di bawah ini
batal penyiapan (batal) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // putih} lain jika (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // intensitas maks} lain jika (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // piksel aktif} lain jika (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255.255.255); }}
The kekosongan lingkaran terus mencetak teks dan gambar setelah penundaan diberikan. Pertama, kami telah mencetak "Circuit Digest" menggunakan fungsi draw dan setelah 2sec. Dari penundaan kami membersihkan layar menggunakan fungsi clearLCD dan kemudian mencetak " Interfacing Graphical LCD menggunakan Arduino " menggunakan fungsi selanjutnya . Kemudian kami telah mencetak gambar menggunakan fungsi picture () yang akan tetap di layar selama 3 detik. Ini akan berlanjut sampai catu daya dihidupkan.
void loop (void) {u8g.firstPage (); lakukan {draw (); } sementara (u8g.nextPage ()); penundaan (2000); clearLCD (); u8g.firstPage (); lakukan {next (); } sementara (u8g.nextPage ()); penundaan (2000); clearLCD (); u8g.firstPage (); lakukan {gambar (); } sementara (u8g.nextPage ()); penundaan (3000); clearLCD (); penundaan (50); }
Setelah memprogram Arduino menggunakan kode yang diberikan, sambungkan LCD Grafis sesuai diagram rangkaian dengan Arduino dan suplai Arduino menggunakan Adaptor atau USB. Anda, akan mendapatkan konten dan gambar yang dicetak pada LCD Grafis, seperti yang ditunjukkan pada video di bawah ini.
Juga periksa antarmuka LCD Grafis Nokia 5110 dengan Arduino,