Posibles causas del parpadeo del LED de 7 segmentos

Estoy trabajando con un proveedor en el extranjero para renovar un producto existente. Estamos tratando de mantener los costos bajos.

Actualmente el producto consta de:

  • 4 botones grandes
  • 4 LEDs de 7 segmentos de dos dígitos. (cada botón tiene dos dígitos debajo)
  • 1 LCD (8 caracteres... cada pantalla de caracteres se compone de una cuadrícula de 3x8 de puntos LCD)
  • un altavoz
  • un microcontrolador
  • controlador de pantalla LCD

En la renovación, el proveedor quiere abordar un problema con el producto actual. Los 4 LED de dos dígitos tienen un parpadeo notable.

¡El vendedor nos está dando una estimación que incluye el uso de un nuevo microcontrolador, algunos rediseños de circuitos y rehacer todo el programa! (solo queremos intercambiar archivos de audio y corregir el parpadeo... No creo que la lógica general del producto deba cambiar en absoluto)

No estoy seguro exactamente de cómo se diseñó el circuito anterior, pero potencialmente el parpadeo podría deberse a que el mcu no es lo suficientemente rápido para PWM al encender los LED.

En general, según la experiencia, ¿cuáles podrían ser otras causas del parpadeo de los LED de 7 segmentos? Solo quiero entender el problema para poder discernir si el proveedor está presupuestando trabajo adicional cuando no es necesario.

Hail-Mary hack: doble (o más) la frecuencia del oscilador MCU. Probablemente no funcione, pero bueno, ¿por qué no?

Respuestas (3)

El parpadeo es el resultado de una actualización demasiado lenta. Debe actualizar cada segmento a unos 100 Hz como mínimo. Sin embargo, hay algunos trucos que pueden reducir el parpadeo aparente sin hacer una actualización más rápida. El enfoque ingenuo es actualizar los dígitos en orden. Pero, si los alterna un poco, el número completo parecerá parpadear menos. Por ejemplo, haz los dígitos 1, 3 y 5, luego regresa y haz los dígitos 2, 4 y 6.

Sin conocer el procesador y ver el código fuente, es imposible decir si el proveedor está tratando de engañarlo o si el lío realmente necesita ser reescrito. Tenga en cuenta que el 99% de los ingenieros de firmware escriben un firmware horrible. Podría haber una constante codificada por todas partes que haga suposiciones sobre la frecuencia del reloj, la frecuencia de actualización del LED, etc. Con un firmware bien escrito, aumentar la frecuencia de actualización suponiendo que el procesador ya tenga los ciclos necesarios debería ser fácil. Con un firmware mal escrito, podría ser mucho más problemático que deshacerse del desorden y escribirlo correctamente.

¿Cómo es que el diseñador original no abordó el parpadeo? ¿Quizás el firmware está tan mal diseñado que simplemente no fue posible aumentarlo? Si el parpadeo es tan obvio, ¿por qué se creó el producto de la manera que es? Eso solo hace que sea probable que el diseñador original haya hecho un desastre. Si hubiera podido arreglarlo fácilmente, probablemente lo habría hecho.

Lo realmente gracioso es que ahora lo estás haciendo de nuevo. Te vas al extranjero porque quieres mantener los costos bajos. Un buen diseño cuesta dinero real, pero un mal diseño cuesta mucho más. A pesar de que te ha mordido eso, aparentemente todavía no lo has aprendido. Con un buen diseño en primer lugar, no estaría en esta posición, e incluso si lo estuviera, debería ser fácil de cambiar. No hay excusa para que cambiar el audio almacenado no sea una operación sencilla.

¿Cómo sabes si es una mala idea o no cambiar el microcontrolador y el circuito si no sabes cuáles son? Comprar ingeniería estrictamente por el precio es la forma más cara de hacerlo.

Añadido en respuesta a los comentarios:

No recuerdo dónde escuché sobre la actualización de dígitos de forma no secuencial, pero lo probé y encontré que me ayudó. Creo que funciona por la misma razón por la que la televisión entrelazada parecía parpadear a la velocidad de campo en lugar de a la velocidad de fotogramas. Para NTSC, la imagen completa se volvió a dibujar a 30 Hz, pero el parpadeo aparente fue de 60 Hz debido a la actualización entrelazada. No vas a obtener 2:1 así entrelazando dígitos, pero ayuda.

No, 60 Hz no es lo suficientemente rápido, ni siquiera cerca. 60 Hz es donde la mayoría de la gente ya no ve parpadeo para una onda cuadrada. Es posible que alguien que mire directamente a un LED activado el 50 % del tiempo a 60 Hz no vea el parpadeo, pero esa no es la única forma en que las personas lo perciben. A menos que solo tenga dos dígitos, los LED estarán más brillantes durante una fracción menor del tiempo, lo que hace que el parpadeo sea más evidente. El centro de tu retina es el más lento en responder. Notará más parpadeo en la periferia de su visión. Sin embargo, la parte realmente objetable es cuando mueves los ojos. El parpadeo es fácilmente evidente a 60 Hz. No puedes hacer que el parpadeo sea invisible debido a este fenómeno, por lo que el problema es hacerlo menos molesto. 60 Hz sigue siendo bastante molesto para la mayoría de las personas. Como dije, quieres unos 100 Hz al menos. Si tienes que elegir un número,

En cuanto a obtener una buena ingeniería, ese es un tema completo por sí solo. No hay nada intrínsecamente malo en ir al extranjero. Las personas competentes viven en varios lugares. El problema es primero reconocer que un mal diseño costará mucho más que contratar a un ingeniero superior para que lo haga bien en primer lugar. En segundo lugar, debe darse cuenta de que encontrar y examinar talentos de ingeniería requiere algo de trabajo. Vas a gastar miles de dólares, probablemente decenas de miles de dólares. Trátelo como otras decisiones de compra de esa magnitud. Pregunte, entreviste, obtenga referencias y realmente haga un seguimiento de ellos.

Siempre que hable en serio y el trabajo sea real, diría que tiene derecho a esperar alrededor de 2 horas de consulta inicial antes de hacer cualquier compromiso. Tenga en cuenta que va en ambos sentidos. Parte de este tiempo es para que usted evalúe al ingeniero, pero por supuesto, el ingeniero también lo está evaluando a usted. Están tratando de decidir si este trabajo se ajusta a lo que quieren hacer, si va a ser un dolor de cabeza para el cliente, etc. De cualquier manera, debe haber mucho tiempo para entrar en los requisitos y hablar. sobre las impresiones iniciales de qué camino seguirá el ingeniero hacia la solución. Esto debería decirle mucho sobre cómo piensan, cuánto implementan lo que les dijo en lugar de profundizar e intentar llegar al problema real y asegurarse de que se resuelva, sugiriendo soluciones alternativas, etc.

Nada de esto dice que el ingeniero no pueda ser supervisado, pero dificulta la logística y una buena evaluación. Si tiene un par de recomendaciones sólidas de personas en las que confía, eso ayuda mucho. Si su lógica es que Bob en Boston quiere $ 130 por hora y estima 4 semanas, mientras que Naresh en Bangalore quiere $ 35 por hora y puede hacerlo en 2 semanas, está en serios problemas.

+1 por todo. Tampoco supe que actualizarlos fuera de servicio puede reducir el parpadeo, una buena trivia. Una búsqueda rápida en Google realmente no arrojó ninguna información sobre ese hecho. ¿Tienes un enlace/referencia que explique ese fenómeno? Tengo curiosidad acerca de la razón por la que el cerebro se comportaría de esa manera.
refresh each segment at a few 100 Hz minimum¿No serían suficientes 60 Hz (frecuencia de actualización de juegos, pantallas LCD, etc.)?
Olin: Tienes un buen punto sobre obtener una buena ingeniería. ¿Qué sugieres? ¿Ingeniería nacional y luego producción en el extranjero?
@m.Alin: Ver adición a la respuesta.
@kris: vea la adición a la respuesta.
@milesmeow: vea la adición a la respuesta.
La actualización fuera de servicio parece ser exactamente el mismo principio que la trama entrelazada en un CRT.
Términos útiles de búsqueda de Google: "frecuencia de parpadeo crítica"

Estoy de acuerdo con la frecuencia de actualización mínima de 100 Hz. Eso debería ser bastante fácil de hacer en código para cualquier uC. ¿Algún otro síntoma de reloj bajo f? como tono bajo en el altavoz?

Todas las pantallas Mux'd asumen un % de ciclo de trabajo fijo = tiempo de encendido/ciclo, por lo que la corriente promedio es constante independientemente del tiempo de actualización. Entonces, ¿cómo se debe entender el tiempo de encendido y el tiempo de ciclo al realizar cambios?

Si SABES CÓMO, es trivial. Si no lo hace, es realmente muy caro.

Entiendo que el parpadeo se puede ver en todas las unidades de ese mismo modelo de producto, por lo que no es que se haya estropeado algo. También diría que solo necesita aumentar la frecuencia de actualización y, por supuesto, no cambiar todo el programa.

Podría darse el caso de que la MCU no sea lo suficientemente rápida como para actualizar esos dos dígitos a una velocidad mayor, pero lo dudo. ¿Puedes decirnos qué MCU es?