Introduction
This framed LCD12864 Shield with LED backlight is compatible with most of Arduino controllers and supports English/Chinese/Picture display. With 5 analog extention pins and 8 digital pins, the LCD12864 Shield also integrates a 5-key joystick for controlling addtional functions, making it an ideal module for prototyping and interactive projects.
Specification
- Power supply: 3.3V
- Pin used: D7, D8, D9, D10, D11, D13, A0
- Reset button
- 5 degree joystick (using Arduino Analog Pin 0)
- Backlit control (using Arduino Digital Pin 7)
- Extra 5 Analog pins & 8 Digital pins
- Size:60x55x20mm
Board Overview
Note:
- Please config the driving pin using this U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); command.. And notice to enable this command when using the u8glib example codes also.
- Use "setContrast" to config the contrast as you want. We highly recommend you to setContrast to 0 to get the best display effect.
- "setRot90/setRot180/setRot270" functions will be helpful to rotate the display direction as you want.Recommend to use setRot180.
- For more useful lcd driving functions, please check u8glib userreference page.
Tutorial
Requirements
Hardware
- DFRduino UNO R3 (or similar) x 1
- LCD12864 Shield for Arduino x 1
- M-M/F-M/F-F Jumper wires
Software
- Arduino IDE
- Download and install the U8glib arduino Library. (About how to install the library?)
Sample Code
#include "U8glib.h"
U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, CD = 9, RST = 8
void draw(void) {
// graphic commands to redraw the complete screen should be placed here
u8g.setFont(u8g_font_unifont);
//u8g.setFont(u8g_font_osb21);
u8g.drawStr( 0, 20, "www.DFRobot.com");
}
void setup(void) {
u8g.setContrast(0); // Config the contrast to the best effect
u8g.setRot180();// rotate screen, if required
// set SPI backup if required
//u8g.setHardwareBackup(u8g_backup_avr_spi);
// assign default color value
if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
u8g.setColorIndex(255); // white
}
else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
u8g.setColorIndex(3); // max intensity
}
else if ( u8g.getMode() == U8G_MODE_BW ) {
u8g.setColorIndex(1); // pixel on
}
else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
u8g.setHiColorByRGB(255,255,255);
}
}
void loop(void) {
// picture loop
u8g.firstPage();
do {
draw();
}
while( u8g.nextPage() );
// rebuild the picture after some delay
delay(500);
}