Go Down

Topic: Leer estado del display de 7 segmentos (Read 526 times) previous topic - next topic

Nachtmotte

Hola, tengo varios display de 7 segmentos de ánodo común, como bien sabrán, consta de 8 leds (contando el punto) unidos por el mismo ánodo.
Mi duda es la siguiente, en el caso de que el display este conectado y funcione de manera externa al arduino, como tendria que hacer las conecciones para que el arduino pueda saber que leds estan prendidos y cuales apagados dentro del display.
Pregunto porque no encontre informacion en internet, la poca informacion es referente al de catado comun e intente hacer pruebas con el display alimentandolo con la fuente MB102 funcionaba bien deje algunos leds prendidos y otros apagados pero cuando intente conectar el arduino para intentar leer que leds estaban prendidos y cuales no, se me quemo la fuente.

surbyte

Yo resolví un problema asi meses atras. Deberias buscarlo.

Alguien tenía un dispositivo que controlaba led multiplexados y logramos leerlos.
Tu caso es mas fácil si los leds se iluminan sin estar multiplexados.

Pero eso require de muchos pines o de un arreglo de integrados para barrer muchos LEDs de manera rápida sin consumir pines de Arduino.

Intenta ser mas específicio.

No entiendo como quemaste la fuente?

Nachtmotte

surbyte
En total son 4 display de 7 segmentos, tenia pensando usar 2 multiplexor 74hc4067, simplemente se me complico porque no entiendo bien como hacer las conecciones teniendo un anodo en comun, la verdad tampoco se como queme la fuente, conecte todo rapido para hacer una prueba y se ve que algo puse mal y apague y desconeccte todo, la verdad ya no me acuerdo como lo puse, se que ahora la fuente enciende pero da mal los voltajes.
Si te acuerdas en el anterior tema te comente que hace poco empece en el mundo del vending, y ya que ahora empece con arduino se me ocurrieron varias cosas que quisiera probar en las maquinas que tengo en mi casa, una de las maquinas tiene de pantalla cuatro display de 7 segmentos de anodo comun donde se visualiza el estado y los errores de la maquina, yo quiero que el arduino lea el estado de los leds para luego poder enviarme la informacion a mi pc.

Lucario448

tenia pensando usar 2 multiplexor 74hc4067
El 74hc4067 es un multiplexor para 16 entradas analógicas... ¿sabías?

Nachtmotte

Lucario448
Que no sirve? talvez estoy equivocado :smiley-sweat:

Lucario448

Búscalo en Google y mira que no miento.

Lo que buscas es un mutiplexor de salidas, no de entradas; así que no va a funcionar.
Quizá deberías buscas más bien sobre algún "controlador de display de 7 segmentos".

Nachtmotte

Lucario448
Yo no quiero controlar el display ni encender las luces eso ya lo hace de por si solo, yo quiero saber el estado de los leds, cuales estan encendidos y cuales no, no quiero encenderlos, eso lo hace de manera externa.

surbyte

#7
Oct 07, 2017, 09:21 pm Last Edit: Oct 07, 2017, 09:22 pm by surbyte
El quiere ver en que estado esta cada Display LED.
Pero como no pone como estan funcionando es dificil aconsejarlo.
No sabemos si son Display de LED que funcionar con un Decodificador BCD a 7 Segmentos por Display o si estan multiplexados.
Para responder, no te limites a mirar los Displays, mira que controla esos displays?

Lucario448

yo quiero saber el estado de los leds, cuales estan encendidos y cuales no, no quiero encenderlos, eso lo hace de manera externa.
Perdona; no sé por qué después lo pensé al revés.

Una manera muy sencilla de saber el estado, es que el mismo Arduino sea el controlador; pero se necesitan 8 + cantidad de dígitos pines para eso.
Si ni con los pines Ax te alcanza; entonces la respuesta (aparte de un Arduino Mega) no es realmente 16 entradas analógicas, sino un expansor de entradas/salidas (en inglés "I/O expander"). Quizá hasta un "shift register"; pero la idea es que sea meramente digital, por cuestiones de velocidad.

surbyte

Y porque no usar un multiplexor tipo 4052 que tienes 4 entradas/salidas, conectas cada 4052 al mismo segmento de cada uno de los 4 Display 7 segmentos o sea que necesitarías 4x CD4052.



Lo que aparece como Xcom Ycom serán 2 segmentos que estarán conectados supongamos a los pines desde el 2 al 9 cumplimentantod los 7 segmentos y el punto decimal.

Suponiendo que los displayas tienen un decodificador BCD a 7 segmentos, entonces todos estarán encendidos buen tiempo. Tiempo suficiente para que tu barras cada display y sepas que esta mostrando, leyendo el estado de esos 8 segmentos.


Nachtmotte

Lucario448
Si tengo un Arduino Mega para hacer las prueba, pregunto mas que nada por las conecciones porque no encontre informacion en internet y cuando intente hacer una prueba queme una fuente.

surbyte
Lo siento por no darte la informacion necesario, estuve viendo un rato la plaqueta y buscando sobre los controladores que tiene conectados y siendo sincero no tengo la mas minima idea que controla los display.

esta es la plaqueta es cuestion, va conectada a otra mas grande


Pregunto porque no quiero quemar mas cosas, esta bien la coneccion o hice cualquier cosa?

surbyte

Eso esta multiplexado si o si. Solo se ven 8 resistencias para los segmentos, prueba d elo que te digo.
Tambien se ven las pistas que van a todos los displays del lado soldadura.

Bien... tienes que buscar ese hilo que te comenté... porque lo resolvimos en ese momento.

Un tema parecido al tuyo.

surbyte

Encontré entre mis carpetas, el código que implementé entonces. Era para dos displayas ANODO COMUN asi que vamos bien.

Usa 2 interrupciones, una por cada digito, asi que eso nos obliga a :
1. Usar un MEGA
2. Usar interrupciones de PIN o PCINT.

El código es algo especial.

Si resuelves usar el artilugio con los CD4052 entonces se podria implementar algo con el UNO e interrupciones de pines. 1 x cada DIGITO.

Nachtmotte

surbyte
Bueno al final no encontre el hilo que me comentaste, o si lo encontre no estaba la respuesta que buscaba, me estuve informando como funciona el multiplexado (disculpame la demora todo esto es nuevo para mi), y no creo que los display esten multiplexados, desolde los 4 display y me di cuenta que todos los anodos estan conectados entre si y para cada catodo hay una coneccion diferente, es decir, que los 4 anodos siempre tienen voltage y hay 32 conecciones diferentes para cada catodo. Segun yo entiendo, cada anodo tendria que estar conectado a una salida diferente para mandar voltage solo a un display a la vez y hacerlo tan rapido que parezca que los 4 estan encendidos pero en este caso todos estan conectados a la misma salida.

Si conecto el GND de arduino al anodo del display y conecto entradas analogicas a los catados y leo voltage negativo, no me sirve para saber si el led esta encendido o no?
No estoy interesado en el codigo completo y como hacer todas las conecciones de los display al arduino, eso despues lo busco yo, ahora solo me interesa saber lo mas basico que es leer el estado de dos o mas leds que tengan anodo comun con arduino.

IgnoranteAbsoluto

Dudo que estén multiplexados. Son controlados por el integrado que está al lado, el MM5450N. Él solo se basta para controlar la corriente de los LEDs sin necesidad de una usar una resistencia por cada LED. Si buscan el datasheet lo verán. Es algo así como un 74595 pero con más pines de salida y con control de corriente para cada pin, que permite controlar el brillo de los LEDs, sin necsidad de una resistencia por cada LED (los que conozcan el 74595 me entenderán).

En el ejemplo del datasheet se muestra cómo controlar 8 display de 7 segmentos multiplexando 4 y 4. Pero para controlar solo 4 displays no hace falta multiplexar.

El MM5450N convierte una entrada serie síncrona en una salida paralelo con corriente limitada.

El MM5450N utiliza tres señales de entrada. Una de datos, otra de reloj y otra de habilitación. Creo que, en este caso en particular,para saber qué es lo que está mostando lo más práctico sería analizar diréctamente esas tres señales. Para ello las conexiones que haría serían pone las masas en común (conectar la masa del arduino con la masa de la placa) y conectar los pines 21, 22 y 23 del integrado a tres entradas del Arduino. La 21, la de reloj, la conectaría a un pin del Arduino con interrupción para detectar el flanco de subida. Y cuando se genera la interrupción se amalizan las otras dos entradas. Aunque tal vez la señal del pin 23, la de habilitación, esté siempre a nivel bajo (cosa que sería un inconveniente porque no se sabría fácilmente cuando se incia la transmisión) o pase anivel alto y luego a nivel bajo sin señal de reloj con lo que habría que controlarla fuera de la interrupción, en el loop().

Creo que sería fácil seguir las pistas y averiguar qué pin está conectado a que LED. Analizando las tres señales de control se puede saber fácil qué LED se enciende o se apaga y de ahí a saber qué se está mostrando es hacer una pequeña "conversión".

Si se desea aislar eléctricamente las conexiones entre la placa y el Arduino, para no arriesgarse a que se queme nada, supongo que se podrían usar tres octocopladores.


Por otro lado, si conectaste sin resistencias limitadoras de corriente un display de 7 segmentos a algún integrado que no controla internamente la corriente que le suministra al display, no sería de extrañar que se quemara o dañara el display, el integrado y/o la fuente de alimentación.

Go Up