#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // تعیین آدرس I2C و ابعاد LCD
// تعیین مکان حافظه کاراکترهای سفارشی
unsigned char Word1[] = {0,0,1,1,31,0,4,0}; //حرف ب
unsigned char Word2[] = {0,1,1,1,1,0,0,0}; //حرف ا//
unsigned char Word3[] = {0, 0, 0, 1, 31, 0, 6, 0}; //حرف ی//
unsigned char Word4[] = {0, 6, 0, 17, 31, 0, 0, 0}; //حرف ت//
unsigned char Word5[] = {0,0,1,1,1,1,31,0}; // حرف ل
unsigned char Word6[] = {0,0,0,0,1,1,1,6}; //حرف ر
unsigned char Word7[] = {0, 0, 0, 1, 31, 0, 6, 0}; //حرف ی//
unsigned char Word8[] = {0,0,0,6,1,1,6,0}; //حرف د
unsigned char Word9[] = {0,0,6,1,1,15,0,0}; //حرف ت
unsigned char Word10[] = {0,3,4,4,4,28,0,0}; //حرف ک
unsigned char Word11[] = {0,0,0,3,3,1,2,4}; //حرف و
unsigned char Word12[] = {0,4,1,1,1,15,0,0}; //حرف ن
void setup() {
lcd.init(); // مقداردهی اولیه نمایشگر
lcd.backlight(); // روشن کردن نمایشگر
//در زیر ما ارایه هایی که در بالا تعریف کرده بودیم را به کاراکتر تبدیل می کنیم تا بتوانیم روی ال سی دی نمایش دهیم//
//همچنین هر کدام از ارایه ها را معادل عددی از 1 تا 8 قرار داده ایم و در برنامه اصلی با فراخوانی این اعداد کاراکترها را نمایش می دهیم//
lcd.createChar(1, Word1);
lcd.createChar(2, Word2);
lcd.createChar(3, Word3);
lcd.createChar(4, Word4);
lcd.createChar(5, Word5);
lcd.createChar(6, Word6);
lcd.createChar(7, Word7);
lcd.createChar(8, Word8);
//lcd.createChar(9, Word9);
// lcd.createChar(10, Word10);
//lcd.createChar(11, Word11);
//lcd.createChar(12, Word12);
}
void loop() {
lcd.setCursor(6, 1);
lcd.write(char(8));
lcd.createChar(1, Word12);
lcd.write(char(1));
lcd.createChar(4, Word11);
lcd.write(char(4));
lcd.write(char(2));
lcd.createChar(3, Word12);
lcd.write(char(3));
//lcd.setCursor(6, 0);
//lcd.write(char(8));
//lcd.write(char(6));
//lcd.write(char(1));
delay(300);
}