Font Size

Sejam bem-vindos a mais um post do Blog AutoCore Robótica. Hoje, aprenderemos os conceitos do registrador de deslocamento 74HC595 e uma aplicação prática bem criativa. Leu o título do post e ficou curioso ? Afinal, não é comum usar um simples circuito integrado como este para tal finalidade, não é mesmo ? Se você é um dos que acreditava que tal aplicação somente fosse possível com uso de Arduino, lhe convido a sentar na cadeira e ver até  onde a criatividade pode ir. Então, estão dispostos a aprender mais de eletrônica ? Se a resposta foi sim, vamos la. Se a resposta foi não, permita-me lhe mostrar que pode ser mais fácil do que você imagina.

Para início de conversa, o único circuito integrado que iremos utilizar será o registrador de deslocamento 74HC595. Este, por sua vez, trabalhará em conjunto com alguns outros componentes simples e de uso comum na eletrônica, como transistores e diodos. Assim, criaremos uma codificação  segura para a aplicação final. Você poderá escolher a quantidade de dígitos que irá utilizar na senha, de forma que quanto mais dígitos você utilizar, mais segura será sua senha.

Logo, vamos aprender um pouco sobre o 74HC595:

Registrador de deslocamento 74HC595

Entendendo um pouco…

Nesta postagem você verá um artigo explicando o seu funcionamento mais detalhado. No artigo de hoje, darei uma explicação mais simples. Afinal, temos trabalho pela frente (rsrs).

O 74HC595 é um dispositivo CMOS com alta velocidade de resposta. Nele há um registrador de deslocamento de 8 bits que armazena os dados na entrada serial (porta DS; terminal 14) no momento em que a porta de clock (SH-CP; terminal 11) muda de nível baixo (Low) para nível alto (HIGH). Os dados são armazenados em sequência, tendo como base a contagem de pulsos de clock. A medida com que a contagem de pulsos de clock aumenta, os dados são deslocados para outras portas. Quando a porta de dados (DS) recebe um pulso de nível alto, de acordo com que pulsos de clock são enviados à porta de clock, este pulso de nível alto se desloca da porta Q0 até Q1, e logo após para Q2. E assim por diante, até chegar a Q7.

Ao final disto, foram necessários 8 pulsos de clock para deslocar o bit de nivel alto de Q0 até Q7. Mas, para que as saídas mudem de estado de acordo com que este bit vai se deslocando pelos registradores internos, é necessário fazer o acionamento da porta ST-CP (terminal 12) que funciona como um “botão atualizar”, na qual os valores dos bits nos registradores é exposto nas saídas. Esta é uma explicação mais simplificada para que você possa entender de modo mais fácil. Mas, nada melhor do que os bons e velhos gifs para mostrar melhor como tudo funciona. Para isto, preparei alguns para que você possa ver o processo.

Exemplo 1

Gif ilustrando a logica de funcionamento do 74hc595
Gif 1 – Princípios básico do 74HC595.

Os quadrados na figura servem para ilustrar o estado das entradas, simulando quando os botões são pressionados ou liberados. Observe que quando a porta 11 (clock) vai de nível baixo para nível alto (quando o quadrado ilustrativo muda de azul para vermelho), a porta 14 (dados) está em nível alto (quadrado vermelho) . Assim, o bit salvo nesse momento é o bit de nível alto.

No momento em que o terceiro botão de baixo é pressionado, levando a porta 12 (LATCH) para nível alto (quadrado na cor vermelha) o bit de nível alto que tinha sido “salvo” é exposto na saída Q0 (porta 15).  Sendo assim, para deslocar esse bit de nível alto para a porta Q1 é necessário pressionar o primeiro botão (Clock) para acrescentar a contagem de clock em +1 e depois pressionar terceiro botão (latch) para “expor” onde o bit de nível alto se encontra. Veja mais um gif para você ter certeza do que estamos falando:

Exemplo 2

Comportamento das portas do 74hc595 de acordo com que são acionadas
Gif 2 – Outro exemplo de como as saídas mudam de acordo com a quantidade de bits enviados.

Verifique que quando a porta de clock muda de nível baixo para nível alto, a porta de dados está em nível alto. Neste momento, o primeiro bit salvo é um bit de nível alto. Logo após, uma nova transição de nível baixo para nível alto ocorre na porta de clock, mas, desta vez, a porta de dados está em nível baixo. Sendo assim, o segundo bit salvo é um bit de nível baixo. Em seguida, a porta de clock muda de nível baixo para nível alto pela terceira vez e a porta de dados se encontra em nível alto nesse momento Então, o terceiro bit salvo é um bit de nível alto.

Por final, a porta LATCH vai para nível alto e expõe os valores desse bits nas saídas: o primeiro bit salvo (de nível alto) está na porta Q2. O segundo bit salvo (de nível baixo) está na porta Q1 e o terceiro bit salvo (de nível alto) está na porta Q0. Fazendo esse procedimento 8 vezes, o primeiro bit enviado será mostrado na porta Q7 e o último bit enviado será mostrado na porta Q0. Veja um teste prático na protoboard:

 

Então, entendeu a lógica ?

Logo, entendido o princípio básico de funcionamento do nosso circuito integrado, vamos para as bases do nosso projeto.

Princípios básicos da codificação com 74HC595

Tendo em vista o que foi mostrado nas ilustrações anteriores, o gif a seguir lhe mostra como produzir um padrão alternado entre nível alto e nível baixo nas saídas do 74HC595.

Imagem mostrando padrão de estados High e Low nas saídas do 74HC595
Gif 3 – Padrão alternado entre High e Low nas saídas do 74HC595.

O primeiro bit salvo é mostrado no “Dígito 1” (nível alto) e o último bit salvo foi mostrado em “dígito 8” (nível baixo). Mas, você pôde perceber que é necessário pressionar vários botões diversas vezes, o que torna algo fora de questão. Por conta disto, o circuito foi modificado com o intuito de diminuir a quantidade de clicks e tornar tudo mais prático.

Gif ilustrando o funcionamento do circuito anterior com modificações.
Gif 4 – Circuito modificado.

Observe que é necessário apertar apenas um botão para um bit de nível alto, ao invés de pressionar o botão de data e depois de clock para fazer isto. Assim, o acréscimo de apenas 1 diodo facilitou a inserção dos dados.

No gif 4:

  • O botão de cima, quando pressionado, leva apenas a porta de clock a níveis alto, deixando a porta de dados em nível baixo, salvando um bit de nível baixo.
  • Por sua vez, o botão do meio, quando pressionado, leva as portas clock e de dados a nível alto, salvando um bit de nível alto.
  • O último botão é o botão de latch.

Veja mais um vídeo para visualizar na prática:

Circuito de “criptografia” para a central de segurança

A seguir mostrarei um circuito complementar, formado por transistores, diodos e resistores, que formarão o nosso circuito de segurança. Esse, circuito, por sua vez, é responsável por assegurar que um determinado padrão de estados lógicos nas saídas do 74HC595 seja assumido, para que uma carga seja acionada e um portão ou porta seja aberto quando esse padrão correto é inserido no nosso circuito integrado. Veja o esquema a seguir.

Ilustração do circuito responsavel pela criptografia
Figura 1 – Circuito de criptografia.

O arranjo de diodos e resistores fazem com que apenas um padrão de níveis alto e baixo seja aceito para a liberação da saída relé. Esse arranjo é conectado ao 74HC595 para fazer a leitura das saídas e acionar a etapa relé quando o padrão estiver conforme a imagem. Como são 8 portas utilizadas e cada uma pode assumir dois estados ( nível alto e baixo), a quantidade de combinações nas saídas é: 2^8 = 256 possibilidades. Ou seja, alguém que saiba a quantidade de dígitos a serem digitados e não souber o padrão a ser inserido, teria 0,4% de chance de acertar. Ou seja, uma ótima margem de segurança.

Mas, é lógico que não podemos usar apenas dois dígitos para uma senha. Afinal, qualquer pessoa que observe você a digitando conseguiria memorizá-la facilmente. Deste modo, você poderá usar teclados numéricos como um Módulo Teclado 2×4 8 Teclas ou teclado de membrana para a interface com o circuito. Faça um entrelaçamento de numéros, conectando 5 botões ao terminal do circuito que produz bits de nível alto e 5 botões ao terminal que produz bits de nível baixo. Para o travamento de portas, sugiro o uso desta trava solenoide 12v que pode ser acionada pelo módulo relé 5v.

Então, acredito que já esteja mais que na hora de mostrar o circuito final do projeto.

Circuito final

 Componentes:

74HC595
Botões de toque
Diodos 1N4148
Resistores
Transistores BC337
Capacitores eletrolíticos
Módulo relé

 

Imagem exibindo o circuito esquemático final do projeto
Figura 2 – Circuito final do projeto.

Os botões 0,2,4,6 e 8 salvam um bit de nível alto dos registradores internos quando pressionados e os botões de número ímpar salvam bits de nível baixo nos registradores. Desta forma, você pode digitar qualquer sequência numérica que produza o padrão de saídas representado na figura 1. O primeiro dígito deverá salvar um bit de nível alto, o segundo dígito deverá salvar um bit de nível baixo e assim diante, alternadamente até inserir os 8 dígitos da senha. Ao final, aperta-se o botão “Enter” (LATCH) da figura 2 para que o relé seja acionado, caso a senha inserida gere o padrão de codificação correto.

Caso mais de uma pessoa tenha acesso, você poderá criar senhas diferentes uma para cada pessoa, não deixando de ser algo seguro, possuindo apenas 0,4% de chance de alguém acertar uma das possíveis senhas ao acaso. Você também poderá usar uma senha de menos dígitos, caso queira. Para isto, remova alguns diodos do circuito. Por exemplo: removendo os diodos D9 e D8 você precisará de uma senha de apenas 7 dígitos. Mas, o nível de segurança irá diminuir com um número menor de dígitos, ficando a seu critério.

No vídeo a seguir mostro um exemplo de senha de 5 dígitos. Perceba o acionamento do relé no momento em que as saídas assumem os estados representados nas cores  ao lado dos leds:

Considerações finais

Hoje você aprendeu que nem tudo se resume a microcontroladores, de modo que pequenos componentes são de grande serventia para algumas finalidades e, assim, reduzir a complexidade e custo do mesmo. Muitas vezes torna possível a construção de protótipos para pessoas que ainda não sabem programar. Para isso, não deve faltar criatividade e um pouco de dedicação. Então, o que achou do conteúdo do post ? Deixe nos comentários !

5.00 avg. rating (95% score) - 1 vote