Possíveis causas para tremulação de LED de 7 segmentos

11

Estou trabalhando com um fornecedor no exterior para renovar um produto existente. Estamos tentando manter o custo baixo.

Atualmente, o produto consiste em:

  • 4 botões grandes
  • 4 LEDs de 7 segmentos e dois dígitos. (cada botão tem dois dígitos embaixo dele)
  • 1 LCD (8 caracteres ... cada exibição de caracteres é composta por uma grade de 3x8 pontos de LCD)
  • Um falador
  • um microcontrolador
  • Driver LCD

Na reforma, o fornecedor deseja solucionar um problema com o produto atual. Todos os quatro LEDs de dois dígitos têm um piscar visível.

O fornecedor está nos fornecendo uma estimativa que inclui o uso de um novo microcontrolador, alguma reformulação do circuito e refazer todo o programa! (nós apenas queremos trocar arquivos de áudio e corrigir a oscilação ... não acho que a lógica geral do produto precise mudar)

Não sei exatamente como o circuito anterior foi projetado, mas potencialmente o flickr pode ser devido ao fato de o MCU não ser rápido o suficiente para o PWM ao acender os LEDs.

Em geral, com base na experiência, quais poderiam ser outras causas de LEDs de 7 segmentos tremeluzentes. Eu só quero entender o problema para poder discernir se o fornecedor está orçando trabalho adicional quando não é necessário.

milesmeow
fonte
2
Hail-Mary hack: duplicar (ou mais) a frequência do oscilador MCU. Provavelmente não vai funcionar, mas, ei, por que não?
tyblu

Respostas:

18

Flicker é o resultado de uma atualização muito lenta. Você precisa atualizar cada segmento em um mínimo de 100 Hz. No entanto, existem alguns truques que podem reduzir a cintilação aparente sem fazer atualizações mais rápidas. A abordagem ingênua é atualizar os dígitos em ordem. Mas, se você os alternar um pouco, o número inteiro parecerá piscar menos. Por exemplo, faça os dígitos 1, 3 e 5, depois volte e faça os dígitos 2, 4 e 6.

Sem conhecer o processador e ver o código-fonte, é impossível dizer se o fornecedor está tentando enganá-lo ou se a bagunça realmente precisa ser reescrita. Lembre-se de que 99% dos engenheiros de firmware escrevem firmware horrível. Pode haver constante codificado em todo o lado que faz suposições sobre a freqüência do relógio, a taxa de atualização do LED etc. Com firmware bem escrito, aumentar a taxa de atualização assumindo que o processador possui os ciclos necessários já deve ser fácil. Com um firmware mal escrito, pode haver muito mais problemas do que abandonar a bagunça e escrevê-la corretamente.

Como o designer original não abordou o flicker? Talvez o firmware esteja tão mal arquitetado que simplesmente não foi possível aumentar? Se a cintilação é tão óbvia, por que o produto foi criado do jeito que é? Isso por si só torna provável que o designer original tenha feito uma bagunça. Se ele pudesse consertá-lo facilmente, provavelmente o teria.

O mais engraçado é que agora você está fazendo de novo. Você está indo para o exterior porque deseja manter os custos baixos. Um bom design custa dinheiro real, mas um design ruim custa muito mais. Mesmo que você tenha sido mordido por isso, aparentemente ainda não o aprendeu. Com um bom design, em primeiro lugar, você não estaria nessa posição e, mesmo que estivesse, deveria ser fácil mudar. Não há desculpa para alterar o áudio armazenado, não sendo uma operação simples.

Como você sabe se é uma má idéia ou não alterar o microcontrolador e o circuito, se você não sabe o que são? Comprar engenharia estritamente no preço é o caminho mais caro.

Adicionado em resposta aos comentários:

Não me lembro de onde ouvi falar sobre a atualização de dígitos de forma não sequencial, mas tentei e achei que ajudaria. Eu acho que funciona pela mesma razão que a TV entrelaçada parecia piscar na taxa de campo em vez da taxa de quadros. Para o NTSC, a imagem inteira foi redesenhada a 30 Hz, mas a oscilação aparente foi de 60 Hz devido à atualização do entrelaçamento. Você não terá 2: 1 assim entrelaçando dígitos, mas ajuda.

Não, 60 Hz não é rápido o suficiente, nem chega perto. 60 Hz é onde a maioria das pessoas não vê mais cintilação em uma onda quadrada. Alguém olhando diretamente para um LED acionado 50% do tempo a 60 Hz pode não ver a cintilação, mas essa não é a única maneira que as pessoas percebem. A menos que você tenha apenas dois dígitos, os LEDs ficarão mais brilhantes por uma fração menor do tempo, o que torna a cintilação mais aparente. O centro da sua retina é o mais lento em responder. Você notará cintilação mais na periferia da sua visão. No entanto, a verdadeira parte questionável é quando você move os olhos. A cintilação é facilmente aparente a 60 Hz. Você não pode tornar o flicker invisível devido a esse fenômeno, então o problema é torná-lo menos irritante. 60 Hz ainda é bastante irritante para a maioria das pessoas. Como eu disse, você quer alguns 100 Hz, pelo menos.

Quanto à obtenção de uma boa engenharia, esse é um tópico por si só. Não há nada inerentemente errado em ir para o exterior. Pessoas competentes vivem em vários lugares. A questão é a primeira a reconhecer que o mau design custará muito mais do que contratar um engenheiro de ponta para fazê-lo da maneira certa. Segundo, você precisa perceber que encontrar e verificar talentos de engenharia exige algum trabalho. Você vai gastar milhares de dólares, provavelmente 10s de milhares de dólares. Trate-o como outras decisões de compra dessa magnitude. Pergunte, entreviste, obtenha referências e realmente acompanhe-as.

Contanto que você seja sério e o trabalho seja real, eu diria que você tem o direito de esperar cerca de 2 horas de consulta inicial antes de qualquer compromisso. Lembre-se de que isso ocorre nos dois sentidos. Parte desse tempo é para você avaliar o engenheiro, mas é claro que o engenheiro também está avaliando você. Eles estão tentando decidir se esse trabalho está de acordo com o que eles querem fazer, se você sentirá muita dor no cliente alvo etc. De qualquer forma, deve haver tempo de sobra para atender aos requisitos e conversar sobre impressões iniciais de qual caminho o engenheiro seguirá em direção à solução. Isso deve lhe dizer muito sobre como eles pensam, o quanto eles apenas implementam o que você disse a eles, em vez de tentar descobrir o problema real e garantir que isso seja resolvido, sugerindo soluções alternativas etc.

Nada disso diz que o engenheiro não pode ser supervisionado, mas dificulta a logística e a boa avaliação. Se você tem algumas recomendações fortes de pessoas em quem confia, isso ajuda bastante. Se você é lógico, apenas que Bob em Boston quer US $ 130 / hora e está estimando quatro semanas, enquanto Naresh em Bangalore quer US $ 35 / hora e pode fazê-lo em duas semanas, você está indo para um problema sério.

Olin Lathrop
fonte
5
+1 para todos. Eu também nunca soube que atualizá-los fora de ordem pode reduzir a cintilação, uma boa parte de curiosidades. Uma rápida pesquisa no Google realmente não retornou nenhuma informação a esse fato. Você tem um link / referência que explica esse fenômeno? Estou curioso sobre o motivo pelo qual o cérebro se comportaria dessa maneira.
Kris Bahnsen
refresh each segment at a few 100 Hz minimum 60 Hz (taxa de atualização de jogos, LCDs etc.) são suficientes?
m.Alin
Olin: Você tem um bom argumento em obter uma boa engenharia. O que você sugeriria? Engenheiro interno e depois produzi-lo no exterior?
usar o seguinte comando
@ m.Alin: Veja a adição à resposta.
Olin Lathrop
@ kris: Veja a adição para responder.
Olin Lathrop
1

Concordo taxa de atualização mínima de 100Hz. Isso deve ser bastante fácil de fazer no código para qualquer uC. Quaisquer outros sintomas do relógio baixo f? como tom baixo no alto-falante?

Todos os displays Mux'd assumem um% fixo de ciclo de serviço = tempo ligado / ciclo, para que a corrente média seja constante, independentemente do tempo de atualização. Então, como o tempo LIGADO e o tempo do ciclo devem ser entendidos ao fazer alterações.

Se você SABE COMO, é trivial. Caso contrário, é realmente muito caro.

Tony Stewart Sunnyskyguy EE75
fonte
0

Entendo que o flicker pode ser visto em todas as unidades do mesmo modelo de produto, portanto, não é que algo tenha sido danificado. Eu também diria que você só precisa aumentar a frequência de atualização e, é claro, não alterar o programa inteiro.

Pode ser que o MCU não seja rápido o suficiente para atualizar esses dois dígitos a uma taxa mais alta, mas duvido. Você pode nos dizer o que é MCU?

Telaclavo
fonte