گاهی نیاز دارید کارکتورهای مخصوصی را به همراه اطلاعات بر روی صفحه نمایش نشان دهید
هر کارکتور در نمایشگرهای کارکتوری 1602 و 2004 از یک بلوک 5 در 8 پیکسلی تشکیل شده است که با روشن و خاموش شدن پیکسلها میتوانند یک شکل را نمایش دهند
خوش بختانه نمایشگرهای 1602 و 2004 از کارکتورهای اختصاصی پشتیبانی کرده و میتواننید تا 8 کارکتور اختصاصی را برای آنها تعریف کنید
در اینجا قصد داریم یک کارکتور اختصاصی تولید کرده و آن را نمایش دهیم
ابتدا باید شکل گرافیکی آن را روی یک جدول با 8 ردیف و 5 ستون طراحی کنید.
هر خانه این جدول معادل یک پیکسل در کارکتور است.
با این کار مشخص می شود کدام پیکسل روشن است و کدام پیکسل خاموش است
بعد از این کار نقشه پیکسلها را به شکل باینری به نمایشگر میدهیم و به او میگوییم این نقشه را برای کدام کارکتور اختصاصی در حافظه قرار دهد
دستور createChar به همراه شماره کارکتور که از 0 تا 7 می باشد و اطلاعات باینری کارکتور وظیفه ثبت این کارکتور جدید در یکی از حافظه های 0 تا 7 را دارد
دستور write به همراه شماره حافظه آن کارکتور را مینویسد
توجه کنید که برای نوشتن کارکتورهای اختصاصی از دستور Print استفاده نمیکنیم
#include
byte slash[8]= { // Array of bytes
B00001, // B stands for binary formatter and the 5 numbers are the pixels
B00010,
B00100,
B01000,
B10000,
B00000,
B00000,
B00000,
};
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
lcd.createChar(7, slash); // Create a custom character for use on the LCD. Up to eight characters of 5x8 pixels are supported
}
void loop() {
for(int i=0;i<=15;i++) {
lcd.setCursor(i,0); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.write(7); // Writes a character to the LCD
delay(1000); // 1 second delay
lcd.clear(); // Write a character to the LCD
}
}