¿Cómo se llama este tipo de LCD de solo dígitos?

He visto este tipo de LCD muchas veces en básculas, calculadoras, medidores, micrómetros, etc. Sé que es una pantalla bastante tradicional, pero realmente me gusta su tamaño compacto, su simplicidad y tal vez incluso cueste menos, en comparación con los TFT o los teléfonos inteligentes. tipo pantallas táctiles.

LCD de solo dígitos


[ ¿Cómo se llama? Respondido por @kevlar1818 y @stevenvh: "Pantalla de siete segmentos"]

Me gustaría trabajar con este tipo de LCD, por ejemplo, acabo de encontrar este de 8 dígitos que se llama VIM-878 del catálogo de Digikey; aquí está su hoja de datos .

¿Cómo interactúo con él? Me gustaría saber cuál sería una forma buena/común de interactuar con él desde un microcontrolador AVR simple como un Atmega8, preferiblemente con circuitos/piezas de interfaz que no sean demasiado grandes físicamente.

  • ¿Supongo que sería necesario algún tipo de controlador o multiplexor? Supongo que estoy buscando una perspectiva inicial de otros que puedan tener una mejor experiencia interactuando con este tipo de LCD.
Gracias por agregar la información solicitada. Sin embargo, tenga cuidado de no deshacer ediciones anteriores en el proceso.
Eso es exactamente lo que hice, ¿verdad? ¡Ups! ¿Podría usted o alguien ayudar a poner la imagen de nuevo por favor?
Puede intentar retroceder a la edición 2 y luego agregar su información a eso. No tengo el representante para hacer reversiones, así que lo marcaré.

Respuestas (3)

Es una pantalla de 7 segmentos . A diferencia de las pantallas de caracteres de matriz de puntos a las que se refiere Kevlar , estos no suelen ser módulos inteligentes. La mayoría de las pantallas de matriz de puntos tienen un controlador compatible con HD44780 en el que simplemente puede escribir códigos ASCII, pero una pantalla LCD de 7 segmentos a menudo será solo el cristal, con conexiones para segmentos y varios backplanes (a menudo hasta 4).

ingrese la descripción de la imagen aquí

Manejar los LCD puede ser incómodo ya que no usan solo dos niveles, por lo que no puede manejarlos con una lógica digital común.

ingrese la descripción de la imagen aquí

Lo mejor que puede hacer es seleccionar un microcontrolador con controlador LCD integrado, al que puede conectar la pantalla directamente, como el TI MSP430x4xx . Como la mayoría de los controladores, este también conoce solo segmentos; no es consciente de los dígitos ni nada. (Genial, primero teníamos una pantalla tonta, ¡ahora también tenemos un controlador tonto!) Hay una razón para esto. Estos controladores de LCD a menudo se usan para controlar LCD personalizados que pueden ser una combinación de una parte numérica, gráficos de barras y símbolos personalizados. Tal símbolo también es un segmento único, por lo que no tiene sentido hablar de dígitos.

ingrese la descripción de la imagen aquí

Esta pantalla tiene símbolos como "batería" y "despertador", pero también todos los campos de texto, como "AM", "PM" y "SNOOZE" son símbolos que consisten en un solo segmento (es decir, controlados por un solo bit).

Lecturas adicionales
Guía del usuario de la familia MSP430x4xx . El controlador LCD se trata en la página 709 y siguientes.

Asumiendo que los segmentos significan la cantidad de partes utilizadas para construir un carácter/dígito en mi LCD, creo que el microcontrolador sería excelente: puede admitir 96 y solo tiene un consumo de corriente de 200 uA. ¿Está sugiriendo reemplazar mi AVR con el microcontrolador TI, o simplemente comunicarlo VIA con la pantalla LCD? Preferiría lo último, debido a mi experiencia basada en AVR (¡también limitada!); Entonces, ¿puedes comentar sobre eso?
@Inga: no conozco ningún AVR con un controlador LCD a bordo. Usar el MSP430 como controlador de pantalla puede ser una buena idea: su AVR puede ceñirse a su tarea principal y el programa para el MSP430 puede mantenerse simple (si no tiene mucha experiencia con él) o avanzado (si desea conviértalo en un controlador inteligente, que puede proporcionar con comandos como "incremento").
Eso suena muy factible; ¡Estoy a punto de pedir uno de los chips TI! Por cierto, en caso de que mis intentos de programación con ese microcontrolador fallen, ¿puedo usar un multiplexor simple o un controlador LED, por ejemplo, un IC como este que acabo de encontrar en Maxim ? Preveo problemas por lo que dijiste sobre los múltiples niveles.
@Inga: no, no puede usar el MAX7219, es un controlador LED. Por un lado, se multiplexan demasiado rápido para las pantallas LCD. Los múltiples niveles no deberían ser un problema; para eso tienes un controlador. Eso se encarga de todo. ¿Qué opinas del controlador inteligente que lleva la cuenta del número a mostrar? Puede usar comandos como "cargar valor", "incrementar conteo", "restablecer conteo", etc.
Jaja, ¿realmente tiene comandos como ese? Seguramente tengo que escribir código para implementar esas funciones yo mismo, ¿no?
@Inga - Sí, tendrás que escribirlos tú mismo; el controlador LCD solo conoce segmentos, ni siquiera tienen que ser numéricos. Muchas pantallas LCD personalizadas tienen símbolos como un solo segmento. Pero podría tomar una carga del AVR y podría reutilizarlo para otros proyectos en los que necesite una pantalla numérica.
Entendido, así que [las luces LCD solicitan segmentos ON] <<--- [El código de MSP430 ejecuta una función que escribo para traducir los caracteres recibidos por UART en segmentos que se activan/desactivan] <<--- [El código de AVR envía el texto deseado a MSP430 a través de UART].
Una nota: cuando dijo que el controlador LCD solo "conoce" los segmentos (y los múltiples niveles son atendidos por él); ¿Qué significa eso? ¿Cómo aprovecho esta función cuando codifico el chip/controlador TI? Estoy empezando a leer la hoja de datos, pero ¿me estoy perdiendo algo?
Encontré esta referencia/Guía del usuario para ese microcontrolador/controlador: el Capítulo 25 trata el control LCD en detalle. Quizás pueda agregar esto a su respuesta, si eso es posible o de interés.
@Inga: sí, estaba a punto de señalarle la guía del usuario; la hoja de datos no le da detalles. La guía del usuario también tiene ejemplos de programación. Verá que la pantalla se representa como una matriz de 16 bytes. Depende de usted decidir qué representa cada bit: un segmento de una pantalla de 7 dígitos o un símbolo en una pantalla personalizada, por ejemplo.
Hace una década, en uno de mis laboratorios de electrónica, usé una pantalla de 7 segmentos de 4 (?) dígitos que tenía pines de entrada separados para cada dígito y que se controlaba con lógica digital simple, por lo que los chips controladores y muxing no son estrictamente requerido. Sin embargo, el módulo era bastante caro; IIRC >$100.
@Dan: puede hacerlo si no necesita / desea multiplexar. El inconveniente es que necesita muchas más E/S: 33 para una pantalla de 4 dígitos + puntos decimales (4 x 8 + 1 común).

Lo que estás pensando se llama LCD de 7 segmentos. Si sabe cómo encender un LED normal, entonces está a 1/8 del camino.

Aquí está el Wiki para ello. Tiene alguna teoría sobre cómo crearía números iluminando diferentes conjuntos de LED: http://en.wikipedia.org/wiki/Seven-segment_display

(de) La multiplexación es un buen método para iluminar un panel grande de 7 segmentos, aunque no es necesario. Si sus puertos de E/S son limitados, entonces es el camino a seguir. Los conceptos básicos de demuxing funcionan así (suponiendo que sepa binario aquí). Mira esta imagen:

Con un número binario de 3 bits como 000 podemos representar hasta el número 7 (es decir, para seleccionar el puerto 5 tendríamos que ABC sea 101). Lo que sucedería en el demux en su situación es que una entrada es algo así como una señal alta, y AB y C son puertos de E/S. Los números del 0 al 7 se conectan a cada segmento de la pantalla LCD y, al escribir ABC desde su controlador, puede iluminar un segmento. Puede que estés diciendo espera, pero si quiero iluminar un número, necesito que se enciendan muchos segmentos, no solo el quinto segmento. Bueno, después de eso, puede mirar dos caminos para que la pantalla LCD muestre un número. El primero es agregar más demultiplexores para los segmentos necesarios adicionales. El segundo es un enfoque de software que consiste en mostrar muy rápidamente cada uno de los segmentos necesarios para crear la ilusión de que el panel está completamente iluminado.

Me gusta el primer enfoque que sugirió: más demux. Pero si tuviera que ir por ese camino, ¿cómo se puede reducir el tamaño físico de los componentes? En mi caso, necesitaría 8 dígitos = 56 segmentos, ¿sabes?
Err bien, no vas a tener suficiente I/0 para controlar 8 dígitos con un enfoque de nada más que hardware. Aquí hay un enlace, da miedo, lo sé, pero no creo que pueda dibujar/explicar un desglose más fácil. doctronics.co.uk/4511.htm . Aunque esa es la teoría. En la práctica, consideraría el método de escaneo, sé que puede parecer que no brindaría una buena imagen o sería complicado, pero es una práctica muy común en la industria. La mejor de las suertes.
@Inga: ¡incluso 64 si también cuentas puntos decimales! Hay dos razones por las que no encontrará los no multiplexados. Uno es solo la gran cantidad de pines, tanto en la pantalla como en el microcontrolador. El microcontrolador necesitaría al menos 80 pines y más pines = más costo. Pero también hay enrutamiento. Si tiene una pantalla multiplexada, tendrá el enrutamiento de un segmento a través de un segmento adyacente, pero si están todos separados, no puede hacer algo así. Eso también es un costo adicional.

Una pantalla de siete segmentos o una pantalla de matriz de puntos es a lo que te refieres, creo.

Aquí hay un ejemplo en Sparkfun con la hoja de datos relevante . Encontré este ejemplo/tutorial de AVR en la sección "Documentos" de la página del producto. ¿No es genial Sparkfun?


Dada esta pantalla de 14 segmentos y su hoja de datos , veamos cómo usarla.

Tomemos el ejemplo de mostrar a 7en el primer grupo de segmentos (más a la izquierda).

Para escribir un 7, necesitamos afirmar los segmentos 1A, 1By 1C, como se ve en la hoja de datos. Todos estos segmentos se asignan al pin 35 del dispositivo, pero en COMlíneas diferentes. Con una hoja de datos tan críptica, mi mejor suposición sería que estas COMlíneas se asignan a los pines 17 a 20, dada la tabla en la hoja de datos.

Por lo tanto, para afirmar cada segmento anterior, mantendría el pin 35 en alto mientras alterna rápidamente entre afirmar COM1, COM2y COM3mediante los pines 18, 19 y 20 respectivamente. Los tres segmentos aparecerían iluminados simultáneamente, creando un 7.

Dicho esto, el código bien escrito simplemente usará algún tipo de mapa para que se muestre cualquier carácter dado. El desafío es hacer que este mapa funcione para CUALQUIERA de los grupos de segmentos.


Todavía recomiendo una pantalla de matriz de puntos como la primera a la que me vinculé; ciertamente hay diseños más ligeros por ahí. El beneficio de usar una pantalla de matriz de puntos es que la mayoría tiene un registro de datos incorporado, por lo que puede pasarle caracteres ASCII de 8 bits, sin problemas de implementación raros como en el ejemplo de 14 segundos anterior.

Por cierto, ¡tengo una pantalla LCD muy similar al ejemplo que publicaste! Pero es un módulo muy grueso y no es muy legible sin la luz de fondo encendida. Mientras que el que publiqué es mucho mejor visible a pesar de no tener luz de fondo, y de alguna manera parece más limpio (sin una apariencia de tipo remanente sombrío de los dígitos que no se muestran). ¿Alguna idea? ¿Hay subcategorías dentro de estas pantallas?
Usando "pantalla de siete segmentos" como mi término de búsqueda, encontré este: Página de Digikey Me gustaría trabajar con este, por ejemplo. Y esta es su ficha técnica .
En realidad iba a decir (según tu explicación) que el de 14 segmentos parece MÁS SENCILLO, ¿no? Bueno, está bien, no es más simple que simplemente pasar caracteres ASCII, pero es bastante simple en términos de lógica y cantidad de control (p. ej., simplemente iluminar un segmento). Por cierto, en el enfoque que recomendó anteriormente, ¿cómo se trata lo que dijo stevenvh en su Respuesta sobre que no hay dos niveles de lógica para estas pantallas?
@Inga No me parece que sea necesario que haya más de dos niveles lógicos en esta pantalla de 14 segmentos en particular, ya que tiene un pinout tan detallado. Sin embargo, todavía no estoy seguro, porque la hoja de datos y la página de Digikey no dicen nada sobre los niveles de voltaje/lógicos. Honestamente, no suele ser una buena práctica comprar un dispositivo tan mal documentado.
Oy, está mal documentado, ¿no? :( ¿Puedo pedirle que me recomiende un modelo o incluso una empresa en la que deba obtener este tipo de pantalla pero con una mejor documentación, si quiero seguir aprendiendo a codificar la pantalla de 7 segmentos de la manera que presentó anteriormente?
@Inga No tengo recomendaciones para pantallas de 7 segundos, de verdad; Sigo pensando que deberías encontrar una buena pantalla de matriz de puntos. Seguiría buscando en Digikey y Sparkfun hasta que encuentre uno con buena documentación y algo que cumpla con sus especificaciones.
¿Por qué no usar algunos de los controladores LCD, esa interfaz sobre I2C, como Holtek 1632 o similar? (¡Espero haber acertado la parte!)