Arduino con el controlador LCD serie.

Arduino DuemilanoveArduino es un proyecto muy popular basado en hardware y software libre que utiliza microcontroladores fabricados por Atmel (Atmega 168, 328, 1280, etc.).
Al ser hardware libre el esquema del circuito impreso está liberado, por lo que podemos hacer nosotros mismos la placa a nuestro gusto o comprarla ya hecha a través de cualquiera de las muchas empresas que la distribuyen, el entorno de desarrollo (IDE) esta basado en Processing y para la programación del microcontrolador se utiliza un lenguaje propio de alto nivel basado en Wiring.

 

Este lenguaje de programación es muy parecido al C, por lo que el que sepa programar en C también sabrá programar en la plataforma Arduino, tan solo habrá que aprenderse las funciones específicas que implementa el compilador para el control de determinados recursos hardware del microcontrolador. Vamos a ver un ejemplo de como utilizar el controlador LCD universal serie para  mostrar mensajes en un LCD utilizando un solo pin de la placa de Arduino.

 


El esquema de conexión será el siguiente:

 

Control de un LCD con un solo PIN de Arduino

 

Ejemplo:

 
 
////////////////////////////////////////////////// 
//                                              // 
// Ejemplo: Control de un LCD con un solo pin,  // 
// utilizando el controlador LCD serie               
// Plataforma: Arduino                          // 
//                                              // 
// Autor:Biblioman                              // 
//                                              // 
// www.aquihayapuntes.com                       // 
//                                              // 
//////////////////////////////////////////////////  

 
void setup() { 
 
 Serial.begin(9600);      // configura el puerto a 9600 baudios    
} 
 
void loop() {   
 
 while(1){ 
 
 Serial.print("www.aquihayapuntes.com\r"); 
 delay(1500); // Retardo de 1.5 segundos 
 Serial.print("Control LCD con un solo PIN\r"); 
 delay(1500); //Retardo de 1.5 segundos 
 Serial.print("Plataforma Arduino\r"); 
 delay(1500); //Retardo de 1.5 segundos 
 
 } 
 
} 

El código del ejemplo simplemente envía una serie de mensajes via serie a través del pin Tx de la placa de Arduino, el controlador del LCD recibirá esos mensajes y se encargará de enviárselos al LCD en el formato correcto, El controlador se encarga automáticamente de cambiar de línea en el LCD cuando sea necesario y de borrar la pantalla entre mensaje y mensaje.

 

Aquí tenéis un vídeo del circuito funcionando:

 



Arduino utiliza el convertidor USB-Serie FTDI FT232 que hace de interfaz entre la conexión USB al ordenador y la UART del microcontrolador y para ello utiliza los pines por defecto para el envío y recepción de datos (0 y 1) de la placa Arduino, si usamos esos pines en nuestro circuito la programación del arduino no podrá llevarse a cabo. Podemos programar el Arduino y después conectar esos pines a nuestro circuito (según se muestra en el vídeo) ó podemos gestionar la comunicación serie por software añadiendo la librería "SoftwareSerial" puedes ver un ejemplo de como hacerlo aquí. Si utilizamos la librería podremos seleccionar cualquier otro pin de la tarjeta arduino para enviar los datos al controlador LCD y podremos tener a la vez la conexión USB para la programación del Arduino "In situ".

Una deficiencia que le veo al IDE de Arduino es que carece de depurador, lo único que comprueba es la sintaxis de nuestro programa al compilar, pero no podemos ejecutar el programa paso a paso ni crear puntos de ruptura para ver el estado de variables y comprobar la secuencia que sigue nuestro programa, podemos utilizar el controlador LCD serie como un debugger casero en tiempo real enviando al LCD el valor de determinadas variables por medio de la función serial.print(), puedes obtener más información sobre ello aquí.


Nota: La alimentación del controlador LCD se puede hacer a través de la propia placa arduino ó por medio de una fuente exterior como se muestra en el video (aconsejable si utilizamos el "backlight" del LCD, debido al consumo de este). Si utilizamos una fuente auxiliar para alimentar el  controlador LCD La masa (-) de la fuente y la de la placa Arduino deben estar unidas, sino el pin destinado a transmitir los datos no tendría un potencial de referencia entre la placa arduino y el controlador serie.  

Como siempre espero vuestros comentarios en el foro.

Un saludo

© 2007-2017 AquiHayapuntes.com