Tutorial.LiquidCrystalSerial History

Hide minor edits - Show changes to output

April 09, 2013, at 06:07 PM by Federico -
Added line 13:
* pin headers to solder to the LCD display pins
Added line 22:
Before wiring the LCD screen to your Arduino we suggest to solder a pin header strip to the 14 (or 16) pin count connector of the LCD screen, as you can see in the image above.\\
Deleted line 66:
December 10, 2012, at 04:14 PM by Scott Fitzgerald -
Changed line 21 from:
To wire your LED screen to your Arduino, connect the following pins:
to:
To wire your LCD screen to your Arduino, connect the following pins:
November 16, 2011, at 04:37 AM by Scott Fitzgerald -
Changed lines 44-45 from:
(:source http://arduino.cc/en/pub/code/master/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.pde lang=arduino tabwidth=4:)
to:
(:source http://arduino.cc/en/pub/code/master/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.ino lang=arduino tabwidth=4:)
September 23, 2010, at 10:50 PM by Christian Cerrito -
Changed lines 3-4 from:
!!LiquidCrystal - Serial Input
to:
!!!LiquidCrystal - Serial Input
September 21, 2010, at 11:18 PM by Christian Cerrito -
Changed lines 53-55 from:
* [[Reference/LiquidCrystalScrollDisplayLeft | @@lcd.scrollDisplayLeft()@@]]
* [[Reference/LiquidCrystalScrollDisplayRight | @@lcd.scrollDisplayRight()@@]]
to:
* [[Reference/LiquidCrystalClear| @@lcd.clear()@@]]
* [[Reference/LiquidCrystalWrite | @@lcd.write()@@]]
September 21, 2010, at 11:16 PM by Christian Cerrito -
Changed lines 5-6 from:
The LiquidCrystal library allows you to control LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.
to:
The [[Reference/LiquidCrystal | '''Liquid Crystal Library''']] allows you to control LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.
Added lines 51-56:
* [[Reference/LiquidCrystalBegin | @@lcd.begin()@@]]
* [[Reference/LiquidCrystalPrint | @@lcd.print()@@]]
* [[Reference/LiquidCrystalScrollDisplayLeft | @@lcd.scrollDisplayLeft()@@]]
* [[Reference/LiquidCrystalScrollDisplayRight | @@lcd.scrollDisplayRight()@@]]

* [[Reference/LiquidCrystal | Liquid Crystal Library]]
Deleted line 61:
* [[LiquidCrystalSerial |Serial input]]: accepts serial input, displays it.
September 21, 2010, at 09:02 AM by Christian Cerrito -
Changed lines 9-10 from:
(:include LiquidCrystalCircuit :)
to:
(:div class=BOM :)
!!!Hardware Required
* Arduino Board
* LCD Screen (compatible with Hitachi HD44780 driver)
* 10k Potentiometer
* breadboard
* hook-up wire

(:divend:)

!!!Circuit
(:div class=circuit :)
To wire your LED screen to your Arduino, connect the following pins:

* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2

Additionally, wire a 10K pot to +5V and GND, with it's wiper (output) to LCD screen's VO pin (pin3).

[-click the images to enlarge-]

%height=300px%[[Attach:LCD_bb.png | Attach:LCD_bb.png]]
[-image developed using [[http://www.fritzing.org |Fritzing]]. For more circuit examples, see the [[http://fritzing.org/projects/|Fritzing project page]] -]

%height=300px%[[Attach:LCD_schem.png | Attach:LCD_schem.png]]

(:divend:)

Changed lines 46-60 from:
(:divend:)
to:
(:divend:)


!!!See Also:

* [[LiquidCrystalBlink | Blink]]: control of the block-style cursor.
* [[LiquidCrystalCursor | Cursor]]: control of the underscore-style cursor.
* [[LiquidCrystalDisplay| Display]]: quickly blank the display without losing what's on it.
* [[LiquidCrystalTextDirection | TextDirection]]: control which way text flows from the cursor.
* [[LiquidCrystalScroll| Scroll]]: scroll text left and right.
* [[LiquidCrystalSerial |Serial input]]: accepts serial input, displays it.
* [[LiquidCrystalSetCursor| SetCursor]]: set the cursor position.
* [[LiquidCrystalAutoscroll | Autoscroll]]: shift text right and left.

February 09, 2010, at 12:34 AM by Tom Igoe -
Changed lines 13-76 from:

%color=#7e7e7e%/*
%color=#7e7e7e% LiquidCrystal Library - Serial Input
%color=#7e7e7e%
%color=#7e7e7e% Demonstrates the use a 16x2 LCD display. The LiquidCrystal
%color=#7e7e7e% library works with all LCD displays that are compatible with the
%color=#7e7e7e% Hitachi HD44780 driver. There are many of them out there, and you
%color=#7e7e7e% can usually tell them by the 16-pin interface.
%color=#7e7e7e%
%color=#7e7e7e% This sketch displays text sent over the serial port
%color=#7e7e7e% (e.g. from the Serial Monitor) on an attached LCD.
%color=#7e7e7e%
%color=#7e7e7e% The circuit:
%color=#7e7e7e% * LCD RS pin to digital pin 12
%color=#7e7e7e% * LCD Enable pin to digital pin 11
%color=#7e7e7e% * LCD D4 pin to digital pin 5
%color=#7e7e7e% * LCD D5 pin to digital pin 4
%color=#7e7e7e% * LCD D6 pin to digital pin 3
%color=#7e7e7e% * LCD D7 pin to digital pin 2
%color=#7e7e7e% * 10K resistor:
%color=#7e7e7e% * ends to +5V and ground
%color=#7e7e7e% * wiper to LCD VO pin (pin 3)
%color=#7e7e7e%
%color=#7e7e7e% Library originally added 18 Apr 2008
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e% library modified 5 Jul 2009
%color=#7e7e7e% by Limor Fried (http://www.ladyada.net)
%color=#7e7e7e% example added 9 Jul 2009
%color=#7e7e7e% by Tom Igoe
%color=#7e7e7e%modified 25 July 2009
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e%
%color=#7e7e7e% http://www.arduino.cc/en/Tutorial/LiquidCrystal
%color=#7e7e7e% */

%color=#7e7e7e%// include the library code:
#include <%color=#cc6600%LiquidCrystal%%.h>

%color=#7e7e7e%// initialize the library with the numbers of the interface pins
%color=#cc6600%LiquidCrystal%% lcd(12, 11, 5, 4, 3, 2);

%color=#cc6600%void%% %color=#cc6600%'''setup'''%%(){
%color=#7e7e7e%// set up the LCD's number of rows and columns:
lcd.%color=#cc6600%begin%%(16, 2);
%color=#7e7e7e%// initialize the serial communications:
%color=#cc6600%Serial%%.%color=#cc6600%begin%%(9600);
}

%color=#cc6600%void%% %color=#cc6600%'''loop'''%%()
{
%color=#7e7e7e%// when characters arrive over the serial port...
%color=#cc6600%if%% (%color=#cc6600%Serial%%.%color=#cc6600%available%%()) {
%color=#7e7e7e%// wait a bit for the entire message to arrive
%color=#cc6600%delay%%(100);
%color=#7e7e7e%// clear the screen
lcd.%color=#cc6600%clear%%();
%color=#7e7e7e%// read all the available characters
%color=#cc6600%while%% (%color=#cc6600%Serial%%.%color=#cc6600%available%%() > 0) {
%color=#7e7e7e%// display each character to the LCD
lcd.%color=#cc6600%write%%(%color=#cc6600%Serial%%.%color=#cc6600%read%%());
}
}
}
to:
(:source http://arduino.cc/en/pub/code/master/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.pde lang=arduino tabwidth=4:)
August 05, 2009, at 05:14 PM by Tom Igoe -
Deleted lines 12-45:

%color=#7e7e7e%/*
%color=#7e7e7e% LiquidCrystal Library - Autoscroll
%color=#7e7e7e%
%color=#7e7e7e% Demonstrates the use a 16x2 LCD display. The LiquidCrystal
%color=#7e7e7e% library works with all LCD displays that are compatible with the
%color=#7e7e7e% Hitachi HD44780 driver. There are many of them out there, and you
%color=#7e7e7e% can usually tell them by the 16-pin interface.
%color=#7e7e7e%
%color=#7e7e7e% This sketch demonstrates the use of the autoscroll()
%color=#7e7e7e% and noAutoscroll() functions to make new text scroll or not.
%color=#7e7e7e%
%color=#7e7e7e% The circuit:
%color=#7e7e7e% * LCD RS pin to digital pin 12
%color=#7e7e7e% * LCD Enable pin to digital pin 11
%color=#7e7e7e% * LCD D4 pin to digital pin 5
%color=#7e7e7e% * LCD D5 pin to digital pin 4
%color=#7e7e7e% * LCD D6 pin to digital pin 3
%color=#7e7e7e% * LCD D7 pin to digital pin 2
%color=#7e7e7e% * 10K resistor:
%color=#7e7e7e% * ends to +5V and ground
%color=#7e7e7e% * wiper to LCD VO pin (pin 3)
%color=#7e7e7e%
%color=#7e7e7e% Library originally added 18 Apr 2008
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e% library modified 5 Jul 2009
%color=#7e7e7e% by Limor Fried (http://www.ladyada.net)
%color=#7e7e7e% example added 9 Jul 2009
%color=#7e7e7e% by Tom Igoe
%color=#7e7e7e% modified 25 July 2009
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e%
%color=#7e7e7e% http://www.arduino.cc/en/Tutorial/LiquidCrystal
%color=#7e7e7e% */
Changed lines 14-51 from:
%color=#7e7e7e%// include the library code:
#include <%color=#cc6600%LiquidCrystal%%.h>

%color=#7e7e7e%// initialize the library with the numbers of the interface pins
%color=#cc6600%LiquidCrystal%% lcd(12, 11, 5, 4, 3, 2);

%color=#cc6600%void%% %color=#cc6600%'''setup'''%%() {
%color=#7e7e7e%// set up the LCD's number of columns and rows:
lcd.%color=#cc6600%begin%%(16,2);
}

%color=#cc6600%void%% %color=#cc6600%'''loop'''%%() {
%color=#7e7e7e%// set the cursor to (0,0):
lcd.%color=#cc6600%setCursor%%(0, 0);
%color=#7e7e7e%// print from 0 to 9:
%color=#cc6600%for%% (%color=#cc6600%int%% thisChar = 0; thisChar < 10; thisChar++) {
lcd.%color=#cc6600%print%%(thisChar);
%color=#cc6600%delay%%(500);
}

%color=#7e7e7e%// set the cursor to (16,1):
lcd.%color=#cc6600%setCursor%%(16,1);
%color=#7e7e7e%// set the display to automatically scroll:
lcd.%color=#cc6600%autoscroll%%();
%color=#7e7e7e%// print from 0 to 9:
%color=#cc6600%for%% (%color=#cc6600%int%% thisChar = 0; thisChar < 10; thisChar++) {
lcd.%color=#cc6600%print%%(thisChar);
%color=#cc6600%delay%%(500);
}
%color=#7e7e7e%// turn off automatic scrolling
lcd.%color=#cc6600%noAutoscroll%%();

%color=#7e7e7e%// clear screen for the next loop:
lcd.%color=#cc6600%clear%%();
}


(:divend:)
to:
%color=#7e7e7e%/*
%color=#7e7e7e% LiquidCrystal Library - Serial Input
%color=#7e7e7e%
%color=#7e7e7e% Demonstrates the use a 16x2 LCD display. The LiquidCrystal
%color=#7e7e7e% library works with all LCD displays that are compatible with the
%color=#7e7e7e% Hitachi HD44780 driver. There are many of them out there, and you
%color=#7e7e7e% can usually tell them by the 16-pin interface.
%color=#7e7e7e%
%color=#7e7e7e% This sketch displays text sent over the serial port
%color=#7e7e7e% (e.g. from the Serial Monitor) on an attached LCD.
%color=#7e7e7e%
%color=#7e7e7e% The circuit:
%color=#7e7e7e% * LCD RS pin to digital pin 12
%color=#7e7e7e% * LCD Enable pin to digital pin 11
%color=#7e7e7e% * LCD D4 pin to digital pin 5
%color=#7e7e7e% * LCD D5 pin to digital pin 4
%color=#7e7e7e% * LCD D6 pin to digital pin 3
%color=#7e7e7e% * LCD D7 pin to digital pin 2
%color=#7e7e7e% * 10K resistor:
%color=#7e7e7e% * ends to +5V and ground
%color=#7e7e7e% * wiper to LCD VO pin (pin 3)
%color=#7e7e7e%
%color=#7e7e7e% Library originally added 18 Apr 2008
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e% library modified 5 Jul 2009
%color=#7e7e7e% by Limor Fried (http://www.ladyada.net)
%color=#7e7e7e% example added 9 Jul 2009
%color=#7e7e7e% by Tom Igoe
%color=#7e7e7e%modified 25 July 2009
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e%
%color=#7e7e7e% http://www.arduino.cc/en/Tutorial/LiquidCrystal
%color=#7e7e7e% */

%color=#7e7e7e%// include the library code:
#include <%color=#cc6600%LiquidCrystal%%.h>

%color=#7e7e7e%// initialize the library with the numbers of the interface pins
%color=#cc6600%LiquidCrystal%% lcd(12, 11, 5, 4, 3, 2);

%color=#cc6600%void%% %color=#cc6600%'''setup'''%%(){
%color=#7e7e7e%// set up the LCD's number of rows and columns:
lcd.%color=#cc6600%begin%%(16, 2);
%color=#7e7e7e%// initialize the serial communications:
%color=#cc6600%Serial%%.%color=#cc6600%begin%%(9600);
}

%color=#cc6600%void%% %color=#cc6600%'''loop'''%%()
{
%color=#7e7e7e%// when characters arrive over the serial port...
%color=#cc6600%if%% (%color=#cc6600%Serial%%.%color=#cc6600%available%%()) {
%color=#7e7e7e%// wait a bit for the entire message to arrive
%color=#cc6600%delay%%(100);
%color=#7e7e7e%// clear the screen
lcd.%color=#cc6600%clear%%();
%color=#7e7e7e%// read all the available characters
%color=#cc6600%while%% (%color=#cc6600%Serial%%.%color=#cc6600%available%%() > 0) {
%color=#7e7e7e%// display each character to the LCD
lcd.%color=#cc6600%write%%(%color=#cc6600%Serial%%.%color=#cc6600%read%%());
}
}
}

(:divend:)
August 05, 2009, at 05:11 PM by Tom Igoe -
Added lines 13-46:

%color=#7e7e7e%/*
%color=#7e7e7e% LiquidCrystal Library - Autoscroll
%color=#7e7e7e%
%color=#7e7e7e% Demonstrates the use a 16x2 LCD display. The LiquidCrystal
%color=#7e7e7e% library works with all LCD displays that are compatible with the
%color=#7e7e7e% Hitachi HD44780 driver. There are many of them out there, and you
%color=#7e7e7e% can usually tell them by the 16-pin interface.
%color=#7e7e7e%
%color=#7e7e7e% This sketch demonstrates the use of the autoscroll()
%color=#7e7e7e% and noAutoscroll() functions to make new text scroll or not.
%color=#7e7e7e%
%color=#7e7e7e% The circuit:
%color=#7e7e7e% * LCD RS pin to digital pin 12
%color=#7e7e7e% * LCD Enable pin to digital pin 11
%color=#7e7e7e% * LCD D4 pin to digital pin 5
%color=#7e7e7e% * LCD D5 pin to digital pin 4
%color=#7e7e7e% * LCD D6 pin to digital pin 3
%color=#7e7e7e% * LCD D7 pin to digital pin 2
%color=#7e7e7e% * 10K resistor:
%color=#7e7e7e% * ends to +5V and ground
%color=#7e7e7e% * wiper to LCD VO pin (pin 3)
%color=#7e7e7e%
%color=#7e7e7e% Library originally added 18 Apr 2008
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e% library modified 5 Jul 2009
%color=#7e7e7e% by Limor Fried (http://www.ladyada.net)
%color=#7e7e7e% example added 9 Jul 2009
%color=#7e7e7e% by Tom Igoe
%color=#7e7e7e% modified 25 July 2009
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e%
%color=#7e7e7e% http://www.arduino.cc/en/Tutorial/LiquidCrystal
%color=#7e7e7e% */
Changed lines 48-109 from:
%color=#7e7e7e%/*
%color=#7e7e7e% LiquidCrystal Library - Serial Input
%color=#7e7e7e%
%color=#7e7e7e% Demonstrates the use a 16x2 LCD display. The LiquidCrystal
%color=#7e7e7e% library works with all LCD displays that are compatible with the
%color=#7e7e7e% Hitachi HD44780 driver. There are many of them out there, and you
%color=#7e7e7e% can usually tell them by the 16-pin interface.
%color=#7e7e7e%
%color=#7e7e7e% This sketch displays text sent over the serial port
%color=#7e7e7e% (e.g. from the Serial Monitor) on an attached LCD.
%color=#7e7e7e%
%color=#7e7e7e% The circuit:
%color=#7e7e7e% * LCD RS pin to digital pin 12
%color=#7e7e7e% * LCD Enable pin to digital pin 11
%color=#7e7e7e% * LCD D4 pin to digital pin 5
%color=#7e7e7e% * LCD D5 pin to digital pin 4
%color=#7e7e7e% * LCD D6 pin to digital pin 3
%color=#7e7e7e% * LCD D7 pin to digital pin 2
%color=#7e7e7e% * 10K resistor:
%color=#7e7e7e% * ends to +5V and ground
%color=#7e7e7e% * wiper to LCD VO pin (pin 3)
%color=#7e7e7e%
%color=#7e7e7e% Library originally added 18 Apr 2008
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e% library modified 5 Jul 2009
%color=#7e7e7e% by Limor Fried (http://www.ladyada.net)
%color=#7e7e7e% example added 9 Jul 2009
%color=#7e7e7e% by Tom Igoe
%color=#7e7e7e%
%color=#7e7e7e% http://www.arduino.cc/en/Tutorial/LiquidCrystal
%color=#7e7e7e% */

%color=#7e7e7e%// include the library code:
#include <LiquidCrystal.h>

%color=#7e7e7e%// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

%color=#cc6600%void%% %color=#cc6600%'''setup'''%%(){
%color=#7e7e7e%// set up the LCD's number of rows and columns:
lcd.%color=#cc6600%begin%%(2, 16);
%color=#7e7e7e%// initialize the serial communications:
%color=#cc6600%Serial%%.%color=#cc6600%begin%%(9600);
}

%color=#cc6600%void%% %color=#cc6600%'''loop'''%%()
{
%color=#7e7e7e%// when characters arrive over the serial port...
%color=#cc6600%if%% (%color=#cc6600%Serial%%.%color=#cc6600%available%%()) {
%color=#7e7e7e%// wait a bit for the entire message to arrive
%color=#cc6600%delay%%(100);
%color=#7e7e7e%// clear the screen
lcd.clear();
%color=#7e7e7e%// read all the available characters
%color=#cc6600%while%% (%color=#cc6600%Serial%%.%color=#cc6600%available%%() > 0) {
%color=#7e7e7e%// display each character to the LCD
lcd.write(%color=#cc6600%Serial%%.%color=#cc6600%read%%());
}
}
}

(:divend:)
to:
%color=#7e7e7e%// include the library code:
#include <%color=#cc6600%LiquidCrystal%%.h>

%color=#7e7e7e%// initialize the library with the numbers of the interface pins
%color=#cc6600%LiquidCrystal%% lcd(12, 11, 5, 4, 3, 2);

%color=#cc6600%void%% %color=#cc6600%'''setup'''%%() {
%color=#7e7e7e%// set up the LCD's number of columns and rows:
lcd.%color=#cc6600%begin%%(16,2);
}

%color=#cc6600%void%% %color=#cc6600%'''loop'''%%() {
%color=#7e7e7e%// set the cursor to (0,0):
lcd.%color=#cc6600%setCursor%%(0, 0);
%color=#7e7e7e%// print from 0 to 9:
%color=#cc6600%for%% (%color=#cc6600%int%% thisChar = 0; thisChar < 10; thisChar++) {
lcd.%color=#cc6600%print%%(thisChar);
%color=#cc6600%delay%%(500);
}

%color=#7e7e7e%// set the cursor to (16,1):
lcd.%color=#cc6600%setCursor%%(16,1);
%color=#7e7e7e%// set the display to automatically scroll:
lcd.%color=#cc6600%autoscroll%%();
%color=#7e7e7e%// print from 0 to 9:
%color=#cc6600%for%% (%color=#cc6600%int%% thisChar = 0; thisChar < 10; thisChar++) {
lcd.%color=#cc6600%print%%(thisChar);
%color=#cc6600%delay%%(500);
}
%color=#7e7e7e%// turn off automatic scrolling
lcd.%color=#cc6600%noAutoscroll%%();

%color=#7e7e7e%// clear screen for the next loop:
lcd.%color=#cc6600%clear%%();
}


(:divend:)
July 09, 2009, at 10:04 PM by Tom Igoe -
Changed lines 27-28 from:
%color=#7e7e7e% * LCD R/W pin to digital pin 11
%color=#7e7e7e% * LCD Enable pin to digital pin 10
to:
%color=#7e7e7e% * LCD Enable pin to digital pin 11
Changed lines 39-40 from:
%color=#7e7e7e% by Limor Fried
%color=#7e7e7e% example added 7 Jul 2009
to:
%color=#7e7e7e% by Limor Fried (http://www.ladyada.net)
%color=#7e7e7e% example added 9 Jul 2009
Changed line 50 from:
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
to:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Changed line 53 from:
%color=#7e7e7e%// set up the LCD's number of columns and rows:
to:
%color=#7e7e7e%// set up the LCD's number of rows and columns:
July 08, 2009, at 10:19 PM by Tom Igoe -
Changed lines 3-4 from:
!!LiquidCrystal
to:
!!LiquidCrystal - Serial Input
July 08, 2009, at 08:02 PM by Tom Igoe -
July 08, 2009, at 08:01 PM by Tom Igoe -
Deleted lines 8-11:

'''NOTE: The LiquidCrystal library has undergone revisions after Arduino version 0016.''' Thanks to Limor Fried for the rewrite to include 4-bit and 8-bit modes and more functionality. If you are running Arduino 0016 or earlier, please download the [[http://tigoe.net/arduino/libraries/LiquidCrystal.zip |current version of the LiquidCrystal library]] and install it in your hardware/libraries folder.

Users of 0017 and later will not need to install the update.
July 08, 2009, at 08:00 PM by Tom Igoe -
Changed lines 13-46 from:

!!!Other LiquidCrystal Library Examples

* [[LiquidCrystal |Hello World]] - displays "hello world!" and the seconds since reset
* Blink
* Cursor
* Display
* IncrementDecrement
* Scroll
* [[LiquidCrystalSerial |Serial input]] - accepts serial input, displays it
* SetCursor
* Shift

!!!Circuit

* LCD RS pin connected to digital I/O pin 12
* LCD R/W pin connected to digital I/O pin 11
* LCD enable pin connected to digital I/O pin 10
* LCD pins D0 - D3 connected to digital I/O pins 2 through 5, respectively
* LCD voltage and ground connected to +5V and ground
* LCD Vo pin, which controls the contrast, connected to a potentiometer. Adjust the potentiometer to get the text to display at the contrast ratio you want.


[-click the image to enlarge-]

%width=400px%[[Attach:lcd_bb.png | Attach:lcd_bb.png]]

'''Schematic:'''

[-click the image to enlarge-]

%width=400px%[[Attach:lcd_schem.png | Attach:lcd_schem.png]]

to:
(:include LiquidCrystalCircuit :)
July 08, 2009, at 07:58 PM by Tom Igoe -
Changed line 30 from:
* LCD enavle pin connected to digital I/O pin 10
to:
* LCD enable pin connected to digital I/O pin 10
July 08, 2009, at 06:50 PM by Tom Igoe -
Changed line 16 from:
* [[LiquidCrystal|HelloWorld]] - displays "hello world!" and the seconds since reset
to:
* [[LiquidCrystal |Hello World]] - displays "hello world!" and the seconds since reset
July 08, 2009, at 06:49 PM by Tom Igoe -
Changed line 22 from:
* [[LiquidCrystalSerial|Serial input]] - accepts serial input, displays it
to:
* [[LiquidCrystalSerial |Serial input]] - accepts serial input, displays it
July 08, 2009, at 06:49 PM by Tom Igoe -
Changed line 22 from:
* [[Serial| LiquidCrystalSerial]] - accepts serial input, displays it
to:
* [[LiquidCrystalSerial|Serial input]] - accepts serial input, displays it
July 08, 2009, at 06:49 PM by Tom Igoe -
Added lines 14-25:
!!!Other LiquidCrystal Library Examples

* [[LiquidCrystal|HelloWorld]] - displays "hello world!" and the seconds since reset
* Blink
* Cursor
* Display
* IncrementDecrement
* Scroll
* [[Serial| LiquidCrystalSerial]] - accepts serial input, displays it
* SetCursor
* Shift
July 08, 2009, at 06:44 PM by Tom Igoe -
Added lines 1-100:
''Examples > Libraries > LiquidCrystal''

!!LiquidCrystal

The LiquidCrystal library allows you to control LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.

This example sketch accepts serial input from a host computer and displays it on the LCD. To use it, upload the sketch, then open the Serial Monitor and type some characters and click Send. The text will appear on your LCD.


'''NOTE: The LiquidCrystal library has undergone revisions after Arduino version 0016.''' Thanks to Limor Fried for the rewrite to include 4-bit and 8-bit modes and more functionality. If you are running Arduino 0016 or earlier, please download the [[http://tigoe.net/arduino/libraries/LiquidCrystal.zip |current version of the LiquidCrystal library]] and install it in your hardware/libraries folder.

Users of 0017 and later will not need to install the update.

!!!Circuit

* LCD RS pin connected to digital I/O pin 12
* LCD R/W pin connected to digital I/O pin 11
* LCD enavle pin connected to digital I/O pin 10
* LCD pins D0 - D3 connected to digital I/O pins 2 through 5, respectively
* LCD voltage and ground connected to +5V and ground
* LCD Vo pin, which controls the contrast, connected to a potentiometer. Adjust the potentiometer to get the text to display at the contrast ratio you want.


[-click the image to enlarge-]

%width=400px%[[Attach:lcd_bb.png | Attach:lcd_bb.png]]

'''Schematic:'''

[-click the image to enlarge-]

%width=400px%[[Attach:lcd_schem.png | Attach:lcd_schem.png]]


!!!Code
(:div class=code :)

%color=#7e7e7e%/*
%color=#7e7e7e% LiquidCrystal Library - Serial Input
%color=#7e7e7e%
%color=#7e7e7e% Demonstrates the use a 16x2 LCD display. The LiquidCrystal
%color=#7e7e7e% library works with all LCD displays that are compatible with the
%color=#7e7e7e% Hitachi HD44780 driver. There are many of them out there, and you
%color=#7e7e7e% can usually tell them by the 16-pin interface.
%color=#7e7e7e%
%color=#7e7e7e% This sketch displays text sent over the serial port
%color=#7e7e7e% (e.g. from the Serial Monitor) on an attached LCD.
%color=#7e7e7e%
%color=#7e7e7e% The circuit:
%color=#7e7e7e% * LCD RS pin to digital pin 12
%color=#7e7e7e% * LCD R/W pin to digital pin 11
%color=#7e7e7e% * LCD Enable pin to digital pin 10
%color=#7e7e7e% * LCD D4 pin to digital pin 5
%color=#7e7e7e% * LCD D5 pin to digital pin 4
%color=#7e7e7e% * LCD D6 pin to digital pin 3
%color=#7e7e7e% * LCD D7 pin to digital pin 2
%color=#7e7e7e% * 10K resistor:
%color=#7e7e7e% * ends to +5V and ground
%color=#7e7e7e% * wiper to LCD VO pin (pin 3)
%color=#7e7e7e%
%color=#7e7e7e% Library originally added 18 Apr 2008
%color=#7e7e7e% by David A. Mellis
%color=#7e7e7e% library modified 5 Jul 2009
%color=#7e7e7e% by Limor Fried
%color=#7e7e7e% example added 7 Jul 2009
%color=#7e7e7e% by Tom Igoe
%color=#7e7e7e%
%color=#7e7e7e% http://www.arduino.cc/en/Tutorial/LiquidCrystal
%color=#7e7e7e% */

%color=#7e7e7e%// include the library code:
#include <LiquidCrystal.h>

%color=#7e7e7e%// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

%color=#cc6600%void%% %color=#cc6600%'''setup'''%%(){
%color=#7e7e7e%// set up the LCD's number of columns and rows:
lcd.%color=#cc6600%begin%%(2, 16);
%color=#7e7e7e%// initialize the serial communications:
%color=#cc6600%Serial%%.%color=#cc6600%begin%%(9600);
}

%color=#cc6600%void%% %color=#cc6600%'''loop'''%%()
{
%color=#7e7e7e%// when characters arrive over the serial port...
%color=#cc6600%if%% (%color=#cc6600%Serial%%.%color=#cc6600%available%%()) {
%color=#7e7e7e%// wait a bit for the entire message to arrive
%color=#cc6600%delay%%(100);
%color=#7e7e7e%// clear the screen
lcd.clear();
%color=#7e7e7e%// read all the available characters
%color=#cc6600%while%% (%color=#cc6600%Serial%%.%color=#cc6600%available%%() > 0) {
%color=#7e7e7e%// display each character to the LCD
lcd.write(%color=#cc6600%Serial%%.%color=#cc6600%read%%());
}
}
}

(:divend:)

Share