Projeto 54 - Usando display 7 segmentos com Arduino

Básico - Projeto 54

Display 7 segmentos com Arduino

Objetivo

Neste projeto vamos mostrar como utilizar um display de leds de 7 segmentos. O projeto irá mostrar números de 0 a 9 a cada 2 segundos. Utilizamos neste projeto um display de 7 segmentos catodo comum. No entanto, é possível utilizar o projeto para um display de 7 segmentos anodo comum apenas fazendo algumas adaptações que mostraremos nesse tutorial.

Leia também: Projeto 55 - Usando display 7 segmentos com Arduino (código otimizado)

Definições

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, sendo eles:

Displays de Catodo comum

Em um display de Catodo Comum os catodos de todos os LEDs (segmentos) são conectados juntos ao terra. Ele é acionado por nível lógico alto em cada segmento, ou seja, HIGH ou 1.

Veja abaixo a disposição dos pinos no display:

Displays de Anodo comum

Em um display de Anodo comum os anodos de todos os segmentos estão conectados juntos em Vcc, sendo acionados por nível lógico baixo em cada segmento, ou seja, LOW ou 0.

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 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 830 pontos

Jumpers Kit cabos ligação macho / macho 1  
Display de 7 segmento Display de 7 segmentos (catodo comum) 1 Display de 7 Segmentos

Você poderá utilizar no projeto um display de 7 segmentos anodo comum fazendo apenas algumas alterações (mostraremos no tutorial)

O display poderá ser de qualquer cor.

(datasheet)

Resistor Resistor 1

1 Resistor de 150Ω ou superior

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.

a) Montagem com display 7 segmentos (catodo comum) - Simulação

B) Montagem com display 7 segmentos (anodo comum)


Atenção

1. Para a montagem do circuito é necessário saber se o display de 7 segmentos utilizado é catodo comum ou anodo 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 3 (ou o pino 8) 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á definimos os componentes, vamos entender um pouquinho como funciona o display de 7 segmentos.

3.1. Como já dissemos anteriormente, 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.

 3.2. Como dissemos antes também, para ligarmos os leds (segmentos e o ponto) precisaremos:

Display Catodo Comum: Acionar por nível lógico alto em cada segmento, ou seja, HIGH ou 1. Os pinos 3 ou o 8 deverão estar conectados no 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.

Display Anodo Comum:  Acionar por nível lógico baixo em cada segmento, ou seja, LOW ou 0. Os pinos 3 ou o 8 deverão estar conectados no Vcc (5V) do Arduino.

Atenção: A ligação entre o display e o Vcc do Arduino deve ser precedida de um resistor para evitar danos aos leds do componente.

4. Sabendo as características do display de 7 segmentos, podemos calcular o valor da resistência necessária para o nosso componente através da 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) Veja abaixo como realizamos a montagem do nosso projeto utilizando um protoboard. Observe que utilizamos um display catodo comum e ligamos o pino 3 no GND do Arduino.

Sketch do projeto

1. Faça o dowload e abra o arquivo projeto54.ino no IDE do Arduino: DOWNLOAD - projeto54.ino

Obs. 1: O código apresentado foi desenvolvido para um display catodo comum. Para alterar o projeto para um display anodo comum, altere as linhas 20 e 21,  colocando as duas barras de comentários na linha 20 e retirando as 2 barras da linha 21. Também não esqueça de alterar o circuito, conectando o pino 3 do display no Vcc (5V) do Arduino.

Ou se preferir, copie e cole o código abaixo no IDE do Arduino:

/*******************************************************************************
*
*    Projeto 54: Configurando um Display de 7 segmentos
*                 http://squids.com.br/arduino                
*
*******************************************************************************/
const int A = 7; // Primeiramente setamos os 7 pinos dos segmentos
const int B = 6;
const int C = 4;
const int D = 2;
const int E = 1;
const int F = 9;
const int G = 10;

const int PT = 5; // setemaos o ponto do display

boolean ligaPonto = false;

// Variaveis liga e desliga p/ display 7 segmentos
const int l = 1, d = 0; // Display 7 segmentos (catodo comum)
//const int l = 0, d = 1; // Display 7 segmentos (anodo comum)

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);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(PT, OUTPUT);
}

void loop(){
digitalWrite(A, l); //acende os leds que representam o número 0
digitalWrite(B, l);
digitalWrite(C, l);
digitalWrite(D, l);
digitalWrite(E, l);
digitalWrite(F, l);
digitalWrite(G, d);
blinkDP(); // Função para piscar o ponto 2 vezes

digitalWrite(A, d); //acende os leds que representam o número 1
digitalWrite(B, l);
digitalWrite(C, l);
digitalWrite(D, d);
digitalWrite(E, d);
digitalWrite(F, d);
digitalWrite(G, d);
blinkDP();

digitalWrite(A, l); //acende os leds que representam o número 2
digitalWrite(B, l);
digitalWrite(C, d);
digitalWrite(D, l);
digitalWrite(E, l);
digitalWrite(F, d);
digitalWrite(G, l);
blinkDP();

digitalWrite(A, l); //acende os leds que representam o número 3
digitalWrite(B, l);
digitalWrite(C, l);
digitalWrite(D, l);
digitalWrite(E, d);
digitalWrite(F, d);
digitalWrite(G, l);
blinkDP();

digitalWrite(A, d); //acende os leds que representam o número 4
digitalWrite(B, l);
digitalWrite(C, l);
digitalWrite(D, d);
digitalWrite(E, d);
digitalWrite(F, l);
digitalWrite(G, l);
blinkDP();

digitalWrite(A, l); //acende os leds que representam o número 5
digitalWrite(B, d);
digitalWrite(C, l);
digitalWrite(D, l);
digitalWrite(E, d);
digitalWrite(F, l);
digitalWrite(G, l);
blinkDP();

digitalWrite(A, d); //acende os leds que representam o número 6
digitalWrite(B, d);
digitalWrite(C, l);
digitalWrite(D, l);
digitalWrite(E, l);
digitalWrite(F, l);
digitalWrite(G, l);
blinkDP();

digitalWrite(A, l); //acende os leds que representam o número 7
digitalWrite(B, l);
digitalWrite(C, l);
digitalWrite(D, d);
digitalWrite(E, d);
digitalWrite(F, d);
digitalWrite(G, d);
blinkDP();

digitalWrite(A, l); //acende os leds que representam o número 8
digitalWrite(B, l);
digitalWrite(C, l);
digitalWrite(D, l);
digitalWrite(E, l);
digitalWrite(F, l);
digitalWrite(G, l);
blinkDP();

digitalWrite(A, l); //acende os leds que representam o número 9
digitalWrite(B, l);
digitalWrite(C, l);
digitalWrite(D, d);
digitalWrite(E, d);
digitalWrite(F, l);
digitalWrite(G, l);
blinkDP();

}

void blinkDP() { // Faz o DP piscar 2 vezes.

  for (int i=0; i<=3; i++) {
    if (ligaPonto)  {
      digitalWrite(PT, l);
    }   else  {
      digitalWrite(PT, d);
    }
    ligaPonto = !ligaPonto;
    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

Como o projeto deve funcionar

1. Ao iniciar o programa, o display irá mostrar o número zero.

2. Após 1 segundo, o ponto no canto inferior do display irá piscar 2 vezes e 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 40

O anúncio abaixo ajuda a manter o Squids Arduino funcionando

Comentários

×

Infomações do site / SEO








×

Adicionar Marcadores