Commits

F Malpartida committed 098ae01

Edited online

  • Participants
  • Parent commits 8c77bdd

Comments (0)

Files changed (1)

 
 {{https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/I2CLCDextraIO_assemblyProject_small.jpg|LCD library}}
 
-Welcome to the New LiquidCrystal library for Arduino. This library is a derivate of the original LiquidCrystal Library as sourced in the Arduino SDK. The library supports most Hitachi HD44780 based LCDs or compatible and they can be now connected to any project using (4, 8 wire parallel interface, I2C IO port expander and Shift Regiter).
+Welcome to the LCD Library for Arduino. This library is a derivate of the original LiquidCrystal Library as sourced in the Arduino SDK. The library supports most Hitachi HD44780 based LCDs or compatible connected to any project using: 4, 8 wire parallel interface, I2C IO port expander and Shift Regiter.
 
-The main changes to the LiquidCrystal Library is that it has been changed to be a pure abstract class from which particular implementations derive from. Therefore, it is possible to create new drivers to the library by simply inhering from the base class and develop the functions that are specific to accessing the LCD.
+The LCD library is based on the [[I2CIO|I2CIO driver library]] for the PCF8574* I2C IO expander ASIC.
 
-The New LiquidCrystal library is based on the [[I2CIO|I2CIO driver library]] for the PCF8574* I2C IO expander ASIC.
-
-=== Description ===
-
-This library provides the same interface to applications as the LiquidCrystal library sourced by the Arduino SDK. The main changes to the LiquidCrystal Library is that it has been changed to be a pure abstract class from which particular implementations derive from. 
-
-Therefore, it is possible to create new drivers to the library by simply inhering from the base class and develop the functions that are specific to accessing the LCD. 
-
-The library is provided to support 3 types of connections:
+The library currently supports 4 types of connections:
 * 4 bit parallel LCD interface
 * 8 bit parallel LCD interface
 * I2C IO bus expansion board with the PCF8574* I2C IO expander ASIC.
 * ShiftRegister adaptor board as described [[http://code.google.com/p/arduinoshiftreglcd/|Shift Register project home]] - Not tested yet.
 
-The code has been fully tested with 4 bit interface and with the [[http://www.electrofunltd.com/p/i2c-lcd-extra-io.html|**I2CLCDextraIO**]] (companion board to this library) using the PCF8574* ASIC.
-
-The library is also very easy to customize for different I2C IO expansion boards using different 
-I2C expander ASICs.
-
-Since this library is a full class hierarchy, new interfacing mechanisms can be added without having to re-write the entire driver. Drivers for the MCP2300, SPI and Serial are very easy to develop since you would only have to worry about how to write to the particular new device.
-
-=== Downloading and Installation ===
-
-Source code for the library and documentation can be downloaded from the download section of this repository: [[https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads|here]]
-
-The library comes in source and with examples that will get you started. Additionally you have a full description of the library in the docs folder in HTML format that you can browse.
-
-To install the library:
-* Download the most current version of the library.
-* Extract the library. It should be in a subfolder of its own (something like /myLCDSketch/libraries/LCD) in your sketch or in the library folder of the Arduino distribution.
-* When you start the Arduino IDE, it should contain a new menu "LCD" with examples. (File > Examples > LCD...). It should also appear in the menu Sketch > import library.
-* Alternatively you can install the library in the Arduino SDK library pool. To install and learn about libraries please follow the instructions in [[http://www.arduino.cc/playground/Code/Library|Library Tutorial]], there is a Section in the Tutorial indicating how to install a library.
-
-//The library has been developed to replace the current Arduino library, therefore you will need to remove from the Arduino library folder the original LiquidCrystal library and replace it for this one.//
-
-Also in the download section you can find the [[I2CIO|I2CIO driver library]] for the PCF8574* I2C IO expander ASIC. The library has been tested with the [[http://www.electrofunltd.com/p/i2c-lcd-extra-io.html|**LCDI2CextraIO**]] board. 
-
 === Library Usage ===
 
-The way the library is used as the current LiquidCrystal LCD library indicating what type of LCD you want to use in your project. The main difference is that the New LiquidCrystal class is a pure abstract class implementing the main LCD control commands and the rest of the hierarchy classes implement the initialization details of the particular device.
+The way the library is used is just like the current LiquidCrystal LCD library. You only have to tell it what type of LCD you want to use in your project. The main difference is that the LCD library is a "collection" of libraries with the same common interface (a class hierarchy - in the technical jargon).
 
-Being an abstract class, you can develop a complete project just by using a reference to the base LiquidCrystal class and then in the project setup (sketch) and during the initialization (setup routine) you would just have to pass the "concrete" LCD that you are using.
+Being a "collection" of libraries with a common interface, you can develop a complete project just by using a reference to the base LCD class (a pointer to an LCD variable) and then in the project (sketch) and during the initialization (setup routine) you would just have to pass the "concrete" LCD that you are using.
 
-This is particularly useful for projects that have a MMI built-in where you would like to use it with multiple LCDs maintaining the user interface hidden from the particular LCD you are using.
+This is particularly useful for projects that have a MMI built-in where you would like to use it with multiple LCDs maintaining the user interface hidden from the particular LCD you are using. It is also very useful if you have a project and you don't know how you are going to connect the LCD or your change your mind halfway through the project.
 
 Here's of how to use the library for a 4 bit LCD interface:
 {{{
 
 When you install the library it will come out with a compilation error, due to the fact that it can't find the Wire library header files. Please include Wire.h at the beginning of your sketch. Why? Because of the peculiarities of the Arduino compilation environment. I am working on a way to work around this.
 
+=== Library Background ===
+
+This library provides the same interface to applications as the LiquidCrystal library sourced by the Arduino SDK. The main changes to the LiquidCrystal Library is that it has been changed to be a pure abstract class from which particular implementations derive from. 
+
+Therefore, it is possible to create new drivers to the library by simply inhering from the base class and develop the functions that are specific to accessing the LCD. 
+
+The library currently supports 3 types of connections:
+* 4 bit parallel LCD interface
+* 8 bit parallel LCD interface
+* I2C IO bus expansion board with the PCF8574* I2C IO expander ASIC.
+* ShiftRegister adaptor board as described [[http://code.google.com/p/arduinoshiftreglcd/|Shift Register project home]] - Not tested yet.
+
+The code has been fully tested with 4 bit interface and with the [[http://www.electrofunltd.com/p/i2c-lcd-extra-io.html|**I2CLCDextraIO**]] (companion board to this library) using the PCF8574* ASIC.
+
+The library is also very easy to customize for different I2C IO expansion boards using different 
+I2C expander ASICs.
+
+Since this library is a full class hierarchy, new interfacing mechanisms can be added without having to re-write the entire driver. Drivers for the MCP2300, SPI and Serial are very easy to develop since you would only have to worry about how to write to the particular new device.
+
+=== Downloading and Installation ===
+
+Source code for the library and documentation can be downloaded from the download section of this repository: [[https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads|here]]
+
+The library comes in source and with examples that will get you started. Additionally you have a full description of the library in the docs folder in HTML format that you can browse.
+
+To install the library:
+* Download the most recent version of the library.
+* Extract the library. It should be in a subfolder of its own (something like /myLCDSketch/libraries/LCD) in your sketch or in the library folder of the Arduino distribution.
+* When you start the Arduino IDE, it should contain a new menu "LCD" with examples. (File > Examples > LCD...). It should also appear in the menu Sketch > import library.
+* Alternatively you can install the library in the Arduino SDK library pool. To install and learn about libraries please follow the instructions in [[http://www.arduino.cc/playground/Code/Library|Library Tutorial]], there is a Section in the Tutorial indicating how to install a library.
+
+//The library has been developed to replace the current Arduino library, therefore you will need to remove/backup the LiquidCrystal folder from the Arduino library folder the original LiquidCrystal library and replace it for this one.//
+
+Also in the download section you can find the [[I2CIO|I2CIO driver library]] for the PCF8574* I2C IO expander ASIC. The library has been tested with the [[http://www.electrofunltd.com/p/i2c-lcd-extra-io.html|**LCDI2CextraIO**]] board. 
+
 === Version ===
-Current New LiquidCrystal library V 1.0.0
+Current New LiquidCrystal is the latest zip file in the download section.
 
 The New LiquidCrystal library has been tested and is only compatible with Arduino SDK 1.0 and Arduino SDK 0022.
 Minor changes would have to be done to be compatible with previous versions of the SDK.
 
-
 === Licensing ===
 
 Lets keep this section very short.