• Hola Invitado, nos gustaría recordarte que mantener este sitio en línea conlleva unos gastos mensuales y anuales.

    Sin vuestra ayuda mensual no es posible seguir en pie, no hay mucho más que contar.

    Si quieres colaborar para que sea posible por lo menos seguir en pie como comunidad, puedes hacerlo mediante alguno de los métodos disponibles en esta página: https://www.lonasdigital.com/donaciones/

    Recuerda que si necesitas invitación para acceder al foro, puedes solicitarla en nuestro Grupo de Telegram


Controlar un LCD de 16x2 con Arduino por i2c

J

jag1957

Usuario VIP
Registrado
13 Sep 2012
Mensajes
423
Reacciones
5
Puntos
36
Un ejemplo para controlar un LCD por i2c con las librerias Wire que controla el protocolo de comunicaciones i2c y la libreria que os adjunto LiquidCrystal-I2C las conexiones se hacen al LCD mediante una placa con el circuito integrado PCF8574 de NXP y la podeis encontrar po más o menos 1€ ya montada y lista para insertar en el LCD, el potenciometro es para regular el brillo del LCD.

Código:
/*
 * Ejemplo práctico de texto en movimiento con la plataforma Arduino,
 * este consiste en desplazar en las 2 filas un doble texto,
 * de derecha a izquierda.
 * Conexiones al Arduino
 * A5 al SCL del LCD
 * A4 al SDA del LCD
 * +5V al Vcc del LCD
 * GND al GND del LCD
*/

#include <Wire.h>  // Se incluye la libreria para comunicaciones i2c
#include <LiquidCrystal_I2C.h> // Libreria para el manejo del LCD

LiquidCrystal_I2C lcd(0x27, 16, 2); // Selecciona el tipo de LCD 16 caracteres por 2 filas y su direción i2c (0x27)

void setup() // bloque de configuración
{ // Entrada al bloque de configuración
  Serial.begin(9600); // Configura el puerto serie a 9600 baudios
  lcd.begin(); // Inicializa el LCD
  lcd.setCursor(0,0); // Primer dígito posición en la fila de 0 a 16 2ª dígito selecciona la fila donde se escribira 0 o 1 
  lcd.print("   Bienvenidos, este es el Arduino UNO."); // texto a imprimir en el LCD en la 1ª fila 39 caracteres el resto se ignora
  lcd.setCursor(0,1);  // Primer dígito posición en la fila de 0 a 16 2ª dígito selecciona la fila donde se escribira 0 o 1 
  lcd.print("   Curso de Arduino");
}

void loop()
{

  // desplaza 39 posiciones (longitud del string o cadena) hacia la izquierda
  // Creamos un contador for para la 1ª fila que recorra 39 caracteres
  // Asignamos a la variable entera positionCounter el valor 0
  // Le decimos que mientras la variable sea menor que 39 vaya sumando uno
  // Cuando veamos ++ quiere decir que a esa variable se le vaya sumano un 1
  // Es decir el for ira contando desde el primer valor que es 0 hasta 39
  // Luego al llegar a 39 terminara el for y continuara el programa
  for (int positionCounter = 0; positionCounter < 39; positionCounter++)
  { // Se inicializa el bolque for
    // comando de desplazamiento a la izquierda
    lcd.scrollDisplayLeft();
    // espera medio segundo 
    delay(500);
   } // Termina el primer bloque for
   
   // desplaza 19 posiciones (longitud del string o cadena) hacia la izquierda
  // Creamos un contador for para la 2ª fila que recorra 19 caracteres
  // Asignamos a la variable entera positionCounter el valor 0
  // Le decimos que mientras la variable sea menor que 19 vaya sumando uno
  // Cuando veamos ++ quiere decir que a esa variable se le vaya sumano un 1
  // Es decir el for ira contando desde el primer valor que es 0 hasta 19
  // Luego al llegar a 19 terminara el for y continuara el programa
  for (int positionCounter = 0; positionCounter < 19; positionCounter++)
  { // Se inicializa el 2º bolque for
    // comando de desplazamiento a la izquierda
    lcd.scrollDisplayLeft();
    // espera medio segundo
    delay(500);
   }  // Termina el 2º bloque for

   delay(500); // Espera medio segundo
} // Vuelve al principio del bloque void loop()

http://www.mediafire.com/file/5pp04oqi05uzuhj/LiquidCrystal-I2C-library.zip

cache.php


cache.php
 
Última edición:
Atrás
Arriba