Microcontroladores: LCD I2C para tus desarrollos

 

Cuando trabajamos en proyectos con microcontroladores y debemos mostrar información en un LCD, 6 pines dedicados al control de este último pueden ser demasiados. Al comenzar a expandirnos en entradas analógicas o digitales, y a su vez, actuar en el exterior con salidas para relés, indicadores LED y otras aplicaciones, los pines I/O del microcontrolador se agotan rápidamente. Aprende a construir tus propios LCD I2Cuando encontramos soluciones a nuestros inconvenientes cotidianos sentimos alivio y sensación de bienestar.C con sólo dos pines.A muchos de nosotros, quienes nos dedicamos a “cacharrear” con la electrónica, nos sucede ese fenómeno particular cada vez que descubrimos aplicaciones prácticas y sencillas que nos ayudan a resolver problemas complejos.

   

 El bus I2C es una de las herramientas que nos hace más sencillo el trabajo de interconexión entre un microcontrolador y una interfaz. Ya hemos visto muchas aplicaciones útiles que incorporan el bus I2C en forma nativa: termómetros, potenciómetros digitales, preamplificadores de audio, y muchos otras que nos restan ver y analizar.En el caso de los LCD alfanuméricos, que utilizamos habitualmente en nuestros desarrollos con microcontroladores, debemos reservar 6 pines (conexión mínima) para su control: RS, EN, D4, D5, D6 y D7, ya que estos displays convencionales, basados en el controlador HD44780, traen un tipo de conexión que involucra muchos cables. La necesidad de los usuarios ha llevado a muchas empresas fabricantes de estos dispositivos a desarrollar entradas de datos seriales, ya sean por Puerto Serie o por bus I2C.

 


Lamentablemente, el precio de estos displays suele ser muy alto comparado con el de un LCD de iguales características y conexión paralela. Las diferencias monetarias suelen ser del doble o triple de valor. Por lo tanto, lograr desarrollar un circuito económico que nos permita manejar un display convencional a través del bus I2C, mediante sólo dos pines, puede ser una alternativa muy interesante para ahorrar pines del microcontrolador y, por supuesto, dinero. A esto debes sumarle la posibilidad de manejar muchos displays LCD conectados al mismo bus, donde cada uno tendría una dirección específica e inequívoca. Es decir, si habitualmente los dispositivos poseen una dirección (address) donde los últimos 4 bits definen su “subdirección” dentro del bus, con sólo dos pines podremos manejar hasta 16 LCD conectados a un microcontrolador sencillo de encapsulado pequeño.

Seleccionando el microcontrolador
Podemos convertir un LCD convencional en un dispositivo I2C a través de un expansor de puertos controlable por I2C, como puede ser el PCF8574 (del que nos ocuparemos en otro artículo) o un microcontrolador que posea un módulo SSP (Synchronous Serial Port) integrado en su interior. Un ejemplo de este último tipo de microcontrolador es el 16F819, al que podemos utilizar como unidad I2C esclava (slave) de nuestros proyectos. El costo agregado al LCD será despreciable respecto a una unidad LCD I2C comercial. Podremos así construir una unidad a nuestra medida que satisfaga las necesidades de uso y aprovechar el ahorro de pines en el microcontrolador que oficiará de maestro (master). Sin ir demasiado lejos, y con algo de imaginación, un PIC 12F675 puede:

 
Montajes
Ejemplo de un bus I2C tradicional incluyendo nuestro LCD
 
 
Monitor Cardiaco
Dip Meter
TDA7000
Mi primer receptor
Amperímetro 0-5A
Capacímetro Digital


  • Controlar un reloj en tiempo real (RTC), basado en un DS1307.

  • Actuar como datalogger, registrando temperaturas tomadas con un STCN75.

  • Almacenar valores máximos y mínimos de temperatura y guardar muestras de los datos obtenidos en una memoria EEPROM, tipo 24C256, capaz de retener enormes cantidades de información. Por supuesto, todo este proceso puede ser mostrado en un display LCD de hasta 40 caracteres por 4 renglones.

Conectar otros dispositivos que creamos oportunos para nuestro diseño o dejar la conexión preparada para eventuales ampliaciones.

Todo esto se realiza gracias a un sencillo microcontrolador de 4 pines por lado y gracias a la tecnología del bus I2C. Lo que te proponemos es sólo un ejemplo, tu imaginación es el límite.

Circuito práctico a implementar

 

Circuito propuesto con un PIC 16F819
 

Importante: Si lo que encuentras aquí te resulta útil,  ayúdanos a mantener este sitio. Cualquier donación es bienvenida. Tu apoyo nos permitirá acceder a nuevos materiales y a montajes más interesantes y útiles. Gracias por ayudarnos a hacer Servisystem cada día mejor. Tu ayuda será muy importante para nosotros. Gracias.

 

 

 
     
  Avanza a la siguiente pagina