Generalmente necesidad de 11signal líneas de LCD + 3 o 5 líneas para Vcc, tierra y contraste y en algunos casos un 2 extra de luz de fondo.
Utilizando la pantalla LCD en modo de 4 bit ahorra 4 pines, pero a menudo eso no es suficiente. Aunque es posible utilizar un módulo I2C para controlar el LCD con dos cables vía el puerto I2C, hay situaciones en que es poco práctico, por ejemplo cuando usted necesita puertos analógicos al y no puede sacrificar A4 y A5 para SDA y SCL.
En ese caso usar un registro de desplazamiento puede ser una solución.
Estoy usando un registro de 74164 desplazamiento con sólo unos pocos componentes adicionales para hacer lo que necesito y fácilmente se puede poner sobre un trozo de placa perforada
LISTA DE MATERIALES
74LS164
1N14148
2x1k resistencia
resistor variable 1x1k
La versión de placa perforada sigue el trazado estándar para la mayoría de LCDs con un SIL pin lay-out. Sin embargo, también tuve un LCD, un Seiko M1602, que tenía un perno de dos línea lay-out que hice una versión dedicada.
Para el programa utilizar la librería LCD de Malpartida.
#include <LiquidCrystal_SR> LiquidCrystal_SR lcd(8,7,TWO_WIRE); // | | // | \-- Clock Pin// \---- Data/Enable Pinvoid setup(){ lcd.begin(16,2); // initialize the lcdlcd.home (); // go home // } void loop(){lcd.home (); lcd.print("LiquidCrystal_SR"); lcd.setCursor (0, 1 ); lcd.print("2 wire");}
Allí u go.
Sólo una cosa más. En circuito de mu alimentar la luz de fondo de tensión 5 voltios a través de un resistor. Pero como se puede ver el registro de desplazamiento vacíos pins. Creo pin 4 lleva la retroiluminación de la señal de encendido/apagado y si quisiera se podría recoger la señal de ahí, la alimentación a un BC547 luego pueden cambiar la luz de fondo encendido y apagado por software.
En la página "Siguiente" discutir cómo hacer este trabajo para un Attiny85