ET MF incluye soporte mejorado para interfaces gráficas. Hay algunas placas con lcd integrado como el Tahoe II , ChipworkX o FEZ Cobra que tiene pantalla gráfica y puede ser manejado por las clases implementadas. .
Sin embargo, el más común entre los aficionados son el display alfanumérico tradicional, especialmente de 16 caracteres por dos líneas “16×2″.
Los LCDs de 16×2 son muy populares debido a que la forma de comunicarse es a través de un bus paralelo se puede utilizar con los viejos puertos LPT1 ( impresoras), que popularizó su uso muy bien permitir que un ‘emulación manual “del mensaje, o puede contener una gran cantidad de llaves y completamente repetir la introducción de datos para mostrar el mensaje en la pantalla LCD, hace un par de años Una desventaja de la comunicación en paralelo es la cantidad de lineas de IO necesarias ( ocho para ser exactos), y que es un problema cuando sólo tiene a su disposición (desafortunado Netduino usando un chip con 50 IO y sólo está disponible en el adaptador de 14 pines) de 14IO. Otra desventaja importante es lo engorroso que puede resultar el quitar el panel de control LCD, por ser necesario pasar a la placa un cable de 5 pares (10 hilos) a la pantalla LCD. Sin embargo en este artículo se he buscado una solución que satisficiera forma más general y con un menor costo en términos de aplicaciones de software. La mejor solución fue presentada por Pavel Bansky en su blog. Estos son dos artículos en los que el primer artículo se realizó señal de multiplexación análisis de la pantalla LCD para el uso en 3-hilos y de acuerdo con un artículo asociado ha construido una aplicación que implica el hardware I ² C microcontrolador para reducir el costo del software. Además de trabajo Pavel también tiene una excelente referencia en el Internet que es el diseño μLiquidCrystal Lo que comenzó como un proyecto de Szymon Kobalczyk de y luego concretarse y ahora es un paquete completo de clases para los dispositivos tales como LCD y pantalla de la manipulación.Prácticamentetodos los s LCDs populares sebasan en elfamoso chip de Hitachi HD44780 queademas conestecontroladorpermite lacomunicaciónparalela. El 16-pinconectorestándar en lalínea en la parte inferiorderecha de laesquinatablero LCDtambién esmuytípico ypuedeutilizar unacombinación deinformaciónparalela 8 de bits o 4 bits (pseudoserie), esdecir, el 16-pin 8 son parainformar de un feed lalógica, dos pines paraalimentar la luz defondo, elpoder y la terminal detierra de lapantalla ensí y de lacomunicación enserie de doscontactosascendió a 16 pins.
Las instrucciones para la escritura y la lectura es un estándar que Pavel Bansky demostró que es sencillo para multiplexar con registro de desplazamiento y poner el código en el Netduino.
Pavel utilizó el CMOS 4094 es el mismo que 74HC595 TTL que sólo se acepta como un archivo de valores de alto nivel por encima de 2,5 V que significa que usted puede colgar un 5V LCD directamente con Netduino de la IO y sin un circuito adicional sólo el registro de desplazamiento 74HC595.
Por otra parte, si desea utilizar una pantalla LCD de 3,3 V Restivo sólo hay que poner un separador hecho con un rango de 1.68 kOhms y 3,3 kOhm que el nivel de salida es de 3,3 V.
Pavel implementó el tratamiento en dos LCD papeles gemelos uno debajo del otro. La clase que en realidad está incluida en los códigos es LiquidCrystal y en un segundo nivel requerido ILiquidCrystalTransferProvider tratar con la interfaz de hardware para poder utilizar la misma clase de nuevo con los manipuladores de hardware diferente, ambos implementados por Pavel esGpioLiquidCrystalTransferProvider y HC4094 Szymon que en su mayor parte, procedió a llamar Shifter74Hc595LiquidCrystalTransferProvider, Szymon porque estaba usando el 74595 para conectar la pantalla LCD. tiene otras cosas implementas relacionas con algunas tarjetas de expansión para LCD equipado con un chip de comunicación, ya que estamos en Brasil, el más es la comunicación en serie se hace con una tarjeta de expansión con PIC16F628 o algo así. Las implementaciones realizadas por Pavel y por Szymon incluyen chips de soporte MCP23008 yPCF8574P una clase llamada BaseShifterLiquidCrystalTransferProvicer. ‘s Szymon en su blog mencionó la comunicación SPI a hablar como LCD, una alternativa si se carga el bus I ² C a pesar de que no he visto manera en que el tratamiento se produce la comunicación SPI.
El SPI se encuentra disponible a través de los pins Netduino 11 (MOSI), 12 (MOSO) y 13 (SPCK) y cualquier otro pasador para seleccionar el esclavo deseado. Esta implementación de Szymon parte de μLiquidCrystal, en realidad no lo probó, pero vale la pena echar un vistazo.
Con respecto al circuito, vale la pena una cierta consideración. La Primera refiere a un transistor NPN (BC548 pero se he usado el 2N2222 es el equivalente americano) que por lo general surge para controlar la luz de fondo de la pantalla LCD a través de un registro de desplazamiento de salida para que pueda encender y apagar la pantalla LCD en el Código si desea guardar energia.
A otra es controlar la luminosidad de la pantalla LCD se puede hacer mediante la colocación de una olla de 47Kohms la 2Kohms, o no quieren simplemente configurar y listo para poner un divisor resistivo. ‘s Pavel creado una biblioteca (que como tava viejo tuvo que . recrearlo en NETMF 4.2) llamado Bansky.SPOT.LCD donde existen métodos y ITransferProvider SendByte . capa utilizada para interactuar con otros El código de prueba es la siguiente:
?
>
/ / Crear instancia de registro de desplazamiento
/ / (Compatible con los 74.595!)
Shifter HC4094 =
nueva
HC4094 (Pins.GPIO_PIN_D0,
Pins.GPIO_PIN_D2,
Pins.GPIO_PIN_D1,
false
);
/ / Crear una nueva instancia LCD
LCD4Bit lcd =
nueva
LCD4Bit (shifter);
/ / Activar la visualización, gire de nuevo la luz en,
Gran espectáculo cursor / / Ocultar cursor pequeño, parpadeando
lcd.Display (
verdadero
,
verdadero
,
falso
,
verdadero
);
/ / Borrar la ventana
lcd.Clear ();
/ / Escribir el mensaje en primera línea
lcd.Write (
"Victor M. >>>>>>>>"
);
/ / Mueve el cursor a 2 ª línea
lcd.SetPosition (40);
/ / Escribir en el segundo Line
lcd.Write (
"Q2 NETMF."
);
Thread.Sleep (Timeout.Infinite);
Tenga en cuenta que el flujo del proceso es muy simple:
- Crear la clase de la primera capa de informar a los pasadores del hardware que se utiliza para esa función;
- Cree el manejo de la pantalla LCD a partir del hardware de clase;
- Ajuste que desea mostrar en la pantalla LCD (si el parpadeo caja);
- Limpieza del LCD;
- Escriba el mensaje.
Hay mucho más que decir sobre el LCD, es muy sencillo, más que mi trabajo era para montar el circuito en el tablero para entender la operación. Y entonces la imagen que muestra el resultado final:
Fuente aqui