Um contador up/down que salva contagem na EEprom em caso de falta de energia elétrica na rede…
Os contadores digitais são dispositivos que mostram uma contagem em um visor de LCD ou em displays de 7 seguimentos. O valor desta contagem pode ser incrementado ao apertar o botão “Up” ou decrementado se apertar o botão “Down”. Os contadores podem ser usados em muitas aplicações práticas, como placares esportivos, organizadores de fila, hodômetros, catracas eletrônicas, etc.
Este artigo tratará de um contador up/down que salva a contagem na EEprom interna do PIC. Veja o esquema abaixo:
Para controlar os processos de leitura de interruptores e multiplexação dos displays de 7 seguimentos foi usado o conhecido PIC 16F628A.
O portB aciona os seguimentos de cada display. Apenas o pino 13 foi usado como saída para um relé.
Este relé liga quando a contagem for diferente de zero e desliga em zero. Dependendo da aplicação talvez você prefira não usar esta saída.
O portA aciona os transistores drives dos displays ligados nos cátodos (ou ânodo, conforme a versão). Também serve de entrada para os interruptores de pressão momentânea para incrementar (Up) e decrementar (Down), além do interruptor para zerar a contagem e também a memória. Note que o pino 3 foi usado como um sensor de falta de energia. Em funcionamento este pino está em nível ‘1’ por meio do divisor de tensão e o diodo Zener de 5 Volts ligado na tensão de 12 Volts na fonte. Quando ocorre uma queda de tensão na rede elétrica, a tensão acumulada pelo capacitor de entrada da fonte começa a cair e quando chega em aproximadamente 8 Volts produzirá nível lógico ‘0’ no pino 3. Isto faz que a rotina salve a contagem na EEprom interna. Ao voltar a energia, na inicialização do programa, os registradores da contagem serão carregados com os valores salvos.
Por que foi usado este método de salvamento? Muitos preferem simplesmente ir salvando na EEprom a cada aperto em um dos botões. Isto significa que a memória EEprom será constantemente utilizada. Em certa aplicações, talvez tenha que acumular contagens altas e várias vezes por dia. Nesta situação, a EEprom poderá ter sua vida útil reduzida, com a perda do microcontrolador. O datasheet do PIC 16F628A informa logo na página inicial, o tempo de vida da EEprom: 40 anos para a retenção dos dados e 1 milhão de ciclos de escrita. Se queremos que ela dure o tempo de vida máximo então temos de descobrir quantas vezes podemos gravar uma mesma posição de memória por dia.
1000000 / (40 * 365 ) = 68 vezes.
No caso proposto, o salvamento ocorrerá somente ao desligar o equipamento, ou quando ocorre a falta de energia elétrica na rede, aumentando em muito a vida útil da EEprom interna.
Logicamente em montagens de pouco uso não haveria necessidade de ter esta preocupação com a vida da EEprom. Mas é sempre bom lembrar que tudo tem um tempo de vida, inclusive as memória internas do PIC e tomar cuidado em como as usamos.
Obs. Esta montagem é experimental, sendo de caráter didático, montada apenas em placa experimental (do tipo “Breadboard”), sujeita a “bugs” ainda não detectados. Está sendo fornecido os arquivos para que cada hobista possa alterar o programa segundo suas necessidades.
Segue abaixo uma pasta zipada com os arquivos da montagem. Ao descompactar, você encontrará 4 pastas, com versão usando 4 dígitos, 3 dígitos, 2 dígitos e 1 dígito. Encontrará esquemas e arquivos .hex para ânodo ou cátodo comum em cada uma das pastas.
Em 21/01/2018 foi postado esta nova versão, com ‘debounce’ de interruptores melhorado:
Em 13/06/2020 foi acrescentado esta versão alternativa, para 4 dígitos, sem botão ‘Down’, mas um botão ‘Mem’ em seu lugar. Contagem apenas crescente, com memorização do valor ao apertar botão ‘Mem’. Se o botão ‘Mem’ estiver apertado durante o pós reset, então os dígitos mostrarão o valor salvo:
Manuais:
Datasheet do PIC16F628A
Curiosidades:
Por que parar de fumar?
O que devo saber sobre esteróides?
Conceito equilibrado sobre animais de estimação
Desatualizada ou à frente do seu tempo?
Como a vida se originou?
Outros assuntos:
O caminho para a felicidade
Como cuidar de um parente com uma doença terminal
Como controlar os gastos
Evolução ou Criação parte 1
Evolução ou Criação parte 2
Evolução ou Criação parte 3
Vídeos:
As maravilhas da criação revelam a glória de Deus
Em frente dos meus olhos
Porque Deus criou a Terra?
Aprenda a perdoar
Até o próximo artigo!
Oi ?!!, relacionado ao contador digital up down, as vezes tem falha(nao responde) tanto no incremento quanto no decremento, parece que ta muito sensivel, tem como a resposta ficar um pouco mais lenta, se tiver jeito de alterar, manda o hex pra nois, grato!!
Olá Raimundo! Poderia explicar melhor o que está acontecendo e como está usando o circuito?
bom, montei o circuito seguindo o esquema, usei botao de pressao, a fonte, usei uma de 12v-2A(sem trafo) daquelas de monitor lcd,… ex: vou contar ate 10, tres apertao nao responde, nao e em sequencia,… tanto com botao ou clicando os fios e ou foto-acoplador, acontece, to usando so o circuito por enquanto !!
sabe quando ce aperta o botao de contar e ele da umas atropeladas, outra ora falha pra marcar, nao sei como funciona dentro do pic, se voce poe um tempo, mas parece que e algo com milisegundos de aceitaçao de comando e ou resposta do aperto do botao, ta sensivel, aqueles resistores de 10k, la nos botao, sera que tem algo a ver, porque no contador de voltas usa valor menor, ou e no programa, !!!
fiz a montagem de up down 3 digitos catodo, funcionou muito bem, parabens !!!
quando possível disponibiliza essa versão obrigado
UAU !!!! esse up down me serve direitinho, mais tarde vou montar, valeu !!!
Boas Claudio ,no caso seria possivel controlar os displays individualmente ,caso para uso esportivo onde um atleta tem que sair e outro entrar em seu lugar e mostra os numeros que altleta sair e entrar ,obrigado
Olá Marcos!
Com outro código sim. Agradeço a sugestão.
Cláudio