Início
/
Projetos Arduino
/
Projetos Squids
/
Projeto 57 - Display 7 segmentos com decodificador CD4511 e Arduino
Projeto 57 - Display 7 segmentos com decodificador CD4511 e Arduino
Angelo Luis Ferreira | 20/05/2019
Acessos: 28.581
Básico - Projeto 57
Display 7 segmentos controlado pelo codificador CD4511
Objetivo
Neste projeto vamos mostrar como utilizar um display de leds 7 segmentos controlado pelo circuito integrado CD4511. O projeto irá mostrar números de 0 a 9 a cada segundo. Utilizamos neste projeto um display de 7 segmentos catodo comum.
Definições
1. Para utilizarmos um display anodo comum é necessário acrescentar transistores ou operadores lógicos nas saídas dos pinos do CD4511, que ao meu ver, inviabilizaria a sua aplicação.
2. Antes de iniciar este projeto, recomendo que veja os seguintes tutoriais: Projeto 54 - Usando display 7 segmentos com Arduino e Projeto 55 - Usando display 7 segmentos com Arduino (código otimizado).
CD4541 é um circuito integrado que atua como um decodificador BCD-8421 (Binary-Coded Decimal) para display 7 segmentos. O CD4541 utiliza 4 entradas e 7 saídas que controlam os leds dos segmentos do display.
A vantagem de se usar o decodificador CD4511 é que ele utiliza somente 4 portas digitais do Arduino, tornando o circuito mais simples e deixando mais portas livres para uso de outros componentes como sensores, atuadores, módulos, etc
Decodificadores: Os decodificadores, são circuitos que servem para fazer a conversão entre dois tipos de codificação diferentes. Há muitos códigos utilizados na eletrônica digital, e entre eles podemos destacar: BCD-8421 código Gray, código Jonhson, código ASCII e uma outra infinidade de códigos. Portanto utilizamos o CD4511 para converter um número binário em uma representação decimal.
Código BCD 8421 (de Binary-coded decimal 8421) é um sistema de codificação de números decimais em binários de quatro bits. Os valores 8421 são respectivamente os valores de 2 elevado ao valor de sua posição (3,2,1,0). Este código assume apenas 10 dígitos, variando de 0 a 9.
Números binários: Na eletrônica digital o sistema de numeração binário é muito utilizado no lugar do sistema decimal. Isto ocorre devido aos circuitos digitais se basearem em níveis lógicos que são diferenciados pelo nível de tensão que tem em um pino. Níveis lógicos podem ser definidos com "0" e "1", TRUE ou FALSE e ainda HIGH e LOW.
Os níveis lógicos acima não indicam o nível de tensão que tem no pino e sim, o modo como o circuito compreende a tensão que esta sendo aplicada. Por exemplo, o nível lógico 0 para o Arduino é 0 Volts, mas o nível lógico 1 é 5 Volts no pino. A voltagem deste níveis lógicos depende da tecnologia (TTL, CMOS, RTL, DTL) e do circuito que esta sendo usado.
Obs.: Não se preocupe agora com os termo decodificadores, BCD 8421 ou CMOS, pois eles serão mais aprofundados futuramente em projetos de eletrônica mais avançados.
Display de 7 segmentos: é um componente eletrônico utilizado para apresentar informações visuais. Possui apenas 1 dígito, formado por 7 segmentos de leds acionados de forma independente mais o led do ponto que fica no canto inferior direito do display.
Desta forma é possível formar caracteres de 0 a 9, hexadecimais de A a F, e algumas letras do alfabeto latino. O display e formado pelo arranjo de LEDs (diodos emissores de luz) encapsulados em um invólucro apropriado, controlados individualmente, que podem estar acesos ou apagador, formando assim o caractere desejado. É possível encontrar no mercado, displays de catodo comum e de anodo comum.
Aplicação
Para fins didáticos e projetos com relógios digitais e equipamentos com contadores.
Componentes necessários
Referência
|
Componente
|
Quantidade
|
Imagem
|
Observação
|
Protoboard |
Protoboard 830 pontos |
1 |
|
No mínimo utilizar protoboard com 830 pontos
|
Jumpers |
Kit cabos ligação macho / macho |
1 |
|
|
CD 4511 |
CI CD4511 |
1 |
|
Utilizamos o CD4511BE da Texas Instruments
(datasheet)
|
Display de 7 segmento |
Display de 7 segmentos (catodo comum) |
1 |
|
Somente utilizar display catodo comum com CD4511.
O display poderá ser de qualquer cor.
(datasheet)
|
Resistor |
Resistor |
1 |
|
1 Resistor de 150Ω ou superior
|
Push Button |
Push button 6X6X5mm |
1 |
|
|
Arduino UNO R3 |
Arduino UNO |
1 |
|
Você poderá utilizar uma placa Arduino UNO original ou similar
|
Montagem do Circuito
Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.
Montagem com display 7 segmentos (catodo comum) - Simulação
Atenção
1. Como já mencionamos acima, devemos utilizar o CD4511 preferencialmente com um display de 7 segmentos catodo comum. Esta informação você poderá obter no momento da compra do componente ou através da datasheet do mesmo.
2. Se você não possui a datasheet e não sabe se o display é catodo comum ou anodo comum, veja a seguir como identificar um display de 7 segmentos:
2.1. Conheça a disposição dos pinos do display:
2.2. Conecte o pino 8 (ou o pino 3) do display de 7 em uma fonte de 3,3V ou 5V (colocar um resistor de 150 ohms ou superior em série) e o pino 5 ao terra (por exemplo, o GND do Arduino). Veja a montagem abaixo:
2.3. Se tivermos um display de 7 segmentos anodo comum o led do ponto, como mostra a figura acima, se acenderá.
2.4. Se tivermos um display de 7 segmentos catodo comum o led não acenderá (lembre-se de que, em um led, a corrente flui em um única direção, ou seja, o led possui polaridade).
3. Agora que já foi identificado o componente display catodo comum, vamos entender um pouquinho como funciona o display de 7 segmentos.
3.1. Como já dissemos, o display de 7 segmentos é formado por leds dos 7 segmentos e do ponto. De acordo com a imagem abaixo, observe que os pinos 3 e 8 são referentes à conexão do display com o Vcc (5V) ou (3,3V) do Arduino para display anodo comum e com o GND do Arduino para display catodo comum. Já os demais pinos são referentes aos leds dos segmentos A, B, C, D, E, F, G e DP (ponto):
Portanto, o pino 1 controla o segmento E do display, o pino 2 o segmento D e assim por diante. Desta forma se quisermos mostrar o número 1, por exemplo, deveremos ligar apenas os segmentos B e C. Portanto, a combinação de de 0's e 1's na entrada do display representam os número e letras visualizados. Veja abaixo a combinação dos bits que formarão os decimais:
Agora, veja a combinação dos bits que formarão as letras:
3.2. Para ligarmos os leds do display catodo comum, precisaremos conectar os pinos 3 ou o 8 na porta GND do Arduino:
Atenção: A ligação entre o display e o GND do Arduino deve ser precedida de um resistor para evitar danos aos leds do componente.
4. Para calcular o valor do resistor necessário para o nosso componente vamos utilizar a lei de Ohm, sendo:
4.1. Dados do display do nosso exemplo (valores retirados da datasheet do componente utilizado):
- Tensão direta: 2,2 V (p/ segmento)
- Corrente máxima: 30 mA (p/ segmento)
4.2. Desta forma, utilizando-se a tensão de 5,0V do Arduino, teremos:
R = (5,0V - 2,2V) / 0,03A => R = 93,33 Ω => Portanto, por segurança, utilizaremos um resistor de no mínimo 150 Ω.
4.3 . Se você não tiver os dados do componente, utilize um resistor maior que 150 Ω. Lembre-se, quanto maior o valor do resistor menor será a intensidade do brilho dos leds do display.
Atenção: Para evitar danos no componente, não utilize resistores menores que 150 Ω. Para saber mais como calcular o resistor, leia Teste 02 - Leds ligados em série e em paralelo.
5. Agora vamos definir a montagem mais importante do projeto que é a conexão do decodificador CD4511. Lembre-se, o CD4511 irá converter números binários para números decimais (números) ou hexadecimais (números e letras).
5.1. Primeiro devemos prestar a atenção como o componente deverá ser conectado no protoboard em relação ao Arduino:
5.2. Lembre-se, o componente lógico CD4511 irá converter números binários para números decimais (números) ou hexadecimais (números e letras). Veja como fica esta conversão na "tabela verdade" abaixo:
5.3. Para fazermos as conexões precisamos conhecer a disposição dos pinos de entrada (inputs) e saída (outputs) do CD4511:
Obs.: Observe que os pinos de entrada 1,2,6 e 7 (BCDA) vão conectados na saída do Arduino e os pinos de 9 a 15 vão conectados no display 7 segmentos. No nosso projeto vamos conectar os pinos 3, 4 e 16 no VCC (+5V) e o pino 8 no GND do Arduino.
5.4. De acordo com as informações acima, definimos no nosso projeto as conexões do decodificador CD4511 com o Arduino e com o display 7 segmentos catodo comum, sendo:
Conexão do CD4511 com o Arduino:
CD4511 |
CD4511 (BCD inputs)
|
ARDUINO |
Pino 1 |
B |
5 |
Pino 2 |
C |
6 |
Pino 6 |
C |
7 |
Pino 7 |
A |
4 |
Pinos 3, 4 e 16 |
- |
+5V (Vcc) |
Pinos 5 e 8 |
- |
GND (-) |
Conexão do CD4511 com o display 7 segmentos catodo comum
CD4511 |
DISPLAY CATODO COMUM
|
SEGMENTOS |
Pino 9 |
Pino 1 |
E |
Pino 10 |
Pino 2 |
D |
Pino 11 |
Pino 4 |
C |
Pino 12 |
Pino 6 |
B |
Pino 13 |
Pino 7 |
A |
Pino 14 |
Pino 10 |
G |
Pino 15 |
Pino 9 |
F |
6) Veja abaixo como realizamos a montagem do nosso projeto utilizando um protoboard. Observe que utilizamos um display catodo comum e ligamos o pino 8 no GND do Arduino.
Sketch do projeto
1. Faça o dowload e abra o arquivo projeto57.ino no IDE do Arduino: DOWNLOAD - projeto57.ino
Ou se preferir, copie e cole o código abaixo no IDE do Arduino:
/*******************************************************************************
*
* Projeto 57: Display 7 segmentos com CI 4511 - Arduino
* http://squids.com.br/arduino
*
*******************************************************************************/
const int A = 4; // Primeiramente setamos os 4 pinos do CI 4511
const int B = 5;
const int C = 6;
const int D = 7;
void setup(){
pinMode(A, OUTPUT); // seta todos as portas que estão os leds do display como saída
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
}
void loop(){
digitalWrite(A, 0); //acende os leds que representam o número 0
digitalWrite(B, 0);
digitalWrite(C, 0);
digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 1
digitalWrite(B, 0);
digitalWrite(C, 0);
digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 2
digitalWrite(B, 1);
digitalWrite(C, 0);
digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 3
digitalWrite(B, 1);
digitalWrite(C, 0);
digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 4
digitalWrite(B, 0);
digitalWrite(C, 1);
digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 5
digitalWrite(B, 0);
digitalWrite(C, 1);
digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 6
digitalWrite(B, 1);
digitalWrite(C, 1);
digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 7
digitalWrite(B, 1);
digitalWrite(C, 1);
digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 8
digitalWrite(B, 0);
digitalWrite(C, 0);
digitalWrite(D, 1);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 9
digitalWrite(B, 0);
digitalWrite(C, 0);
digitalWrite(D, 1);
delay(1000);
digitalWrite(A, 1); // limpa a tela (todos segmentos desligados
digitalWrite(B, 1);
digitalWrite(C, 1);
digitalWrite(D, 1);
delay(1000);
}
ATENÇÃO: Se o display não acender verifique todas as conexões dos segmentos. Verifique se o display é catodo comum ou anodo comum
Vídeo
Simulação
1. Clique no botão Iniciar Simulação:
Como o projeto deve funcionar
1. Ao iniciar o programa, o display irá mostrar o número zero.
2. Após 1 segundo, o display irá mostrar o número um, e assim sucessivamente, mostrando os números de 0 a 9. Este processo se repetirá indefinidamente até que se desligue o Arduino de uma fonte de energia.
Desafios
Com base neste projeto, resolva o seguinte desafio: Desafio 43
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
Comentários