miércoles, 8 de junio de 2016

Pantalla LCD I2C Arduino

En esta entrada comunicaremos una pantalla LCD con un arduino utilizando los pines de I2C, estos pines están situados en las entradas analógicas A4(SDA) y en A5(SCL) y en dos pines independientes situados después del pin de AREF en el lado de los pines digitales.


Lo primero para poder utilizar la pantalla es instalar la librería: LiquidCrystal_I2C

Una vez instalada la librería ya podremos empezar con nuestros proyectos, en el ejemplo que dejare más abajo mostrare las funciones de uso más frecuente cuando trabajamos con la pantalla, para ello en el ejemplo creare una secuencia de 16 números en formato hexadecimal del 0 a la F que irán recorriendo todas las posiciones de la pantalla, en mi caso es de 16x2.

Comencemos con el código:

Lo primero es incluir la librería en nuestro programa al igual que la librería que se encarga de la comunicación I2C:
 
  #include <LiquidCrystal_I2C.h> //Librería de la pantalla
  #include <Wire.h> //Librería de la comunicación I2C

Una vez incluidas las librerías tenemos que declarar el tipo de pantalla que vamos a utilizar, en mi caso, como ya comente antes, mi pantalla es de 16x2:

  LiquidCrystal_I2C lcd (0x27,16,2); //lcd sera el nombre de nuestra pantalla, 16 el número de caracteres por fila y 2 el numero de filas.

Ahora en el void setup() tendremos que iniciarla:

   void setup()
  {
    lcd.begin(); // Inicializa la pantalla
    lcd.clear(); // Limpia la pantalla
    lcd.backlight(); // Enciende la luz de fondo
    lcd.setCursor(2,0); // Posiciona el cursor en el carácter 2 de la fila 0
    lcd.print("Iniciando..."); // Escribe ne la pantalla, este comando es similar al utilizado con la                 función Serial
    delay(500);
  }

Dentro del void loop() creare el bucle que ira escribiendo los números en la pantalla indicando la posición de cada carácter en hexadecimal:

  void loop()
  {
    for(y=0;y<2;y++)
    {
      for(x=0;x<16;x++)
      {
        lcd.clear();
        lcd.setCursor(x,y);
        lcd.print(x,HEX);
        delay(1000);
      }
    }
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Final");
    delay(2000);

  }

Aquí os dejo el link con el código completo: Pantalla_LCD

No hay comentarios:

Publicar un comentario