The Phi_big_font library utilizes 3 X 5 dot matrix technique I developed to display characters 6 times the size of ordinary characters seen on HD44780-compatible character LCDs. You will need two rows and 4 columns to display one character (with one column blank to separate characters). A 16*2 display can display 4 such characters, making a perfect clock display like HH:MM, or month or day display in three characters. A 20*4 display can display 5 characters by two rows, totally 10. You can display the characters anywhere you want. Make an animation if you want. This library is compatible with Arduino IDE 1.6.0
After some requests and inquiries on arduino forum, I decided to make big fonts for character LCDs, not just numbers, as seen in some examples, but numbers, and characters, so you can display a few large characters and see them from say 10 feet away.
I initially made an attempt. Read this post with videos. I was successful but I didn’t make it into library neither did I make the display location more flexible or support 20 X 4 displays.
After some more work, now I present you phi_big_font library.
What it does:
- Display big numbers 0 – 9
- Display big characters A – Z and a – z
- Display them anywhere within your display (no trimming at display edges)
- Display regular or inverted fonts with inverted lcd_clear() to fill up the screen with black boxes
- Display one character, short strings, numbers (you can format numbers into strings if you prefer)
- Display half (top or bottom) of a character if you want (for animations)
06/17/2011: I have realized the array names that store the programmable characters for the LCD is the same in several libraries so I changed their names in this library to make sure there is no conflicts when multiple of my libraries are used in the same project. Updated the library to version 617.
Pictures and videos:
Here is some pictures of the font: The complete list can be found on this post.
Here is a video:
void init_big_font(LiquidCrystal *l);
This initializes the library. You MUST do this in your setup();
// in main program
//Notice the & symbol
void invert_big_font(boolean inv);
If inv is true, all subsequent output is inverted with black background.
Clears the LCD, except if it is inverted, fills it with black boxes.
void render_big_msg(char msg, byte loc_x, byte loc_y);
Displays string message at screen location loc_x and loc_y (top left corner of the message). You need to supply the string AKA character array’s name to the function.
void render_big_number(int number, byte loc_x, byte loc_y);
Display a number at location supplied.
void big_msg_lcd(char* msg_line, byte loc_x, byte loc_y);
This is the same as the render_big_msg except you supply a string stored in PROGMEM.
void render_big_char(char ch, byte loc_x, byte loc_y);
This displays a character ch at the supplied location.
void render_big_char_bot(char ch);
This displays the bottom half of a character ch at the current location.
void render_big_char_top(char ch);
This displays the top half of a character ch at the current location.
void display_img(byte  img);
This displays a raw image of 20 wide by 12 tall on a 20 X 4 display. Each byte in the array represents a column of 3 pixels. The row order is 0, 2, 1, 3.
};// line 0, 2, 1, 3 order.
The code and examples are hosted on my library and code download page:
First download the package, then extract the files under your Arduino Sketchbook/Libraries folder, so that the three files will be under c:/Arduino22/Sketchbooks/Libraries/phi_big_font/ (Just example, your directory may be different). Make sure you don’t have c:/Arduino22/Sketchbooks/Libraries/phi_big_font/phi_big_font/
Then close all Arduino IDE windows.
Reopen Arduino IDE, open a sketchbook you want to use the phi_buttons. Then choose under the Arduino IDE meny Sketch->Import library->phi_big_font
The Arduino IDE automatically creates a line in the beginning of your sketchbook: #include <phi_big_font.h>
OK you’re done!
Add symbols to the font
Store the font in PROGMEM
Add function to clip the display if you display outside of your screen