Archivo de la etiqueta: HD44780

pinguino pic ejemplo 3. Escribiendo en una LCD


En este tercer ejemplo, vamos a ver como escribir en una LCD con controlador HD44780 mediante Pinguino PIC. La comunicación emplea 4 bits de datos, dichos pines del Pinguino PIC serán el 0,1,2 y 3 pero se pueden elegir modificando estos en el código escrito. Y 2 pines , que serán el 8 y el 9, para enviar comandos al LCD y para el Enable (habilitación del mismo).

Además emplearemos la retroiluminación que traen los LCD de 16 patillas, conectando los pines 15 y 16 del LCD a VCC y GND respectivamente. Una descripción de los pines es la siguiente:

La conexión del LCD gráficamente la podemos ver aqui en el siguiente esquemático:

Una foto del funcionamiento del LCD con el programa cargado en el Pinguino PIC:

Aquí un video del funcionamiento:

Y por último os dejo el código, y como podréis observar es facilisimo empezar a trabajar con un lcd:

/* Programa realizado por Regata para tallerarduino.wordpress.com */
 
// Comenta esta linea si usas un pinguino con PIC18F2550
//#define PIC18F4550

void borrarlinea(uint8_t linea); //Declaracion de la función de borrado de linea

//Función de configuración, donde indicaremos que usamos modo 4 bits
void setup()
{
	//Modo 8 bits
	//lcd(8, 9, 0, 1, 2, 3, 4, 5, 6, 7); // RS, E, D0 ~ D7
	
	//Modo 4 bits, no se emplean los últimos 4 bits
	lcd(8, 9, 0, 1, 2, 3, 0, 0, 0, 0); // RS, E, D4 ~ D8	
	
	//Indicamos el formato del lcd, en este caso 20x4
	lcd.begin(20,4);
}

//Función repetitiva
void loop()
{
	//Posicionamos el cursor del lcd en posición 0,0 del lcd
	lcd.setCursor(0,0);
	lcd.print("Bienvenidos a:");	// Escribimos la cadena que deseamos
	//Posicionamos el cursor del lcd en posición 3,1 del lcd
	lcd.setCursor(3,1);	
	lcd.print("Taller Arduino");  // Escribimos la cadena que deseamos
	//Posicionamos el cursor del lcd en posición 0,2 del lcd
	lcd.setCursor(0,2);
	lcd.print(" tu blog referencia");  // Escribimos la cadena que deseamos
	//Posicionamos el cursor del lcd en posición 1,3 del lcd
	lcd.setCursor(1,3);
	lcd.print("Pinguino y Ardu");  // Escribimos la cadena que deseamos
	//Escribimos a continuación de la última posición escrita
	lcd.print("ino");
	delay(1000);
	//Esta es una función que he hecho para borrar una linea en concreto,
	//donde el numero indicado es el número de linea del lcd
	borrarlinea(0);
	//También podemos usar lcd.clear(); para borrar todo el lcd
	delay(500);
}

//Función creada por mi para cuando necesito borrar una linea entera del lcd
//y no todo el lcd
void borrarlinea(uint8_t linea)
{
   int i;  //Declaramos una variable que usaremos para contar el número de caracteres
   lcd.setCursor(0,linea);  //Posicionamos el cursor para comenzar a borrar en la posicion 0 de la linea que indicamos
   for (i=0;i<20;i++)	//Borramos desde el caracter 0 hasta el 19
      lcd.print(" ");
}

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal