Tulisan Arab Oled SSD1306 I2C Library u8g2

Posted on

Arab SSD1306

Tulisan Arab pada layar OLED SSD1306 menggunakan library u8g2 dapat dilakukan dengan beberapa langkah sederhana.

Pertama, pastikan bahwa Anda telah menginstal library u8g2 di Arduino IDE Anda. Anda dapat mengunduh library ini melalui menu Sketch > Include Library > Manage Libraries.

Kedua, buat sketch baru di Arduino IDE dan masukkan kode berikut:

Kode Program

/*
   Copyright (c) 2016, olikraus@gmail.com
  All rights reserved.
*/

#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>

U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

void setup(void) {
  u8g2.begin();
}

const uint16_t my_kerning_table[] =
{
	/* first char, second char, gap reduction value */
	0x646, 0x627, 4, /* ن and ا */
	0x627, 0x647, 5, /* ا and ه */
	0x647, 0x62C, 6, /* ه and ج */


	0x645, 0x627, 3, /* م and ا */
	0x627, 0x644, 4, /* ا and ل */
	0x644, 0x633, 2, /* ل and س */

	/* this line terminates the table */
	0xffff, 0xffff, 0xffff
};

void loop(void) {
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_unifont_t_arabic);

    u8g2.drawExtUTF8(120, 15, 1, NULL, "سلام جهان");	/* Hello World */
    u8g2.drawExtUTF8(120, 30, 1, my_kerning_table, "سلام جهان");	/* Hello World */
  } while ( u8g2.nextPage() );
  //delay(1000);
}

Ketiga, upload sketch ke board Arduino Anda dan pastikan koneksi OLED dan I2C sudah benar.

Keempat, Anda akan melihat tulisan Arab muncul di layar OLED Anda. Anda dapat mengubah teks yang ingin ditampilkan sesuai kebutuhan Anda.

Hasil

Berikut adalah hasilnya:

Tulisan Arab Oled SSD1306 I2C Pakai Library u8g2

Penjelasan Kode Program

Kode di atas adalah contoh sederhana untuk menampilkan teks dalam bahasa Arab pada layar OLED SSD1306 menggunakan library u8g2.

Pada baris ke-2 dan ke-3, library u8g2 dan Wire di-include untuk digunakan dalam sketch. Baris ke-5 menginisialisasi objek u8g2 dengan tipe layar OLED SSD1306 yang digunakan (U8G2_SSD1306_128X64_NONAME_1_HW_I2C) dan pin reset yang digunakan (U8G2_R0, /* reset=*/ U8X8_PIN_NONE).

Pada fungsi setup(), inisialisasi komunikasi dengan OLED dengan memanggil u8g2.begin().

Pada fungsi loop(), teks ditampilkan pada OLED dengan memanggil u8g2.firstPage() dan menggunakan do-while loop untuk menampilkan teks pada setiap halaman.

Pada baris ke-17, u8g2_font_unifont_t_arabic digunakan sebagai font untuk menampilkan teks Arab. Pada baris ke-19, teks “سلام جهان” ditampilkan pada koordinat (120, 15) dengan memanggil u8g2.drawExtUTF8(), dimana kerning table yang digunakan adalah NULL. Pada baris ke-20, teks “سلام جهان” ditampilkan pada koordinat (120, 30) dengan memanggil u8g2.drawExtUTF8() dan dengan kerning table yang digunakan adalah my_kerning_table. Kerning table digunakan untuk mengatur jarak antar karakter yang ditampilkan, sehingga teks yang ditampilkan terlihat rapi dan estetis.

Konstanta my_kerning_table[] di deklarasikan diatas loop, untuk mengatur jarak antar karakter dalam teks Arab, yang dapat digunakan saat menampilkan teks dengan u8g2.drawExtUTF8().

Perlu diingat bahwa kerning table hanya digunakan untuk font yang mendukung fitur ini.

Baris terakhir dari my_kerning_table[] selalu harus (0xffff, 0xffff, 0xffff) sebagai penandanya.

Catatan

Perlu diingat bahwa library u8g2 memiliki banyak font yang dapat digunakan untuk menampilkan tulisan Arab, sehingga pastikan untuk menggunakan font yang sesuai dengan karakter yang akan ditampilkan.

Semoga artikel Tulisan Arab Oled SSD1306 I2C Pakai Library u8g2 ini dapat bermanfaat.

Baca juga: