/*
 * ********************************************************************************************************************
 * *                                                                                                                  *      
 * *  ESTE PROGRAMA VA A ESCRIBIR EN LA PANTALLA LCD EL NOMBRE DEL INSTITUTO, ESPERARA 5 SEGUNDOS                     *
 * *  DESPUES PONDRA EL CURSO, ......                                                                                 *
 * *                                                                                                                  *
 * *  CONEXION: El display que vamos a usar, lleva conectado un convertidos de I2C al LCD, de forma que               *
 * *            solo necesitamos ademas del positivo (Rojo +) y el negativo (Negro GND) dos conectores mas            *
 * *            SCL Y SDA. En arduino uno tenemos dos patillas SCL y SDA, asi que los conectamos a estos pines        *
 * *                                                                                                                  *
 * *  ¿QUE TENEMOS QUE SABER?                                                                                         *
 * *    1º Tendremos que instalar la biblioteca externa NewLiquidCrystalI2C.                                          *
 * *    2º La biblioteca anterior, necesita para su uso la biblioteca Wire.h, que tendremos que incluir en el programa*
 * *       por tanto lo primeros es incluir las dos bibliotecas asi:                                                  *
 * *              #include <Wire.h>                                                                                   *
 * *              #include <LiquidCrystal_I2C.h>                                                                      *
 * *    3º Le decimos al I2C que patillas tiene conectadas (dir, en,rw,rs,d4,d5,d6,d7,bl, blpol) con la orden:        *
 * *              LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);                                      *
 * *        Es decir programamos el I2C, es posible que tengamos que cambiar la dirección del I2C cambiando           *
 * *        el 0x27, por otro valor por ejemplo 0x37 ( Esta puesto en el papel que he pegado al LCD                   *
 * *    4º En el setup(), tenemos que inicializar el LCD diciendole el tamaño del LCD, con la orden:                  *
 * *              lcd.begin(Nº de líneas, Nº de caracteres por linea);                                                *
 * *        en nuestro caso vamos a utlizar un LCD de 2 lineas, con 16 caracteres cada una, o sea:                    *
 * *              lcd.begin(2,16);                                                                                    *
 * *    5º Ya podremos hacer uso del lcd usando las ordenes que reconoce la libreria liquidCrystal_I2C que son:       *
 * *                                                                                                                  *
 * *  lcd.begin(Lineas,Caracteres por linea); Especifica el tamaño de nuestro display                                 *
 * *                             lcd.clear();  Esta función borra todo lo que estuviese escrito en nuestro LCD        *
 * *                              lcd.home();  Coloca el cursor en la esquina superior derecha del display.           *
 * *                          lcd.write('a'); Escribe un carácter en el Display.                                      *
* *                       lcd.write("texto"); Escribe los caracteres que hay entre las comillas en el Display.        *
 * *                              lcd.Blink ; Muestra un cursor con forma de bloque, como el que solían               *
 * *                                          mostrar algunos ordenadores antiguos.                                   *    
 * *                           lcd.noBlink(); Quita el Blink                                                          *
 * *                             lcd.Cursor ; Muestra un cursor con forma de guion bajo.                              *
 * *                          lcd.noCursor();  Activamos la visualización del cursor                                  *
 * *                            lcd.cursor(); Desconectamos la visualización del cursor                               *
 * *                            lcd.Display ; Esta función permite encender y apagar el Display, pero sin perder      *
 * *                                          lo que estaba mostrando                                                 *
 * *                         lcd.noDisplay(); Apagamos el Display:                                                    *
 * *                           lcd.display(); Encendemos el Display:                                                  *
 * *                       lcd.rightToLeft(); Cuando se escribe, las letras aparecen a la izquierda del cursor.Es como* 
 * *                                          si en un editor de textos tuviésemos el texto alineado a la derecha.    *
 * *                       lcd.leftToRight(); Al contrario que el anterior, las letras aparecen a la derecha del      *
 * *                                          cursor, la sensación que da es la de alineación a la izquierda.         *
 * *                        lcd.autoscroll(); mueve todo el texto un espacio a la izquierda cada vez que se añade     *
 * *                                          una letra.                                                              *
 * *                      lcd.noAutoscroll(); apaga el desplazamiento                                                 *
 * *                          lcd.SetCursor ; El primer parámetro del paréntesis es la posición en X El segundo       *
 * *                                          es la posición en Y (lcd.setCursor(15, 0);= arriba a la derecha         *
 * *                 lcd.ScrollDisplayLeft(); Desplaza el texto hacia la izquierda.                                   *
 * *               lcd.ScrollDisplayRight() ; Desplaza el texto hacia la derecha.                                     *
 * *                                               *Nota: Algunas de estas ordenes puede que no funciones             *
 * ********************************************************************************************************************

*/

// Conexiones: SCL -> A5
//             SDA -> A4

// http://www.trastejant.es/tutoriales/arduino/lclcd.html
//    CreateChar; ver en pagina http://www.trastejant.es/tutoriales/arduino/lclcd.html#print

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
 
 
//Pines en el PCF8574(dir, en,rw,rs,d4,d5,d6,d7,bl, blpol)
 LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Configuración del I2C

 
void setup(){
  
  lcd.begin(2,16);    // Inicializacion del LCD indicando el tamaño 
  
  lcd.setCursor(0,0); // Situa el cursor del LCD en la posicion 0 0
  lcd.print("     I.E.S.     "); // Escribe lo que hay entre las comillas
  
  lcd.setCursor(0,1);
  lcd.print("   BEZMILIANA   ");
  delay(5000);
}
 
void loop(){

  lcd.clear();                  // Borra la pantalla
  lcd.setCursor(0,0);
  lcd.print("!!BIENVENIDOS!!");
  lcd.setCursor(3,1);
  lcd.print("4");
  //lcd.print("\337" ); // "337" -> "°" Cuando queremos escribir un caracter raro,
  lcd.print((char)223); // char 223 = º  Le indicamos el numero de caracter, según tabla de caracteres del LCD 
  lcd.print(" E.S.O.");
  delay(2000);

  lcd.clear();
  lcd.setCursor(4,0);
  lcd.print("Saludos");  
  lcd.setCursor(0,1);
  lcd.print("Aquilino Gonzale");
  delay(3000);

}