Questo sito non è ne attivo ne aggiornato, specialmente la pagina del download รจ ferma a 5 vesioni fa , utilizzate il sito in inglese finchè questo sito non sarà annunciato ufficialmente
Learning Examples | Foundations | Hacking | Links
In this tutorial you will control a Liquid Crystal Display (LCD) using the Arduino LiquidCrystal library. The library provides functions for accessing any LCD using the common HD44780 parallel interface chipset, such as those available from Sparkfun. It currently implements 8-bit control and one line display of 5x7 characters. Functions are provided to initialize the screen, to print characters and strings, to clear the screen, and to send commands directly to the HD44780 chip. This tutorial will walk you through the steps of wiring an LCD to an Arduino microcontroller board and implementing each of these functions.
Materials needed:
For a basic explanation of how libraries work in Arduino read the library page. Download the LiquidCrystal library here. Unzip the files and place the whole LiquidCrystal folder inside your arduino-0004\lib\targets\libraries folder. Start the Arduino program and check to make sure LiquidCrystal is now available as an option in the Sketch menu under "Import Library".
Solder a header to the LCD board if one is not present already.

Insert the LCD header into the breadboard and connect power and ground on the breadboard to power and ground from the microcontroller. On the Arduino module, use the 5V and any of the ground connections.

Connect wires from the breadboard to the arduino input sockets. It is a lot of wires, so keep them as short and tidy as possible. Look at the datasheet for your LCD board to figure out which pins are where. Make sure to take note of whether the pin view is from the front or back side of the LCD board, you don't want to get your pins reversed!
The pinout is as follows:
Arduino LCD 2 Enable 3 Data Bit 0 (DB0) 4 (DB1) 5 (DB2) 6 (DB3) 7 (DB4) 8 (DB5) 9 (DB6) 10 (DB7) 11 Read/Write (RW) 12 Register Select (RS)

Connect a potentiometer a a voltage divider between 5V, Ground, and the contrast adjustment pin on your LCD.

Additionally you may want to connect an LED for debugging purposes between pin 13 and Ground.
First start by opening a new sketch in Arduino and saving it. Now go to the Sketch menu, scroll down to "import library", and choose "LiquidCrystal". The phrase #include <LiquidCrystal.h> should pop up at the top of your sketch.
The first program we are going to try is simply for calibration and debugging. Copy the following code into your sketch, compile and upload to the Arduino.
#include <LiquidCrystal.h> //include LiquidCrystal library
LiquidCrystal lcd = LiquidCrystal(); //create a LiquidCrystal object to control an LCD
void setup(void){
lcd.init(); //initialize the LCD
digitalWrite(13,HIGH); //turn on an LED for debugging
}
void loop(void){
delay(1000); //repeat forever
}
If all went as planned both the LCD and the LED should turn on. Now you can use the potentiometer to adjust the contrast on the LCD until you can clearly see a cursor at the beginning of the first line. If you turn the potentiometer too far in one direction black blocks will appear. Too far in the other direction everything will fade from the display. There should be a small spot in the middle where the cursor appears crisp and dark.

Now let's try something a little more interesting. Compile and upload the following code to the Arduino.
#include <LiquidCrystal.h> //include LiquidCrystal library
LiquidCrystal lcd = LiquidCrystal(); //create a LiquidCrystal object to control an LCD
void setup(void){
lcd.init(); //initialize the LCD
digitalWrite(13,HIGH); //turn on an LED for debugging
}
void loop(void){
lcd.clear(); //clear the display
delay(1000); //delay 1000 ms to view change
lcd.print('a'); //send individual letters to the LCD
lcd.print('b');
lcd.print('c');
delay(1000);//delay 1000 ms to view change
} //repeat forever
This time you should see the letters a b and c appear and clear from the display in an endless loop.

This is all great fun, but who really wants to type out each letter of a message indivually? Enter the printIn() function. Simply initialize a string, pass it to printIn(), and now we have ourselves a proper hello world program.
#include <LiquidCrystal.h> //include LiquidCrystal library
LiquidCrystal lcd = LiquidCrystal(); //create a LiquidCrystal object to control an LCD
char string1[] = "Hello!"; //variable to store the string "Hello!"
void setup(void){
lcd.init(); //initialize the LCD
digitalWrite(13,HIGH); //turn on an LED for debugging
}
void loop(void){
lcd.clear(); //clear the display
delay(1000); //delay 1000 ms to view change
lcd.printIn(string1); //send the string to the LCD
delay(1000); //delay 1000 ms to view change
} //repeat forever
Finally, you should know there is a lot of functionality in the HD44780 chip interface that is not drawn out into Arduino functions. If you are feeling ambitious glance over the datasheet and try out some of the direct commands using the commandWrite() function. For example, commandWrite(2) tells the board to move the cursor back to starting position. Here is an example:
#include <LiquidCrystal.h> //include LiquidCrystal library
LiquidCrystal lcd = LiquidCrystal(); //create a LiquidCrystal object to control an LCD
char string1[] = "Hello!"; //variable to store the string "Hello!"
void setup(void){
lcd.init(); //initialize the LCD
digitalWrite(13,HIGH); //turn on an LED for debugging
}
void loop(void){
lcd.commandWrite(2); //bring the cursor to the starting position
delay(1000); //delay 1000 ms to view change
lcd.printIn(string1); //send the string to the LCD
delay(1000); //delay 1000 ms to view change
} //repeat forever
This code makes the cursor jump back and forth between the end of the message an the home position.
To interface an LCD directly in Arduino code see this example.
LCD interface library and tutorial by Heather Dewey-Hagborg