Merge branch 'ide-1.5.x'
This commit is contained in:
24
README.adoc
Normal file
24
README.adoc
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
= Liquid Crystal Library for Arduino =
|
||||||
|
|
||||||
|
This library allows an Arduino board to control LiquidCrystal displays (LCDs) based on the Hitachi HD44780 (or a compatible) chipset, which is found on most text-based LCDs.
|
||||||
|
|
||||||
|
For more information about this library please visit us at
|
||||||
|
http://arduino.cc/en/Reference/LiquidCrystal
|
||||||
|
|
||||||
|
== License ==
|
||||||
|
|
||||||
|
Copyright (c) Arduino LLC. All right reserved.
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
@@ -44,7 +44,7 @@ LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
|
|||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
// set up the LCD's number of columns and rows:
|
// set up the LCD's number of columns and rows:
|
||||||
lcd.begin(16,2);
|
lcd.begin(16, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
@@ -57,7 +57,7 @@ void loop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// set the cursor to (16,1):
|
// set the cursor to (16,1):
|
||||||
lcd.setCursor(16,1);
|
lcd.setCursor(16, 1);
|
||||||
// set the display to automatically scroll:
|
// set the display to automatically scroll:
|
||||||
lcd.autoscroll();
|
lcd.autoscroll();
|
||||||
// print from 0 to 9:
|
// print from 0 to 9:
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ void setup() {
|
|||||||
lcd.print("I ");
|
lcd.print("I ");
|
||||||
lcd.write(byte(0)); // when calling lcd.write() '0' must be cast as a byte
|
lcd.write(byte(0)); // when calling lcd.write() '0' must be cast as a byte
|
||||||
lcd.print(" Arduino! ");
|
lcd.print(" Arduino! ");
|
||||||
lcd.write(1);
|
lcd.write((byte) 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,6 +55,6 @@ void loop() {
|
|||||||
// (note: line 1 is the second row, since counting begins with 0):
|
// (note: line 1 is the second row, since counting begins with 0):
|
||||||
lcd.setCursor(0, 1);
|
lcd.setCursor(0, 1);
|
||||||
// print the number of seconds since reset:
|
// print the number of seconds since reset:
|
||||||
lcd.print(millis()/1000);
|
lcd.print(millis() / 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
// initialize the library with the numbers of the interface pins
|
// initialize the library with the numbers of the interface pins
|
||||||
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
|
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
|
||||||
|
|
||||||
void setup(){
|
void setup() {
|
||||||
// set up the LCD's number of columns and rows:
|
// set up the LCD's number of columns and rows:
|
||||||
lcd.begin(16, 2);
|
lcd.begin(16, 2);
|
||||||
// initialize the serial communications:
|
// initialize the serial communications:
|
||||||
|
|||||||
@@ -1,40 +1,40 @@
|
|||||||
/*
|
/*
|
||||||
LiquidCrystal Library - TextDirection
|
LiquidCrystal Library - TextDirection
|
||||||
|
|
||||||
Demonstrates the use a 16x2 LCD display. The LiquidCrystal
|
Demonstrates the use a 16x2 LCD display. The LiquidCrystal
|
||||||
library works with all LCD displays that are compatible with the
|
library works with all LCD displays that are compatible with the
|
||||||
Hitachi HD44780 driver. There are many of them out there, and you
|
Hitachi HD44780 driver. There are many of them out there, and you
|
||||||
can usually tell them by the 16-pin interface.
|
can usually tell them by the 16-pin interface.
|
||||||
|
|
||||||
This sketch demonstrates how to use leftToRight() and rightToLeft()
|
This sketch demonstrates how to use leftToRight() and rightToLeft()
|
||||||
to move the cursor.
|
to move the cursor.
|
||||||
|
|
||||||
The circuit:
|
The circuit:
|
||||||
* LCD RS pin to digital pin 12
|
* LCD RS pin to digital pin 12
|
||||||
* LCD Enable pin to digital pin 11
|
* LCD Enable pin to digital pin 11
|
||||||
* LCD D4 pin to digital pin 5
|
* LCD D4 pin to digital pin 5
|
||||||
* LCD D5 pin to digital pin 4
|
* LCD D5 pin to digital pin 4
|
||||||
* LCD D6 pin to digital pin 3
|
* LCD D6 pin to digital pin 3
|
||||||
* LCD D7 pin to digital pin 2
|
* LCD D7 pin to digital pin 2
|
||||||
* LCD R/W pin to ground
|
* LCD R/W pin to ground
|
||||||
* 10K resistor:
|
* 10K resistor:
|
||||||
* ends to +5V and ground
|
* ends to +5V and ground
|
||||||
* wiper to LCD VO pin (pin 3)
|
* wiper to LCD VO pin (pin 3)
|
||||||
|
|
||||||
Library originally added 18 Apr 2008
|
Library originally added 18 Apr 2008
|
||||||
by David A. Mellis
|
by David A. Mellis
|
||||||
library modified 5 Jul 2009
|
library modified 5 Jul 2009
|
||||||
by Limor Fried (http://www.ladyada.net)
|
by Limor Fried (http://www.ladyada.net)
|
||||||
example added 9 Jul 2009
|
example added 9 Jul 2009
|
||||||
by Tom Igoe
|
by Tom Igoe
|
||||||
modified 22 Nov 2010
|
modified 22 Nov 2010
|
||||||
by Tom Igoe
|
by Tom Igoe
|
||||||
|
|
||||||
This example code is in the public domain.
|
This example code is in the public domain.
|
||||||
|
|
||||||
http://arduino.cc/en/Tutorial/LiquidCrystalTextDirection
|
http://arduino.cc/en/Tutorial/LiquidCrystalTextDirection
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// include the library code:
|
// include the library code:
|
||||||
#include <LiquidCrystal.h>
|
#include <LiquidCrystal.h>
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
|
|||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
// set up the LCD's number of columns and rows:
|
// set up the LCD's number of columns and rows:
|
||||||
lcd.begin(numCols,numRows);
|
lcd.begin(numCols, numRows);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
@@ -60,7 +60,7 @@ void loop() {
|
|||||||
// loop over the rows:
|
// loop over the rows:
|
||||||
for (int thisRow = 0; thisRow < numCols; thisRow++) {
|
for (int thisRow = 0; thisRow < numCols; thisRow++) {
|
||||||
// set the cursor position:
|
// set the cursor position:
|
||||||
lcd.setCursor(thisCol,thisRow);
|
lcd.setCursor(thisCol, thisRow);
|
||||||
// print the letter:
|
// print the letter:
|
||||||
lcd.write(thisLetter);
|
lcd.write(thisLetter);
|
||||||
delay(200);
|
delay(200);
|
||||||
|
|||||||
1
keywords.txt
Executable file → Normal file
1
keywords.txt
Executable file → Normal file
@@ -30,6 +30,7 @@ rightToLeft KEYWORD2
|
|||||||
scrollDisplayLeft KEYWORD2
|
scrollDisplayLeft KEYWORD2
|
||||||
scrollDisplayRight KEYWORD2
|
scrollDisplayRight KEYWORD2
|
||||||
createChar KEYWORD2
|
createChar KEYWORD2
|
||||||
|
setRowOffsets KEYWORD2
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Constants (LITERAL1)
|
# Constants (LITERAL1)
|
||||||
|
|||||||
9
library.properties
Normal file
9
library.properties
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
name=LiquidCrystal
|
||||||
|
version=1.0
|
||||||
|
author=
|
||||||
|
maintainer=Arduino <info@arduino.cc>
|
||||||
|
sentence=Allows communication with alphanumerical liquid crystal displays (LCDs). For all Arduino boards.
|
||||||
|
paragraph=This library allows an Arduino board to control LiquidCrystal displays (LCDs) based on the Hitachi HD44780 (or a compatible) chipset, which is found on most text-based LCDs. The library works with in either 4 or 8 bit mode (i.e. using 4 or 8 data lines in addition to the rs, enable, and, optionally, the rw control lines).
|
||||||
|
category=Display
|
||||||
|
url=http://arduino.cc/en/Reference/LiquidCrystal
|
||||||
|
architectures=*
|
||||||
@@ -87,10 +87,11 @@ void LiquidCrystal::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) {
|
|||||||
_displayfunction |= LCD_2LINE;
|
_displayfunction |= LCD_2LINE;
|
||||||
}
|
}
|
||||||
_numlines = lines;
|
_numlines = lines;
|
||||||
_currline = 0;
|
|
||||||
|
setRowOffsets(0x00, 0x40, 0x00 + cols, 0x40 + cols);
|
||||||
|
|
||||||
// for some 1 line displays you can select a 10 pixel high font
|
// for some 1 line displays you can select a 10 pixel high font
|
||||||
if ((dotsize != 0) && (lines == 1)) {
|
if ((dotsize != LCD_5x8DOTS) && (lines == 1)) {
|
||||||
_displayfunction |= LCD_5x10DOTS;
|
_displayfunction |= LCD_5x10DOTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,6 +158,14 @@ void LiquidCrystal::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LiquidCrystal::setRowOffsets(int row0, int row1, int row2, int row3)
|
||||||
|
{
|
||||||
|
_row_offsets[0] = row0;
|
||||||
|
_row_offsets[1] = row1;
|
||||||
|
_row_offsets[2] = row2;
|
||||||
|
_row_offsets[3] = row3;
|
||||||
|
}
|
||||||
|
|
||||||
/********** high level commands, for the user! */
|
/********** high level commands, for the user! */
|
||||||
void LiquidCrystal::clear()
|
void LiquidCrystal::clear()
|
||||||
{
|
{
|
||||||
@@ -172,12 +181,15 @@ void LiquidCrystal::home()
|
|||||||
|
|
||||||
void LiquidCrystal::setCursor(uint8_t col, uint8_t row)
|
void LiquidCrystal::setCursor(uint8_t col, uint8_t row)
|
||||||
{
|
{
|
||||||
int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 };
|
const size_t max_lines = sizeof(_row_offsets) / sizeof(*_row_offsets);
|
||||||
|
if ( row >= max_lines ) {
|
||||||
|
row = max_lines - 1; // we count rows starting w/0
|
||||||
|
}
|
||||||
if ( row >= _numlines ) {
|
if ( row >= _numlines ) {
|
||||||
row = _numlines-1; // we count rows starting w/0
|
row = _numlines - 1; // we count rows starting w/0
|
||||||
}
|
}
|
||||||
|
|
||||||
command(LCD_SETDDRAMADDR | (col + row_offsets[row]));
|
command(LCD_SETDDRAMADDR | (col + _row_offsets[row]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Turn the display on/off (quickly)
|
// Turn the display on/off (quickly)
|
||||||
4
LiquidCrystal.h → src/LiquidCrystal.h
Executable file → Normal file
4
LiquidCrystal.h → src/LiquidCrystal.h
Executable file → Normal file
@@ -77,6 +77,7 @@ public:
|
|||||||
void autoscroll();
|
void autoscroll();
|
||||||
void noAutoscroll();
|
void noAutoscroll();
|
||||||
|
|
||||||
|
void setRowOffsets(int row1, int row2, int row3, int row4);
|
||||||
void createChar(uint8_t, uint8_t[]);
|
void createChar(uint8_t, uint8_t[]);
|
||||||
void setCursor(uint8_t, uint8_t);
|
void setCursor(uint8_t, uint8_t);
|
||||||
virtual size_t write(uint8_t);
|
virtual size_t write(uint8_t);
|
||||||
@@ -100,7 +101,8 @@ private:
|
|||||||
|
|
||||||
uint8_t _initialized;
|
uint8_t _initialized;
|
||||||
|
|
||||||
uint8_t _numlines,_currline;
|
uint8_t _numlines;
|
||||||
|
uint8_t _row_offsets[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
Reference in New Issue
Block a user