ArduinoEletronica

Display 7 segmentos com 74HC595

Display 7 segmentos
Display 7 segmentos
Display 7 segmentos

Em um post remoto vimos como sequenciar o acendimento de 8 LEDs com o driver 74HC595, através de um código bastante simples e prático que escrevi para acendimento sequencial. Dessa vez vamos por em prática esse controlador para exibir números em um display 7 segmentos, de forma a utilizar apenas os pinos 8,9 e 10 do Arduino. Sobre multiplexação, recomendo esse meu post bem mais atual.

 

74HC595 Wiring | Display 7 segmentos
74HC595 Wiring | Display 7 segmentos

Na imagem acima, está bem clara a conexão. Vamos relembrar que o acendimento do primeiro LED se dá pelo segundo pino da direita, os demais sequencialmente a partir do pino 1 da esquerda até o pino 7, completando assim os 8 LEDs possíveis por controlador.

No pino 8 da esquerda e no pino 4 da direita estão os aterramentos. No pino 1 e 7 da direita liga-se os +5v. No 3, 5 e 6 da direita ligam-se os pinos 8,9 e 10, sendo SER, RCLK e SRCKL respectivamente:

74HC595 | Display 7 segmentos
74HC595 | Display 7 segmentos

 

O código que escrevi como exemplo foi esse:

 

Para esse código o resultado é este:

Para controlarmos um display de 7 segmentos é bastante simples, baseando-se no código de exemplo acima. Repare que a variável regis (que é um array de inteiros) é a matriz de LEDs, onde cada posição do array representa um LED, portanto, basta acender o conjunto correspondente ao número a ser formado. Mas ainda como prova de conceito, vamos acender o LED anterior ou posterior ao posicional da variável val. Para isso na função changeValues adicione a seguinte linha abaixo de regis[val] = 1:

 

E na primeira linha adicione:

 

Troque o delay para 1000ms para que seja perceptível o acendimento em pares. Abaixo, o resultado dessa mudança:

Agora vamos ao próximo passo…

Display 7 segmentos

Existem 2 tipos de display  7 seguimentos; o de Anodo comum e o de Catodo comum. Nesse exemplo estou utilizando um display de Catodo comum. A imagem abaixo deixa claro sua conexão:

Diferença entre Cathodo e Anodo comum |  display 7 segmentos
Diferença entre Cathodo e Anodo comum | display 7 segmentos

Se chama “catodo comum” porque o positivo entra em cada um dos segmentos e o aterramento é comum a todos eles, sendo o aterramento o pino central de ambos os lados do display.

O que precisamos fazer aqui é basicamente ordenar a sequencia de ligação dos LEDs de forma a corresponder à sequência do esquemático do display. Posteriormente, criaremos os arrays de inteiros cada qual correspondendo ao número que deve aparecer no display. Só um alerta: J A M A I S ligue o LED desse display sem resistor, porque vai queimar na hora, não é como um LED comum que suporta um tempo de carga direta.
Os resistores utilizados serão os mesmos dos LEDs exemplificados nos videos acima, o que o deixará um bocado luminoso.

No display que estamos utilizando tem um ponto no canto inferior direito. O primeiro pino da base, logo abaixo do ponto lhe é correspondente.

Pinos 2, 4 e 5 da base correspondem a C,D e E respectivamente. Os pinos 1, 2, 4 e 5 correspondem a G,F,A,B respectivamente. A má notícia é que só tenho um display catodo comum e adivinha? Queimei o segmento A acendendo o teste do lado errado do resistor, ou seja, minha recomendação acima: NÃO ligue +5v diretamente aos pinos do display senão já era.

Matrizes para números
A primeira coisa a fazer é sempre limprar os registros, de forma a apagar todos os seguimentos. Para isso, utilizei a função clear() do código de exemplo anterior. Mas a meneira mais limpa é utilizar o pino do 74HC595 que tem justamente essa funcionalidade. Vamos criar a matriz do número 1. Para tal é necessário acender o segmento B e C, ou pino 5 do lado superior e pino 5 do lado inferior. Como ligamos o driver na sequencia correta, basta ativar o pino 2 e 3 do driver:

Para o número 2, os segmentos A,B,G,E e D devem ser ligados. Considerando que queimei o segmento A, a exibição aqui já parecerá falha, mas a matriz deve ficar assim:

E assim por diante. O código completo fica assim:

E a exibição dos números fica assim:

Nesse post discorro sobre multiplexação, com display de 4 digitos de 7 segmentos. Recomendo a leitura.

Se gostou, não deixe de compartilhar; dê seu like no video e inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Prefere seguir-nos pelo facebook? Basta curtir aqui.

Prefere twitter? @DobitAoByte.

Próximo post a caminho!

4 comments
  1. Eletrônica Digital – Display de 7 segmentos com 74HC595 « Djames Suhanko – Linux e Programação

    […] Nesse post descrevo a utilização do 74HC595 com a utilização de 3 pinos digitais do Arduino para 8 saídas vcc utilizando um display de 7 segmentos, catodo comum. Mas na verdade há uma novidade, que é a migração do blog http://suhanko.com para http://www.dobitaobyte.com.br, ou seja, atualizem seus bookmarks, por favor. Continuarei postando o resumo dos novos artigos, mas todos devem ser publicados a partir de agora nesse novo domínio. O link para o post é este, Do bit Ao Byte. […]

  2. Display 7 segmentos com 74HC595 e Arduino | Linux Ajuda

    […] “Escrevi esse post sobre esse controlador de LEDs com Arduino pela capacidade de multiplexar, um recurso muito interessante para economia de recursos. Nesta primeira parte do post exemplifico um acendimento sequencial de LEDs e o controle de um display de 7 seguimentos, como os utilizados em temporizadores de bombas para exibir digitos de 0 a 9, para posteriormente montarmos um display para o sensor de temperatura LM35 multiplexando 4 digitos.” [referência: dobitaobyte.com.br] […]

  3. Construindo um Pinball – Parte I ← Do Bit Ao Byte

    […] Neste outro post vimos como exibir números em um display de 7 segmentos, porém agora aumentará um pouco a complexidade, uma vez que deveremos multiplexar para distribuir os digitos no display apresentado. Além do mais, teremos também o display multiplicador que vai de 01 a 99, formado por um par de displays de 1 digito. […]

Comments are closed.

%d blogueiros gostam disto: