- Bahan Diperlukan
- Rajah Litar
- 128 * 64 LCD Grafik
- Menukar Imej ke Kod Hex:
- Kod Arduino dan Penjelasan Bekerja
Terdapat banyak jenis LCD yang digunakan dalam Projek Elektronik. Kami telah menggunakan LCD 16X2 dalam banyak projek kami dan juga menggunakan TFT LCD dengan Arduino. Anda boleh menemui keseluruhan projek berkaitan 16X2 LCD kami dengan mengikuti pautan ini, termasuk menghubungkan dengan 8051, AVR, Arduino dan banyak lagi.
The ST9720 grafik LCD adalah sama sekali berbeza dari LCD Biasa. LCD biasa hanya boleh mencetak teks atau angka sederhana dalam ukuran tetap. Tetapi dalam LCD Grafik kita mempunyai 128 * 64 yang sama dengan 8192 titik atau 8192/8 = 1024 piksel, jadi selain watak, kita dapat memaparkan sebarang Gambar Grafik pada GLCD ini.
Kami sudah menghubungkan GLCD dengan 8051, hari ini kami akan menghubungkan LCD Grafik dengan Arduino untuk memaparkan teks dan gambar di atasnya.
Bahan Diperlukan
- Arduino UNO
- 128 * 64 LCD Grafik ST9720
- Potensiometer-10k
- Menyambung wayar
- Papan roti
Rajah Litar
128 * 64 LCD Grafik
LCD Grafik ini mempunyai penggunaan kuasa yang rendah dan juga sesuai untuk peranti mudah alih bateri. Ia mempunyai julat voltan operasi yang luas 2.2v hingga 5.5v dan menyokong komunikasi bersiri dan 8/4-bit selari dan dilengkapi dengan pengawal / pemacu LCD ST7290. Mod komunikasi antara muka boleh ditukar antara selari dan bersiri menggunakan PSB PIN 15. LCD grafik ini mempunyai kuasa automatik pada fungsi Reset dan dapat dikendalikan dengan mudah oleh MCU seperti 8051, AVR, ARM, Arduino dan Raspberry Pi.
Anda boleh melalui lembar data untuk maklumat terperinci mengenai LCD Grafik ST7290 128 * 64
Konfigurasi Pin
Pin No. |
Nama Pin |
Penerangan |
1 |
Gnd |
Terminal darat |
2 |
Vcc |
Voltan bekalan input (2.7v hingga 5.5v) |
3 |
Vo |
Kontras LCD |
4 |
RS |
Daftar Pilih RS = 0: Daftar Arahan RS = 1: Daftar Data |
5 |
R / W |
Kawalan Baca / Tulis |
6 |
E |
Aktifkan |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Pin Data (digunakan dalam mod komunikasi 8 / 4bit selari) |
15 |
PSB |
Pemilihan antara muka: Rendah (0) untuk mod komunikasi bersiri Tinggi (1) untuk mod bas selari 8/4-bit. |
16 |
NC |
Tidak bersambung |
17 |
RST |
Tetapkan Semula Pin |
18 |
Vout |
Keluaran pengganda voltan LCD. TANPA ≦ 7V. |
19 |
BLA |
Bekalan positif lampu latar |
20 |
BLK |
Bekalan negatif lampu latar |
Permohonan
- Peranti industri
- Sistem Terbenam
- Keselamatan
- Perubatan
- Peralatan tangan
Menukar Imej ke Kod Hex:
Untuk menunjukkan sebarang gambar pada LCD Grafik, kita memerlukan kod HEX gambar tersebut, jadi berikut adalah beberapa langkah untuk menukar Imej menjadi kod HEX. Sebelum itu anda harus memastikan bahawa ukuran gambar tidak boleh melebihi 128 * 64.
Langkah-1: Turunkan ukuran gambar biasa menjadi 128 * 64 atau kurang, yang boleh anda lakukan dengan menggunakan perisian penyuntingan gambar seperti cat MS.
Seperti yang ditunjukkan dalam gambar di atas, kami menetapkan lebar dan tinggi gambar menjadi 128 * 64.
Langkah-2: Kemudian anda perlu untuk menyelamatkan imej dalam "IMAGE_NAME Bmp format".
Pilih format yang ditunjukkan pada gambar di atas dan simpan fail untuk proses selanjutnya.
Langkah-3: Setelah menyimpannya ke dalam format ".bmp", anda perlu menukar gambar menjadi kod hex untuk dicetak. Untuk ini, saya menggunakan perisian bernama GIMP 2, yang menukar fail Bmp ke kod hex.
Seperti yang ditunjukkan dalam gambar di atas, kami membuka file format ".bmp" dalam perisian GIMP 2.
Langkah-4: Selepas memuat turun perisian, membuka fail format imej BMP yang anda mahu cetak dan kemudian simpan sebagai dalam " .xbm " (X bitmap) format. Setelah menyimpannya buka fail itu menggunakan Notepad dan anda akan mendapat kod Hex gambar.
Seperti yang ditunjukkan dalam gambar di bawah, pilih pilihan Eksport untuk menyimpan fail dalam format xbm :
Pilih format yang ditunjukkan dalam gambar di bawah dan eksport fail gambar.
Setelah mengeksport fail, anda akan mendapatkan fail dalam format ".xbm". Buka fail xbm menggunakan Notepad dan anda akan mendapat kod HEX seperti yang ditunjukkan dalam gambar di bawah.
Kod Arduino dan Penjelasan Bekerja
Untuk menghubungkan LCD grafik dengan Arduino, pertama kita perlu menentukan perpustakaan yang digunakan untuk LCD Grafik. Arduino tidak mempunyai perpustakaan ini, anda mesti memuat turun dan memasang perpustakaan ini dari pautan ini. Kemudian anda boleh memasukkan perpustakaan seperti di bawah:
#sertakan "U8glib.h"
Di sini, ' u8g (10) ' menentukan hubungan RS (Pilih Pilih) pin grafik LCD dengan pin ke-10 dari Arduino UNO. Pin RS digunakan sebagai 'pilih chip' dan 'Daftar Pilih' ketika digunakan dalam mod Serial dan Parallel masing-masing. Oleh itu, kami menggunakan mod bersiri dan pin RS diset ke Tinggi (1) untuk cip diaktifkan dan Rendah (0) untuk cip dilumpuhkan.
U8GLIB_ST7920_128X64_4X u8g (10);
Sekarang, untuk mencetak gambar kita perlu meletakkan kod Hex gambar dalam kod di bawah. Anda boleh mencetak gambar lain yang hanya perlu anda tempelkan kod hex gambar tersebut.
const uint8_t rook_bitmap U8G_PROGMEM = { Tampal kod gambar Hex di sini };
Lihat Kod Arduino Penuh 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 kedudukan awal gambar di 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 meletakkan kod gambar HEX.
gambar kosong (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Kami telah membuat dua fungsi yang disebut "draw" dan "next", di mana kod untuk mencetak konten ditulis menggunakan perintah "u8g.drawStr (x, y," abcd ")". Di sini, x dan y adalah kedudukan dalam LCD di mana kandungan akan dicetak dan ' abcd ' adalah kandungan yang akan dicetak.
cabutan tidak sah (kekosongan) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "CIRCUIT DIGEST"); } batal seterusnya (batal) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Interfacing"); u8g.drawStr (0, 35, "LCD Grafik"); u8g.drawStr (0, 55, "dengan Arduino"); }
Fungsi clearLCD () dibuat untuk membersihkan LCD dengan hanya memberikan nilai nol pada fungsi tersebut.
batal clearLCD () {u8g.firstPage (); lakukan {} sementara (u8g.nextPage ()); }
Menyiapkan piksel, warna dan intensiti dengan menggunakan kod di bawah
persediaan kosong (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // putih} lain jika (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // maksimum intensiti} lain jika (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel on} lain jika (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
The gelung tidak sah terus mencetak teks dan imej selepas kelewatan yang diberikan. Pertama, kami telah mencetak "Circuit Digest" menggunakan fungsi draw dan selepas 2sec. kelewatan kami membersihkan skrin menggunakan fungsi ClearLCD dan kemudian mencetak " Interfacing Graphical LCD using Arduino " menggunakan fungsi seterusnya . Kemudian kami telah mencetak gambar menggunakan fungsi gambar () yang akan tetap di layar selama 3 saat. Ini akan berterusan sehingga bekalan kuasa dihidupkan.
gelung kosong (kekosongan) {u8g.firstPage (); lakukan {draw (); } sementara (u8g.nextPage ()); kelewatan (2000); jelasLCD (); u8g.firstPage (); lakukan {seterusnya (); } sementara (u8g.nextPage ()); kelewatan (2000); jelasLCD (); u8g.firstPage (); adakah {gambar (); } sementara (u8g.nextPage ()); kelewatan (3000); jelasLCD (); kelewatan (50); }
Setelah memprogram Arduino menggunakan kod yang diberikan, sambungkan LCD Grafik mengikut rajah litar dengan Arduino dan sediakan Arduino menggunakan Adapter atau USB. Anda, akan mendapat kandungan dan gambar yang dicetak pada LCD Grafik, seperti ditunjukkan dalam video yang diberikan di bawah.
Periksa juga antara muka Nokia Graphics LCD 5110 dengan Arduino,