Neste post vou fazer um pequeno desvio do assunto imãs e sensores magnéticos e falar sobre conexão de display de 7 segmentos, para construir um contador de giros.
O assunto de conexão de LEDs e displays de 7 segmentos já aparece antes no blog, por exemplo aqui, aqui e aqui.
Neste caso vou utilizar um display que agrega de forma prática 4 dígitos e que você encontra na loja do Laboratório de Garagem (a Sparkfun oferece outras opções de cores, se tiver interesse consulte o pessoal do Lab de Garagem).
A configuração deste display é de anodo comum, isto é, os anodos dos sete segmentos de cada dígito estão interligados. Para acender um segmento do display é preciso colocar uma tensão entre o anodo comum e o catodo do segmento. Os catodos dos segmentos dos dígitos, por sua vez, estão interligados entre si. Para apresentar um dígito, o selecionamos através do anodo e colocamos nos segmentos as tensões para acender ou apagá-los conforme o desenho desejado.
Para apresentarmos "simultaneamente" os quatro dígitos fazemos uma multiplexação, acendendo um dígito de cada vez por uma fração de segundo. A nossa vista não perceberá que cada dígito está aceso apenas um quarto do tempo.
Desta forma, precisamos de 11 sinais (7 segmentos e 4 anodos) para apresentar os quatro dígitos. Uma vez que o PIC que estou usando não tem tantos pinos de E/S disponíveis, utilizei um shift-register 74HC595.
Este componente possui um registrador interno; a cada pulso na entrada ST o conteúdo do registrador é deslocado para a esquerda e o sinal DS é colocado no bit menos significativo. Um pulso na entrada SH coloca o conteúdo do registrador interno nos pinos de saída. Desta forma, com apenas 3 pinos do PIC eu consigo gerar 8 sinais digitais, que serão ligados aos catodos dos segmentos.
Neste ponto precisamos fazer uma pequena conta para verificar a corrente que passará nos segmentos. Uma consulta rápida ao datasheet do display (ou uma medida com um multímetro) informará que a tensão em cada segmento aceso é de 2,0V. Fazendo um teste colocando um resistor em série com um segmento e alimentando o par com 5V verificamos que um resistor de 1.5K fornece uma luminosidade suficiente. Aplicando a lei de Ohm, obtemos uma corrente de 2 mA, que flui do anodo para o catodo. O 74HC595 é capaz de drenar uma corrente de até 35 mA, o que é mais que suficiente. Na ponta do anodo comum, podemos ter até 7 vezes a corrente de cada segmento, totalizando 14mA. Os pinos de E/S do PIC utilizado são capazes de fornecer até 25mA, portanto podemos ligar os anodos comuns diretamente aos pinos do PIC.
Chega de teoria, vejamos como fica o circuito:
No próximo post vamos ver o código correspondente.
7 comentários:
Cara estou querendo fazer um projeto similar a este onde eu iria utilizar um sensor de conta voltas, porém é meio caro o sensor. vendo esses posts seus achei melhor e mais econômico mudar minha estratégia para o contador. Porém eu nao entendi muito bem como foi feita a ligacao do sensor de efeito hall no diagrama e no photoborad, poderia me da uma ajuda e explicar? Obrigado e parabens pelos blog.
Eu expliquei um pouco este sensor nos dois posts anteriores desta série. Basicamente ele tem três terminais, um que deve ser ligado à alimentação, outro ao terra e o terceiro é a saída. A saída pode ter dois estados: desconectada ou ligada ao terra. Para o estado desconectado gerar um nível alto tem um resistor de 10K ligando a saída à alimentação. A saída do sensor muda quando ele detecta uma mudança de sinal no campo magnético, portanto são necessários dois imãs.
Gostaria de saber o que significa o simbolo que parece uma taça na saída do sensor?
Acho que você está se referindo ao símbolo que eu uso para as ligações à alimentação do circuito.
Pena que fez com Pic, eu uso Arduino.
A maior parte do que está escrito aí (sobre o display e o 74HC595) se aplica também ao Arduino. Eu estou usando uma entrada digital (para o sensor) e oito saídas digitais (sete para o display e uma para o LED) do PIC, não é difícil fazer a montagem equivalente trocando o PIC por um Arduino. Por outro lado, o Arduino tem saídas suficientes para ligar o display direto, dispensando o 595.
Obrigado
Postar um comentário