Aumentando as portas digitais do Arduino com CI 74HC595

figura 4

Olá galera, hoje iremos falar de um problema bem conhecido e que muita gente não sabe que é bem mais fácil de solucionar do que comprar um Arduino mais caro e com mais I/O, utilizar MUX e DEMUX é bem mais barato que um Arduino mais potente, mas isso também vai depender da complexidade do seu projeto. Bem para saber como isso funciona vou fazer um breve resumo sobre eles e depois mostrar na prática como podemos usa-los em nossos projetos.

Os MUX e DEMUX ou ainda Multiplexadores e Demultiplexadores são sistemas digitais que podem processar informações de diversas formas, funcionando como conversores série/paralelo e vice-versa.

MUX

Um multiplexador ou abreviadamente MUX é um sistema digital que possui diversas entradas diferença onde aparecem informações na forma digital, uma saída de dados e entradas de controle, conforme mostra a figura 1.

Figura 1

FIGURA 1

Os sinais aplicados às entradas de controle determinam qual entrada vai ser conectada à saída, transferindo assim seus sinais. Em outras palavras, com um MUX é possível selecionar qual entrada vai ser conectada a saída, isso simplesmente por meio de comandos lógicos.

Veja então que, quando desejamos que a entrada E2 seja a conectada a saída, transferindo seus sinais, tudo que temos de fazer é levar a entrada de controle C0 e C2 ao nível baixo e a entrada C2 ao nível alto.

DEMUX

Um circuito demultiplexador ou DEMUX tem uma entrada de dados e um determinado número de saídas, além de entradas de controle, conforme mostra o diagrama simplificado da figura 2.

Figura 2

FIGURA 2

Pela aplicação de níveis lógicos apropriados nas entradas de controle podemos transferir o sinal da entrada para uma das saídas.

Portas Digitais

A placa Arduino UNO possui 14 pinos que podem ser configurados como entrada ou saídas digitais conforme a necessidade de seu projeto. Estes pinos são numerados de 0 a 13, conforme destacado na Figura 3.

Figura 3

figura 7

Antes de utilizar cada um desses pinos em sua aplicação, você deve configurá-lo como entrada ou saída digital, conforme a necessidade. Por exemplo, para acionar um LED você deve configurar o pino como saída e para ler uma tecla você deve configurar o pino como entrada.

 

CI 74HC595

Nesse artigo vamos usar o CI 74HC595 por ser um CI barato, fácil de conectar e de operar, pode fazer com que 3 ou mais portas digitais sejam controladas por apenas 3 pinos físicos do Arduino. Aplicações que usam displays LCD, displays de 7 segmentos, matrizes de LEDs, teclados, etc. às vezes chegam a esgotar o número de pinos disponíveis.

Este CI é o que chamamos de registrador de deslocamento, ou shift register. É basicamente um conjunto de deslocadores configurados linearmente de forma que consigamos deslocar uma informação pelo circuito de acordo com os pulsos que o mesmo recebe.

Por ser um registrador de deslocamento, assim como alguns semelhantes ele armazena as informações transferidas serialmente de modo temporário, onde se utilizando de pulsos recebidos, este registrador é carregado bit a bit conforme o nível lógico disponível no pino da entrada serial.

Figura 4

figura 3

Para um melhor entendimento do funcionamento desse CI, vamos ver um exemplo bem simples onde vamos utiliza-lo para controlar LEDs. Segue na Figura 5 o esquemático de ligações do CI com o Arduino UNO .

Figura 5

figura 4

Para enviar os dados, o Arduino precisa enviar um bit junto com um pulso, os bits vão sendo deslocados para a direita e assim sucessivamente até preencher a memória do chip com os dados desejados. Uma vez esses dados armazenados na memória, é enviado um pulso do registrador para transferir esses dados para os pinos, e então os pinos mudam seus estados de acordo com o que está na memória.

Figura 6

figura 5

Segue abaixo o código comentado bem simples para facilitar o entendimento:

Figura 7 – Simulação no Protheus 8

FIGURA 6

Referencias: 

Multiplexadores e Demultiplexadores, Newton C. Braga

Datasheet 74HC595

Expandindo os I/Os do Arduino, Fábio Souza

Aumentando as portas digitais do Arduino com CI 74HC595, Augusto Campos

Sobre Edvan da Silva Oliveira

Graduando em Engenharia da computação, apaixonado por tecnologia.