SENHA ELETRONICA (CODE LOCK) – COM PIC 12F629/675 E DISPLAY LCD

1

Muitas materias já foram publicadas sobre ‘senhas eletronicas’. Algumas utilizam o PIC16F873, outras com PIC 16F628 , até mesmo outros chips. A proposta aqui é utilizar um pequeno PIC12F629 para gerenciar teclado, Lcd, bip e saida para um relê. Acha muito para o nosso pequeno ‘valente’? Então veja o esquema abaixo!

Com respeito ao teclado, foi usado um teclado comum de telefone, que com ajuda de uma rede de 6 diodos 1N4148, obtemos uma forma de multiplexar os dados, sempre acionando uma saida por vez e lendo as outras, se estão em nivel =1. Uma vez identificada uma tecla apertada, será salvo o valor da tecla , um ‘bip’ será gerado na capsula piezoeletrica e finalmente, o programa aguardará a tecla ser solta. Os mesmo pinos do teclado são compartilhados com os pinos DB4 a DB7 do LCD, com a saida de som do bip e com a saida do rele. Os pinos ‘E’ e ‘RS’ do Lcd são multiplexados pelo metodo ‘Larios’, que usa o tempo de carga de C4 para indicar se RS=1 ou 0. Se a saida (pino 3) ficar mais que 1 mseg =1 , teremos o envio de um ‘dado’. Se for de apenas algums poucos microsegundos, teremos Rs=0 e será enviado um ‘comando’.
Com respeito ao uso deste equipamento, temos que entrar com uma senha de 6 digitos para a liberação, por ex. de uma fechadura. A senha inicial é ‘012345’, devendo ser trocada por uma pessoal. Evite as já conhecidas datas de nascimento, casamento, etc. Para trocar a senha digite ‘*74123’ que entrará em modo de ‘troca de senha’. A mensagem ‘digite a senha atual’ será mostrada. Após digita-la, aparecerá a mensagem ‘digite a nova senha’ e depois de digitada a nova senha, pedirá a confirmação. Se tudo deu certo, aparecerá a mensagem ‘ok_senha nova’. Pronto!!! Já estamos de senha nova!!!
A cada tecla digitada será produzido um ‘bip’. A tecla ‘#’ quando apertada, cancelará a operação e retorna ao inicio do programa. A tecla ‘*’, excetuando se ela for o primeiro digito, serve para limpar erro de digitação . Com respeito ao teclado, como existem muitos tipos, coloquei uma tabela de que pinos ligam com quem, para o caso de duvidas quanto a ligação ou até mesmo uma adaptação. Após trocar a senha, muito cuidado para não esquece-la, pois terá que examinar a EEprom nos primeiros endereços para saber (em ascii) ou limpar a flash e descarregar de novo o programa hex.
Após a digitação da senha correta, ouve-se um ‘bip’ mais prolongado, a mensagem ‘acesso liberado’ aparecerá no Lcd e o led acenderá, acionando o rele de saida por 10 segundos. Caso queira mais tempo ou menos, acertar no arquivo Asm, na variável ‘tempo_de_abertura’ e recompilar. Após 3 tentativas erradas, o teclado será bloqueado por 3 minutos e a mensagem ‘bloqueio- aguarde 3min’ aparecerá no visor do Lcd. Caso iniciemos uma digitação e paramos por algum motivo, em 30 segundos será apagado tudo no visor, resetando o programa.
A função de C5 junto a base do transistor de saida de som do ‘bip’, é eliminar o ruido do chaveamento do teclado, filtrando e deixando passar somente a frequência do bip. Sem ele, ouve-se um som um tanto irritante de forma constante. O Led1 é opcional, visto que já haverá indicação no display de ‘acesso liberado’. Os testes foram realizados em placa de protoboard , não tendo sido testado as sugestões de placa, apesar de terem sido bem conferidas. Por motivo de segurança, apenas o teclado deverá ficar do lado externo, uma vez que, se a placa for acessada, alguém poderá fazer uma ligação direta.

Segue abaixo o esquema:

Segue abaixo o código Asm:

SENHA_LCD_V1_ASM

Segue abaixo o código Hex (revisado em 05/08/13, tanto para PIC12f675 como para PIC12f629):

SENHA_LCD_V1_HEX

Segue abaixo a sugestão de placa:

SENHA_LCD_PCB

Segue abaixo a orientação de montagem na placa e lista de materiais (visto pelo lado cobreado):

SENHA_LCD_MONT_PCB

Sugestão de construção de teclado com chave tactil aqui.

Curiosidades:
Gás Natural – energia para o lar
Ponte da torre – Uma entrada para Londres

Outros assuntos:
Como lidar com os sogros?
Desempenhem bem o papel de pais
Como reagir ao assédio sexual
Como lidar com problemas financeiros e dívidas
Converse com seus filhos sobre sexo

Até o próximo artigo!!!

1

40 comments

  1. 0

    ❓ Olá, estava tentando entender o seu teclado e me surgiu uma dúvida, como você diferencia as teclas 1, 5 e 9 se as colunas são todas ligadas pelos diodos D8 a D10 quando você seta a P2?

    1. 0

      Olá Trafoman!
      Este teclado é meio complicado de entender na primeira análise. Vamos ver se eu consigo explicar para você de uma forma clara.
      O primeiro teste feito é por setar a linha P2 (pino 2 do pic) e testo as linhas P5 (para tecla ‘1’), P6 (para tecla ‘5’) e P7 (para tecla ‘9’). Se acionadas, retorna o respectivo valor em RTEC, senão ele se mantem em ‘0x00’. Neste momento, você poderá perguntar: Mas os diodos D8 a D10 não estão setando as outras linhas? Não vai acionar também P5 se eu apertar a tecla ‘4’, ou ainda ‘7’? Ou ainda, não vai acionar P6 se acionar as teclas ‘2’ e ‘8’? O que dizer das teclas ‘3’ e ‘6’? igualmente se forem acionadas não irão setar P7?
      Isto é verdade. Qualquer uma das 3 teclas de uma coluna, se acionadas irão setar a respectiva linha de saída e retornar o valor daquela coluna (sendo ‘1’,’5′ ou ‘9’).
      Seria isto preocupante? Ou temos uma maneira de identificar se foi tecla errada acionada, que não ‘1’,’5′ ou ‘9’?
      Suponha que a tecla ‘1’ tenha sido acionada. O registrador RTEC gravou 0x01, mas poderia ter sido ‘4’ ou ‘7’, não se sabendo no momento. Começa a sequência de testes dos outros pinos. Se nenhum outro resultado foi encontrado, saberemos com certeza que a tecla acionada foi ‘1’ e não ‘4’ ou ‘7’.
      Mas suponha agora que tenha sido apertado a tecla ‘4’. No primeiro teste, RTEC terá o valor de ‘1’. Mas ao ser feito a sequência de teste dos outros pinos, RTEC vai mudar para 0x04. Ora, este é o valor ‘verdadeiro’.
      Resumindo:
      O primeiro teste que aciona P2(pino 2) e os diodos D8 a D10 , testa o acionamento de P5 (pino 5), P6 (pino 6) e P7 (pino 7), como grupo, e retorna um valor provável da tecla.
      Os próximos teste irão retirar a dúvida. A detenção de tecla acionada nos próximos testes irá alterar o valor de RTEC para o correto. Senão, mantém o valor provável como sendo o verdadeiro, sem mais dúvidas.
      Ufa! Espero que tenha entendido esta ‘confusão’!
      Cláudio

  2. 0

    ola larios eu montei esse projeto mas estou com dificuldades para ligar o teclado teria no codigo asm como trocar o astericos por numero normal mesmo só assim eu saberia quem estou digitando, pois o teclado de telefone que estou usando so tem 7 fios, agurdo resposta

    1. 0

      Olá Antonio! Gostaria de lembrar que o artigo diz em parte : ‘A tecla ‘#’ quando apertada, cancelará a operação e retorna ao inicio do programa. A tecla ‘*’, excetuando se ela for o primeiro digito, serve para limpar erro de digitação .’ Assim, não se pode colocar uma tecla com ‘ número ‘, pois confundiria completamente a operação do sistema. Terá que usar um teclado compatível . Experimente, usando um multitester, na escala ohmica, levantar quais pinos se ligam ao apertar uma tecla do teclado que está usando. A partir dai poderá chegar a conclusão se o seu teclado serve ou não a montagem. No esquema tem uma demonstração de como fazer a tabela a medida que você testa seu teclado.
      Cláudio

  3. 0

    amigo não tinha visto este pois tem tanto projeto seu que agente fica louco , mas só uma duvida o numeros aparecem no display , pois meu amigo me pediu pra fazer uma fechadura com senha ´para ele pois é tipo um condominio fechado ele queria com a opção de aparecer * ao inves dos numeros entende para niguem saber o numero outra coisa ele só tem a opção de uma unica senha , sera que poderia ter mais senhas cadastradas ?
    sobre os caracteres se não der tem problema não converso com ele para deixar assim mesmo amigo só uma ultima coisa , tem opção para o 12f675 , bem não vi o asm se tiver eu mesmo mudo agora estou fera em mudar rsrsrsr , graças a você né .

    1. 0

      Olá Liliano! Este modelo já esconde os números da senha com “*” (asteristicos). Quanto a várias senhas, terei que fazer alterações significativas no ASM. O colega Agnaldo falou na possibilidade de fazer uma de 90 senhas!!! No momento, não tenho condições de mexer com isto, mas assim que tiver, vou estudar uma maneira.
      Cláudio

      1. 0

        😛 Olá Claudio,Liliano e todos os amigos que acompanha este forum. fio no aguardo quanto a versão com mais senhas,para mim se não der no 12fxx, pode ser mesmo no 16fxx, tem um modelo comercial que ja usei aqui com as posições a ser gravada a senha, para vc ter uma ideia como o que eu tinha llhe falado funciona assim: posição 99,fica a senha master que e a de programação, depois da 01 a 98 fica as posições dos usuarios, este modelo tem um pic16F505 COM MEMORIA 24LC16, ja fiz a leitura desta memoria e fica todas as senhas nela, assim que for possivel com a possibilidade ai do seu tempo e claro, obrigado mais uma vez ai pela a sua atenção em nos ajudar a desvendar este universo dos PIC. Abraço

        1. 0

          Olá Agnaldo! Quando você tiver um tempo, poderia, por favor, fazer um descritivo do funcionamento da senha comercial que você analisou? Como funciona a troca de senhas? Como funciona a senha do Administrador? Tipo de acionamento? Tamanho da senha de 6 ou 8 caracteres? Faz som ao digitar? Bloqueia se fizer quantas tentativas? Tem algum alarme? Tipo de alimentação?
          Isto ajudaria muito para um estudo.
          Claudio

      2. 0

        amigo estou terminando um layout para fazer a montagem deste projeto porem tinha te perguntado antes se havia versão para 12f675 e mais uma coisa comprei um display de lcd e pensei existem varios modelos de display no mercado sera que ele vai ser compativel ja que no seu esquema foi detalhado as informações mas no display que eu comprei veio a informação em numeros amigo não achei nada sobre o display dificil de achar datasheet dele

        1. 0

          Olá Liliano! Veja no artigo, que postei a versão ASM para 675, somente não compilei. Use o Mplab e recompile, por favor. Quanto ao lcd, se for 2 linhas, creio que não haverá problemas.
          Claudio

    2. 0

      Olá Liliano! Quando você tiver um tempinho, por favor, faça-me também, um descritivo de um sistema de senhas (um modelo comercial, por ex.) que você conhece com detalhes sobre quantidade de senhas, como funciona o acionamento, tipo de alimentação, tamanho da senha (6 ou 8 caracteres) , como é feita a troca da senha, se tem senha de administrador e como ela é usada, etc. Isto ajudará muito em um estudo de um futuro projeto.
      Claudio

      1. 0

        ok amigo mas a maioria que ja vi , usa 6 digitos mesmo porem capacidade de armazenar umas 50 senhas na memoria , talves o micro seja outro ou até mesmo foi utilizado uma memoria conjunta né , a troca da senha é justamente acionando #5656 exemplo , ja vi o sistema usado em central de alarme é bem parecido porem a central tinha tipo um menu digita-se a senha e logo após digita o codigo de operação tipo para cadastrar um controle codigo 15 e segura o botão do controle para gravar um sensor sem fio codigo 17 e assim por diante mas isto é um outro projeto porem é parecido , vi um sistema só não me lembro onde , mas tinha um teclado e um display este ficava uma mensagem , digitando a senha liberava a porta exibia uma outra mensagem , agora se for para sofisticar este seu imagina a fechadura com um receptor 433mhz o painel com o teclado um TX , acionando a senha correta transmite o o codigo HT ja gravado no recptor e libera a abertura , fechadura sem ¨fio ¨, bom precisa de alimentação mas quase um interfone sem fio porem transmite codigo para liberar o portão , mas vou ter que te dar um caderno maior , pois ideias nós temos só não temos tempo né ?
        obrigado pela ajuda no projeto uma coisa que esqueci de perguntar este sistema faz igual ao que falei de acionar pulsando ? ou arama por um tempo apenas ? abraços

  4. 0

    claudio bom dia!!!
    amigo depois de tudo pronto uma duvida pekena
    tipo como eu mudei o bip das teclas para um buzzer fico blz…mas ele fica emitindo um chiado baixinho mas c eu amenta o volume do buzzer o chiado tb aumenta .. ki eu posso fazer para tirar esse chiado?? tanto a capsula piezo quanto o buzzer fica fazendo um chiadinho bem baixo mas faiz… voltei td como vc projeto mas mesmo assim tb faiz o chiado..
    cladio OBRIGADO!!!!

    1. 0

      Olá Fabinhos!
      o ‘chiado’ é em decorrência da multiplexação com o Lcd e seu nivel é atenuado pelo capacitor c5 de 220 nf. Tente aumentar para 470nf e depois para 1uf, até conseguir um ‘valor razoavel’ de ruido. Tirar completo é dificil.
      Claudio

  5. 0

    claudio bom dia
    intaum amigo como vc disse para usar a criatividade eu fiz
    tipo consegui fazer a iluminacao com timer
    soh ki o disparador e fiz no 1 do 555
    usei um resistor 100k ligado no r17 com um bc 548
    ae e funco na boa tipo akela amp ki vc falo do buzzer agora funciono perfeito
    so ki eu tive ki tirar r16 tem algum problema???
    obrigado

    1. 0

      Olá Fabinhos!
      Se tudo está operando a contento, acredito que voce foi feliz na escolha dos componentes. Parabéns pelo esforço e criatividade.
      ‘Se não vai de um jeito, vai de outro’ e assim ‘vamos’.
      Claudio

  6. 0

    claudio bom dia
    intaum fiz sua sujestao mas sem sucesso …
    tipo a sujestao de iluminacao funciona muito bem mas naum passa nd depois do capacitor c3
    tipo esclarece uma coisa pra min tira uma duvida tipo no coletor de q2 tem uma realimentacao q vem de r16
    tipo assim pq no coletor de q2 fica simplesmente parado com a voltagem da realimentacao e quando clico no teclado naum muda nd tah certo isso?? ate a capsula tb naum funcionou direito
    tipo explica pra min como finciona essa parte d q2 claudio obrigado por me ajudar e ainda dar sujestoes

    1. 0

      Olá Fabinhos! Assim que eu tiver um tempo, vou montar o circuito inteiro no protoboard para poder testar na prática, pois na teoria ‘tudo parece funcionar , mas nada funciona’ e na pratica ‘tudo funciona, mas não sabemos explicar porque!’.
      Claudio

  7. 0

    boa noite claudio
    isso fiz um timer comum como vc viu…tipo dae kiria um lugar onde eu possa pegar esse sinal
    e qual componente eu posso usar para naum comprometer o seu projeto
    obrigado

    1. 0

      Olá Fabinhos! Tente montar este circuito aqui , primeiro em protoboard (ou de forma experimental suspensa) e veja se atende seus objetivos.
      Cláudio

  8. 0

    claudio boa tarde intaum amigo fiz um timer de 30 segundos um simplizinho.. funciona soh kiria saber onde posso conectalo pra naum ter problemas e qual peca colocar??? blz.. brigado
    abraco

    1. 0

      Olá Fabinhos! Não sei que circuito você está usando, se é por pulso positivo, ou negativo. Portanto, não tenho como ajuda-lo sem mais informações. Mas se voce for ligar algo neste sentido, suponho que terá que ser junto ao coletor do transistor Q2 (do som).
      Claudio

  9. 0

    claudio blz..
    intaum como eu faco pra colocar mais um estagio de amplificacao (como eu ligo o bc548)??
    claudio outra duvida e a seguinte… tipo esses displays ki vc colloco naum tem iluminacao mas todos ki eu tenho e os ki comprei tem isso mas ae ficaria ligado direto tipo naum tem como faze alguma coisa ki liga a iluminacao quando toco no teclado???
    obrigado!!!!

    1. 0

      Olá Fabinhos!
      Com respeito a iluminação, não dispomos de mais pinos livre no Pic que permita acender/apagar a iluminação. Teria que estudar uma forma criativa para isto, talvez, usando o apito como sinalização deste evento, ou atribuindo mais uma função, por ex. ao pino que liga o rele. Mas, isto exigiria mudança no arquivo asm ou a colocação de componentes discretos, como um ci detetor de frequencia. Com respeito ao esquema,veja aqui 2 sugestões para aumentar o som.
      Claudio

    1. 0

      Olá Fabinhos!
      Se você estive usando aquela capsula do tipo ‘disco’ com certeza sairá um pouco mais baixo. Eu usei aquele modelo usado em campainha de telefones antigos, onde este ‘disco’ é colado na parte traseira de um diafragma, aumentando bastante o volume. O volume do som foi projetado para ser baixo, para não irritar pessoas próximas, servindo somente para saber que foi aceito a digitação. Experimente encostar (colar) este ‘disco’ na árede de uma caixa plastica e veja se aumenta o volume. Senão, poderá usar mais um estágio de amplificação com um transistor extra (bc548) e um pequeno altofalante (do tipo’ radinho de pilha’).
      Cláudio

  10. 0

    claudio boa noite
    amigo depois do sucesso em montar seu projeto jah to fazendo o outrojah ate td pronto
    pekena duvida sei ki e facil di axa o capacitor masi aki onde moro naum tem
    tipo o o capacitor 220nf 50v posso por 220nf 100v
    ou uma dica do ki fazer
    obrigado

    1. 0

      Olá Fabinhos!
      Não teria problema nenhum. Os capacitores de poliester são, geralmente para tensões mais altas como 50,63,100,200,400 e 600 volts. Apenas o preço deles aumenta com a isolação ( e o tamanho também). O que não poderia fazer seria o contrário: o circuito trabalha com 200 volts e você colocar um de 50 volts. Ai, vai romper o isolamento e estourar.
      Claudio

      PS. veja este link

  11. 0

    amigo obrigado pela sua atencao!!!
    sao perguntas bobas q depois de analizado o q vc explicou ..
    sou iniciante
    estou estudando para fazer eng eletronica..hheheh
    e gracas a vc o meu enteresse aumentou!!
    obrigado

  12. 0

    amigo boa noite!!
    oo muito obrigado por sua atencao me explicou muito bem o q era ate me deu opcoes nas explicacoes
    Obrigado
    amigo so mais uma ultima pergunta (sei ki e xato ficar explicando)
    mas eu posso muda o teclado?? tipo posso fazer com botoes comun ou vc tem uma opcao de teclado??
    muito grato e obrigado mais uma vez pela sua atencao
    abraco

    1. 0

      Olá Fabinhos! Voce pode mudar o teclado desde que corresponda com a tabela verdade anexa ao esquema. Voce poderá fazer com chave tactil para circuito impresso, montando numa pequena placa de circuito impresso previamente corroida para as ligações ou usar placa padrão e ligar com fios soldando as ligações. Veja a chave neste link :
      Veja a sugestão de construção do teclado no final do post acima.

    1. 0

      Olá Fabinhos! Este ‘cristal’ serve para se ouvir o ‘bip’ e é uma ‘capsula Piezoeletrica’ do tipo ‘disco’ cujo preço é por volta de R$ 0,50 . Ela é encontrada dentro destas sirenes eletronicas, colada junto ao um diafragma plastico. Também é encontrada em ‘twitters’ (altofalante para agudo) em caixas acusticas. Veja estes links: comprar capsula piezo
      Se desejar, poderá usar um pequeno altofalante de radinho de pilhas em serie com um capacitor de 100 uf/15v no lugar da capsula.
      Claudio
      como funciona

  13. 0

    Olá Fabinhos!
    Primeiramente, obrigado pelo seu comentário. Os ‘x’s são pontos de ligação que devem ser conectados juntos. Eles foram usados par não ficar ‘cruzando’ ligações, o que deixaria mais confuso o esquema.
    Claudio

  14. 1

    ola BOA NOITE!!!!
    gostei muito do seu projeto e gostaria de fazer duas perguntas sobre
    no teclado…o numero 1 o 4 eo 7 esta ligado ao diodo 4148 e uma flexa aponta para um (x) o q significa o (x)
    parabens pelo seu projeto e ficarei muito grato pela resposta
    obrigado

Comments are closed.