0% found this document useful (0 votes)
94 views8 pages

LCD5110 Graph

This library allows users to interface with Nokia 5110 LCD modules from an Arduino or chipKit board. It provides functions for initializing the LCD, drawing pixels and text, and controlling features like inversion and sleep mode. The library supports various fonts and aims to make interacting with the LCD display simple.

Uploaded by

JULIAN RODRIGUEZ
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
94 views8 pages

LCD5110 Graph

This library allows users to interface with Nokia 5110 LCD modules from an Arduino or chipKit board. It provides functions for initializing the LCD, drawing pixels and text, and controlling features like inversion and sleep mode. The library supports various fonts and aims to make interacting with the LCD display simple.

Uploaded by

JULIAN RODRIGUEZ
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

LCD5110_Graph

Arduino and chipKit library for Nokia 5110 compatible LCDs

Manual

http://electronics.henningkarlsen.com (C)2013 Henning Karlsen


PREFACE:
This library has been made to make it easy to use the Nokia 5110 LCD module as a graphics
display on an Arduino or a chipKit.

Basic functionality of this library are based on the demo-code provided by ITead studio. You
can find the latest version of the library at http://www.henningkarlsen.com/electronics

You can always find the latest version of the library at


http://electronics.henningkarlsen.com/

If you make any modifications or improvements to the code, I would appreciate that you share
the code with me so that I might include it in the next release. I can be contacted through
http://electronics.henningkarlsen.com/contact.php.

For version information, please refer to version.txt.

This library is licensed under a CC BY-NC-SA 3.0 (Creative Commons Attribution-


NonCommercial-ShareAlike 3.0 Unported) License.

For more information see: http://creativecommons.org/licenses/by-nc-sa/3.0/

LCD5110_Graph Page 2
Defined Literals:
Alignment
For use with print(), printNumI() and printNumF()

LEFT: 0
RIGHT: 9999
CENTER: 9998

Included Fonts:
TinyFont

Charactersize: 4x6 pixels


Number of characters: 95

SmallFont

Charactersize: 6x8 pixels


Number of characters: 95

MediumNumbers

Charactersize: 12x16 pixels


Number of characters: 13

BigNumbers

Charactersize: 14x24 pixels


Number of characters: 13

LCD5110_Graph Page 3
Functions:
LCD5110(SCK, MOSI, DC, RST, CS);
The main class constructor.

Parameters: SCK: Pin for Clock signal


MOSI: Pin for Data transfer
DC: Pin for Register Select (Data/Command)
RST: Pin for Reset
CS: Pin for Chip Select
Usage: LCD5110 myGLCD(8, 9, 10, 11, 12); // Start an instance of the LCD5110 class

InitLCD([contrast]);
Initialize the LCD.

Parameters: contrast: <optional>


Specify a value to use for contrast (0-127)
Default is 70
Usage: myGLCD.initLCD(); // Initialize the display
Notes: This will reset and clear the display.

setContrast(contrast);
Set the contrast of the LCD.

Parameters: contrast: Specify a value to use for contrast (0-127)


Usage: myGLCD.setContrast(70); // Sets the contrast to the default value of 70

enableSleep();
Put the display in Sleep Mode.

Parameters: None
Usage: myGLCD.enableSleep(); // Put the display into Sleep Mode
Notes: update() will not work while the display is in Sleep Mode.
Entering Sleep Mode will not turn off the backlight as this is a hardware function.

disableSleep();
Re-enable the display after it has been put in Sleep Mode.

Parameters: None
Usage: myGLCD.disableSleep(); // Wake the display after putting it into Sleep Mode
Notes: The display will automatically be updated with the contents of the buffer when Sleep Mode is
disabled.
Exiting Sleep Mode will not turn on the backlight as this is a hardware function.

LCD5110_Graph Page 4
update();
Copy the screen buffer to the screen.
This is the only command, except invert(), that will make anything happen on the physical screen. All other commands only
modify the screen buffer.

Parameters: None
Usage: myGLCD.update(); // Copy the screen buffer to the screen
Notes: Remember to call update() after you have updated the screen buffer.
Calling update() while the display is in Sleep Mode will not have any effect.

clrScr();
Clear the screen buffer.

Parameters: None
Usage: myGLCD.clrScr(); // Clear the screen buffer

fillScr();
Fill the screen buffer.

Parameters: None
Usage: myGLCD.fillScr(); // Fill the screen buffer

invert(mode);
Set inversion of the display on or off.

Parameters: mode: true - Invert the display


false – Normal display
Usage: myGLCD.invert(true); // Set display inversion on

setPixel(x, y);
Turn on the specified pixel in the screen buffer.

Parameters: x: x-coordinate of the pixel


y: y-coordinate of the pixel
Usage: myGLCD.setPixel(0, 0); // Turn on the upper left pixel (in the screen buffer)

clrPixel(x, y);
Turn off the specified pixel in the screen buffer.

Parameters: x: x-coordinate of the pixel


y: y-coordinate of the pixel
Usage: myGLCD.clrPixel(0, 0); // Turn off the upper left pixel (in the screen buffer)

invPixel(x, y);
Invert the state of the specified pixel in the screen buffer.

Parameters: x: x-coordinate of the pixel


y: y-coordinate of the pixel
Usage: myGLCD.invPixel(0, 0); // Invert the upper left pixel (in the screen buffer)

LCD5110_Graph Page 5
print(st, x, y);
Print a string at the specified coordinates in the screen buffer.
You can use the literals LEFT, CENTER and RIGHT as the x-coordinate to align the string on the screen.

Parameters: st: the string to print


x: x-coordinate of the upper, left corner of the first character
y: y-coordinate of the upper, left corner of the first character
Usage: myGLCD.print(“Hello World”,CENTER,0); // Print “Hello World” centered at the top of the screen (in
the screen buffer)
Notes: The string can be either a char array or a String object

printNumI(num, x, y[, length[, filler]]);


Print an integer number at the specified coordinates in the screen buffer.
You can use the literals LEFT, CENTER and RIGHT as the x-coordinate to align the string on the screen.

Parameters: num: the value to print (-2,147,483,648 to 2,147,483,647) INTEGERS ONLY


x: x-coordinate of the upper, left corner of the first digit/sign
y: y-coordinate of the upper, left corner of the first digit/sign
length: <optional>
minimum number of digits/characters (including sign) to display
filler: <optional>
filler character to use to get the minimum length. The character will be inserted in front
of the number, but after the sign. Default is ' ' (space).
Usage: myGLCD.print(num,CENTER,0); // Print the value of “num” centered at the top of the screen (in the
screen buffer)

printNumF(num, dec, x, y[, divider[, length[, filler]]]);


Print a floating-point number at the specified coordinates in the screen buffer.
You can use the literals LEFT, CENTER and RIGHT as the x-coordinate to align the string on the screen.
WARNING: Floating point numbers are not exact, and may yield strange results when compared. Use at your own discretion.

Parameters: num: the value to print (See note)


dec: digits in the fractional part (1-5) 0 is not supported. Use printNumI() instead.
x: x-coordinate of the upper, left corner of the first digit/sign
y: y-coordinate of the upper, left corner of the first digit/sign
divider: <Optional>
Single character to use as decimal point. Default is '.'
length: <optional>
minimum number of digits/characters (including sign) to display
filler: <optional>
filler character to use to get the minimum length. The character will be inserted in front
of the number, but after the sign. Default is ' ' (space).
Usage: myGLCD.print(num, 3, CENTER,0); // Print the value of “num” with 3 fractional digits top centered
(in the screen buffer)
Notes: Supported range depends on the number of fractional digits used.
Approx range is +/- 2*(10^(9-dec))

invertText(mode);
Select if text printed with print(), printNumI() and printNumF() should be inverted.

Parameters: mode: true - Invert the text


false – Normal text
Usage: myGLCD.invertText(true); // Turn on inverted printing
Notes: SetFont() will turn off inverted printing

setFont(fontname);
Select font to use with print(), printNumI() and printNumF().

Parameters: fontname: Name of the array containing the font you wish to use
Usage: myGLCD.setFont(SmallFont); // Select the font called SmallFont
Notes: You must declare the font-array as an external or include it in your sketch.

LCD5110_Graph Page 6
drawLine(x1, y1, x2, y2);
Draw a line between two points in the screen buffer.

Parameters: x1: x-coordinate of the start-point


y1: y-coordinate of the start-point
x2: x-coordinate of the end-point
y2: y-coordinate of the end-point
Usage: myGLCD.drawLine(0,0,83,47); // Draw a line from the upper left to the lower right corner

clrLine(x1, y1, x2, y2);


Clear a line between two points in the screen buffer.

Parameters: x1: x-coordinate of the start-point


y1: y-coordinate of the start-point
x2: x-coordinate of the end-point
y2: y-coordinate of the end-point
Usage: myGLCD.clrLine(0,0,83,47); // Clear a line from the upper left to the lower right corner

drawRect(x1, y1, x2, y2);


Draw a rectangle between two points in the screen buffer.

Parameters: x1: x-coordinate of the start-corner


y1: y-coordinate of the start-corner
x2: x-coordinate of the end-corner
y2: y-coordinate of the end-corner
Usage: myGLCD.drawRect(42,24,83,47); // Draw a rectangle in the lower right corner of the screen

clrRect(x1, y1, x2, y2);


Clear a rectangle between two points in the screen buffer.

Parameters: x1: x-coordinate of the start-corner


y1: y-coordinate of the start-corner
x2: x-coordinate of the end-corner
y2: y-coordinate of the end-corner
Usage: myGLCD.clrRect(42,24,83,47); // Clear a rectangle in the lower right corner of the screen

drawRoundRect(x1, y1, x2, y2);


Draw a rectangle with slightly rounded corners between two points in the screen buffer.
The minimum size is 5 pixels in both directions. If a smaller size is requested the rectangle will not be drawn.

Parameters: x1: x-coordinate of the start-corner


y1: y-coordinate of the start-corner
x2: x-coordinate of the end-corner
y2: y-coordinate of the end-corner
Usage: myGLCD.drawRoundRect(0,0,41,23); // Draw a rounded rectangle in the upper left corner of the screen

clrRoundRect(x1, y1, x2, y2);


Clear a rectangle with slightly rounded corners between two points in the screen buffer.
The minimum size is 5 pixels in both directions. If a smaller size is requested the rectangle will not be drawn/cleared.

Parameters: x1: x-coordinate of the start-corner


y1: y-coordinate of the start-corner
x2: x-coordinate of the end-corner
y2: y-coordinate of the end-corner
Usage: myGLCD.clrRoundRect(0,0,41,23); // Clear a rounded rectangle in the upper left corner of the screen

drawCircle(x, y, radius);
Draw a circle with a specified radius in the screen buffer.

Parameters: x: x-coordinate of the center of the circle


y: y-coordinate of the center of the circle
radius: radius of the circle in pixels
Usage: myGLCD.drawCircle(41,23,20); // Draw a circle in the middle of the screen with a radius of 20 pixels

clrCircle(x, y, radius);
Clear a circle with a specified radius in the screen buffer.

Parameters: x: x-coordinate of the center of the circle


y: y-coordinate of the center of the circle
radius: radius of the circle in pixels
Usage: myGLCD.clrCircle(41,23,20); // Clear a circle in the middle of the screen with a radius of 20 pixels

LCD5110_Graph Page 7
drawBitmap (x, y, data, sx, sy);
Draw a bitmap in the screen buffer.

Parameters: x: x-coordinate of the upper, left corner of the bitmap


y: y-coordinate of the upper, left corner of the bitmap
data: array containing the bitmap-data
sx: width of the bitmap in pixels
sy: height of the bitmap in pixels
Usage: myGLCD.drawBitmap(0, 0, bitmap, 32, 32); // Draw a 32x32 pixel bitmap in the upper left corner
Notes: You can use the online-tool “ImageConverter Mono” to convert pictures into compatible arrays.
The online-tool can be found on my website.
Requires that you #include <avr/pgmspace.h> when using an Arduino other than Arduino Due.
While the bitmap data MUST be a multiple of 8 pixels high you do not need to display all the rows.
Example: If the bitmap is 24 pixels high and you specify sy=20 only the upper 20 rows will be
displayed.

LCD5110_Graph Page 8

You might also like