por zazulak » 30 Out 2010 14:29
Precisa necessariamente ser multiplexado?
Pergunto isso porque, dada a grande area de cada segmento, seria necessária uma corrente considerável para acendê-los com brilho razoavel numa configuração multiplexada. Fora a maior demanda de processamento, pois o seu microcontrolador terá que ficar sempre trocando o display selecionado, mesmo que não haja atualização dos dados exibidos.
Eu particularmente não multiplexaria. Usaria shift registers. Mais ou menos assim ó:
- Para cada display grande de anodo comum, um 74HC595. Em cada saída do 595, a base de um BCzinho NPN, cujo emissor é aterrado através de um resistor de 220R. Este arranjo parece estranho a primeira vista, mas nada mais é do que uma fonte de corrente constante. 5V - VCE (0.6v) = 4.4V, que divididos por 220r resultam em 20 miliamperes. Coletores dos BCs ligados aos segmentos, e anodos ligados direto numa tensão de 12 a 24V, que não precisa ser regulada, pois a corrente constante garantirá brilho uniforme independente da variação da fonte.
- Para os displays menores, novamente um 74HC595, com as saídas ligadas diretamente aos anodos, e o catodo comum aterrado. A própria resistencia interna das saídas do 595 limita a corrente, considerando que a queda de tensão sobre ele será mínima (5V - 4.2V = 0.8V).
E, o mais mió de bom: Poderás comandar tudo isso com apenas 3 pinos do PIC. Una o "shift clock" de todos os 595 junto, assim como o strobe. Apenas o "data" terá que ser intercalado: Pino 14 de um 595 no pino 9 do anterior, e o pino 14 do primeiro ao PIC.
Além do menor numero de pinos necessários, esta abordagem tambem economiza processamento: Só será necessário enviar dados para o display quando houver alguma mudança da informação a ser exibida.
Tenho código tanto em ASM como em C para AVR para comandar displays assim. Dá pra converter pra PIC facilmente.
------------------------------------------------------
Agora, se for realmente necessário multiplexar, seria bom ter dois circuitos separados, um para os displays grandes, outro pros pequenos, visto que serão alimentados com tensões e polaridades diferentes. Para os grandes, um ULN2803 (igual ao 2003, mas com 8 canais, permite incluir o ponto decimal) mais 2 transistores para cada anodo e alguns resistores. Para os pequenos, um buffer de 8 bits ligado na mesma porta do PIC que a entrada do 2803 e um transistor para cada catodo. Neste caso, usará uma porta de 8 bits inteira e mais 6 pinos para seleção do display ativo (ou 3 se usar um decodificador)