Panduan dasar penggunaan Custom Fonts pada SSD1306 0.96 inch Oled Display dangan ESP32 menggunakan Arduino IDE. Parts yang digunakan, wiring diagram dan library dapat dilihat di ESP32 OLED Display.
Font Converter
Untuk membuat font yang dapat digunakan pada oled display, dapat menggunakan font converter yang dapat diakses pada link berikut: oleddisplay.squix.ch.
Penggunaan Font Converter
Pilih font family, style dan ukuran, check preview image lalu tekan Create
.
Setelah click Create
akan muncul textarea yang juga berisi instruksi penggunaannya.
Copy text dari textarea ke dalam file yang diberi nama font.h
, simpan di folder yang sama dengan sketch yang kita gunakan.
Penyesuaian
Apabila muncul error: invalid conversion from 'const char*' to 'const uint8_t* {aka const unsigned char*}' [-fpermissive]
, edit baris yang berisi const char URW_Chancery_L_Medium_Italic_22[] PROGMEM = {
:
Menjadi const uint8_t URW_Chancery_L_Medium_Italic_22[] PROGMEM = {
:
Sketch
Untuk mencoba font yang baru saja kita buat, bisa kita gunakan sketch berikut:
SSD1306_custom_fonts.ino
Explanation
Pertama-tama kita include library dan font.
#include "SSD1306.h"
#include "font.h"
Selebihnya kita bisa menggunakan structure code standard seperti contoh sketch sebelumnya, hanya saja sedikit dimodifikasi. Kali ini kita menggunakan 2 jenis font yang berbeda.
display.clear();
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.setFont(ArialMT_Plain_16);
display.drawString(64, 10, "ahonerd.com"); // ini menggunakan ArialMT_Plain_16
display.setFont(URW_Chancery_L_Medium_Italic_22);
display.drawString(64, 34, "ahonerd.com"); // ini menggunakan URW_Chancery_L_Medium_Italic_22
display.display();
Setelah sketch di atas kita upload ke ESP32, maka hasilnya menjadi: