Arduino – Utilizando o Módulo Expansor de Saídas Digitais

Arduino – Utilizando o Módulo Expansor de Saídas Digitais

Nesta prática você vai aprender a utilizar o Módulo Expansor de Saídas Digitais. Com este módulo você pode ampliar em uma quantidade significativa o número de saídas digitais em seus projetos com Arduino, NodeMCU ESP8266, Wemos D1 R2 e outras plataformas microcontroladas.

img01_arduino_utilizando_o_modulo_expansor_de_saidas_digitais

Diversos projetos utilizando plataformas microcontroladas exigem mais saídas digitais do que a placa pode oferecer. Sequenciais de LEDs, Display LCD, Display de 7 segmentos, Cubo de LED, Matriz de LED e o controle de dezenas de relés, por exemplo, tendem a esgotar as saídas digitais disponíveis na plataforma microcontrolada.

Para resolver este tipo de problema, basta utilizar circuitos integrados do tipo shift register. O CI mais conhecido e que resolve este tipo de problema é o 74HC595.

A conexão do 74HC595 com a plataforma microcontrolada exige poucas ligações e o CI deverá ser instalado em uma protoboard para que os testes sejam realizados. Contudo, para o projeto final, o uso do CI na protoboard pode não ser o melhor caminho, tanto esteticamente quanto em questão de funcionamento, já que algum fio pode se soltar facilmente da protoboard.

Pensando em facilitar a vida do pessoal que costuma utilizar muitas saídas digitais em projetos com plataformas microcontroladas, a MasterWalker Shop desenvolveu o Módulo Expansor de Saídas Digitais. Este módulo utiliza apenas 3 pinos digitais da plataforma microcontrolada e como resultado temos (no mínimo) 8 saídas digitais.

O módulo possui 2 CIs 74HC595, logo, são 16 saídas digitais que ficam inteiramente à disposição. Além disso, o módulo já possui os pinos para conexão de alimentação externa e possui também um pino GND extra para que a comutação com a plataforma microcontrolada possa ser feita de forma simples.

Uma das coisas mais bacanas deste módulo é a possibilidade de ligar vários em série com a finalidade de ter um número maior de saídas digitais. Se o seu projeto precisa de mais 32 saídas digitais, então basta interligar 2 módulos expansores, caso precise de 48 saídas digitais, basta interligar 3 módulos expansores. Independentemente da quantidade de módulos interligados serão necessários apenas 3 fios da plataforma microcontrolada.

Na imagem abaixo temos o Módulo Expansor de Saídas Digitais:

img02_arduino_utilizando_o_modulo_expansor_de_saidas_digitais

A: terminais de entrada do módulo e que são responsáveis pela comunicação com a plataforma microcontrolada. Pinos: DS / ST / SH.

B: terminais de entrada do módulo e que são responsáveis pela alimentação. Há um terminal a mais do GND e que deve ser utilizado para comutar os GNDs em caso de alimentação externa do módulo. Pinos: GND / GND / VCC.

C: terminais da Saída 1. Enumerados de 1 a 8 e que são responsáveis pelo acionamento do dispositivo conectado a cada um destes pinos.

D: terminais da Saída 2. Enumerados de 9 a 16 e que são responsáveis pelo acionamento do dispositivo conectado a cada um destes pinos.

E: terminais da extensão do módulo para ser conectado a outro Módulo Expansor de Saídas Digitais. Pinos: SH / ST / S.

F: terminais da extensão do módulo e que são responsáveis pela alimentação do segundo Módulo Expansor de Saídas Digitais que for interligado. Pinos: VCC / GND.

Vale ressaltar que o módulo expande apenas a quantidade de saídas digitais e não de entradas digitais. Além disso, o consumo de corrente aumenta a cada dispositivo inserido no módulo expansor. O ideal é que se faça os cálculos de consumo para não danificar o módulo e que se use uma fonte externa de 3.3VDC ou 5VDC dependendo da quantidade de saídas conectadas.

A seguir, vamos ligar o Módulo Expansor de Saídas Digitais ao Arduino e efetuar alguns testes.

Para demonstrar o funcionamento do Módulo Expansor de Saídas Digitais utilizei o Arduino Uno, contudo, vou deixar disponível mais abaixo o esquema de ligação e código para o NodeMCU e Wemos D1 R2.

Abaixo está a lista dos itens necessários para esta prática e mais informações sobre cada um deles:

Arduino Uno R3 com Cabo USB A/B
Módulo Expansor de Saídas Digitais
Cabo Jumper Macho-Fêmea
Cabo Jumper Macho-Macho
Protoboard
Chave Táctil (Push Button)
LED Difuso 5MM
Resistor 150R

Caso queira utilizar o NodeMCU ou Wemos D1 R2:

NodeMCU ESP8266
Wemos D1 R2

Abaixo está o esquema de ligação para esta prática:

img03_arduino_utilizando_o_modulo_expansor_de_saidas_digitais

Download do esquema de ligação para NodeMCU / Wemos D1 R2

Note no esquema de ligação acima que para os push buttons não utilizei resistor de pull up na montagem. No código disponível mais abaixo você pode ver que no ‘void setup’ foi definido os pinos dos botões como entradas e foi ativado os resistores internos de pull up do Arduino, dessa forma garantindo que a leitura dos botões não fique flutuando.

Feito o esquema de ligação, será necessário instalar uma biblioteca na IDE do Arduino para em seguida carregar o código.

Se você não sabe como fazer a instalação de bibliotecas na IDE, acesse o link abaixo e em seguida retorne para continuar:

Arduino – Importando bibliotecas para a IDE

Faça o download da biblioteca Shift-Register-74HC595-Arduino-Library-master e em seguida faça a instalação da mesma na IDE do Arduino.

O código para testes está abaixo, basta copiar o mesmo, colar na IDE, salvar e carregar:

Download do Código para NodeMCU / Wemos D1 R2

Após o carregamento do código abra o monitor serial na IDE do Arduino e veja que a informação “TERMINAL 1: 0 / TERMINAL 12: 0” está sendo mostrada. Lembre-se de mudar o baud do monitor serial de 9600 para 115200 caso esteja utilizando o NodeMCU ou Wemos D1 R2.

Pressione algum dos botões e veja que um dos LEDs vai acender e a informação no monitor serial será atualizada:

img04_arduino_utilizando_o_modulo_expansor_de_saidas_digitais

A informação após o “:” será 0 ou 1 de acordo com o estado do LED. Se o LED estiver aceso (botão pressionado) a informação será “1” e caso o LED esteja apagado (botão não pressionado) a informação será “0”. O trecho de código responsável por capturar o estado atual das saídas do módulo expansor é o “uint8_t statusPino1 = sr.get(1); e uint8_t statusPino12 = sr.get(12);”, onde as variáveis armazenam o estado (0 para saída desligada e 1 para saída ligada) que é obtido através da função “sr.get(PINO DO MÓDULO EXPANSOR);”.

Você pode alterar o código para que outras saídas sejam utilizadas pelos LEDs e fazer a conexão dos LEDs nos pinos definidos no código.

No vídeo abaixo você pode ver duas aplicações do Módulo Expansor de Saídas Digitais, sendo uma em um Sequencial de 32 LEDs (foi interligado dois módulos expansores) e outra numa Matriz de LEDs 8X8 (foi utilizado apenas um módulo expansor):

No link abaixo você pode fazer o download do esquema de ligação entre dois módulos expansores. Para três ou mais módulos o esquema de ligação segue o mesmo padrão. Lembrando que na ligação de dois módulos o primeiro terá as saídas identificadas de 1 a 16 e o segundo módulo assumirá as saídas de 17 a 32 e assim sucessivamente para outros módulos interligados.

Download do esquema de ligação para dois módulos

O Módulo Expansor de Saídas Digitais pode ser uma ótima opção em projetos que será necessário o acionamento de um número grande de LEDs, relés ou outras saídas.

Gostou deste tutorial? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 3 comentários para esta postagem
  1. Gerson ferreira da silva às 09:34

    Bom dia, gostaria de saber se você pode me ajudar, comprei duas pacas e quero ligar em 32 led, sendo cubo led. 4×8 tenho um arduino mega. Vlw

    • Euler Oliveira Autor às 08:23

      Olá Gerson.

      No vídeo disponível nesta postagem é mostrado o uso do módulo para controle de 32 LEDs.

      Nesta postagem há todas as informações para que possa desenvolver o código para o seu cubo de LED.

  2. henrique às 19:30

    boa noite… esse modulo conseguimos fazer o acionamento das 16 saidas ao mesmo tempo, ou simultaneamente?