Como usar um display 7 segmentos com o Arduino - MakerHero

Como usar um display 7 segmentos com o Arduino 4

Diversos projetos desenvolvidos no Arduino utilizam displays para trazer a informações de processos que estão sendo realizados. Um dos displays mais utilizados é o display 7 segmentos, o qual você pode utilizar para trazer informações que compõem algumas letras ou números. No post de hoje você vai aprender a como usar um display 7 segmentos com o Arduino! Vamos lá!

Figura 1: Arduino e display 7 segmentos

Para utilizar o display de 7 segmentos com o Arduino você precisará dos seguintes materiais:

 

O que é um display de 7 segmentos?

O display de 7 segmentos é um display de baixo custo com a finalidade de mostrar informações alfanuméricas (binário, octadecimal, decimal ou hexadecimal) para o usuário observar de forma simples o processo interno do dispositivo que o controla.

Figura 2: Display 7 segmentos

Como funciona o display de 7 segmentos?

Basicamente um display de 7 segmentos é compostos de sete segmentos onde cada um deles podem ser controlados individualmente, assim como os LEDs conectados nas portas do Arduino onde são controlados individualmente; uma vez que esses segmentos ligados individualmente forem combinados, eles podem representar números de 0 a 9 ou letras de A a F. Existem alguns tipos de displays de 7 segmentos, porém o mais utilizado é o composto de LEDs (do inglês – light emitting diode  em português diodo emissor de luz). Existem dois tipos de configurações de ligação do display 7 segmentos composto por LEDs, que são, catodo comum e anodo comum.

A configuração catodo comum é a forma de ligação em que todos os catodos dos LEDs são conectados em um único terminal. Já a configuração anodo comum é a forma de ligação em que todos os anodos dos LEDs são conectados em um único terminal.

Como programar um display 7 segmentos com Arduino?

Para programar um display de 7 segmentos não é algo complexo, é como a ligação de LEDs, porém de forma combinada. 

O circuito abaixo funciona da seguinte forma, cada vez que o botão for pressionado será somado +1 no valor do display e quando o valor for acima de 9 o display retornará para 0.

Obs: Se caso manter o botão pressionado o display ficará num loop de 0 a 9 até que o botão seja solto. 

Com todos os componentes em mãos vamos à montagem do circuito e posteriormente a programação que será carregada no Arduino.

Esquemático do circuito de display 7 segmentos com Arduino
Figura 3: Esquemático eletrônico

Tabela de conexão dos terminais

ARDUINO DISPLAY 7 SEGMENTOS SEGMENTOS
Pino 2 Pino 7 A
Pino 3 Pino 6 B
Pino 4 Pino 4 C
Pino 5 Pino 2 D
Pino 6 Pino 1 E
Pino 7 Pino 9 F
Pino 8 Pino 10 G
Pino GND Pino 8

Após as conexões dos terminais abaixo temos o código de programação:

 
int conta; //

byte displaySeteSeg[10][7] = { 
 
 { 1,1,1,1,1,1,0 },  //DIGITO 0
 { 0,1,1,0,0,0,0 },  //DIGITO 1
 { 1,1,0,1,1,0,1 },  //DIGITO 2
 { 1,1,1,1,0,0,1 },  //DIGITO 3
 { 0,1,1,0,0,1,1 },  //DIGITO 4
 { 1,0,1,1,0,1,1 },  //DIGITO 5
 { 1,0,1,1,1,1,1 },  //DIGITO 6
 { 1,1,1,0,0,0,0 },  //DIGITO 7
 { 1,1,1,1,1,1,1 },  //DIGITO 8
 { 1,1,1,1,0,1,1 }   //DIGITO 9

};
 
void setup(){

  //Definindo pinos como saída
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10,INPUT);

  //inicializa display com número 0
  conta = 0;
  ligaSegmentosDisplay(conta);
   
}

void loop() {

  if(digitalRead(10)== LOW){ //Se o botão for pressionado soma +1 no display
    
    delay(500);

    conta++; //incremento

    if(conta == 10){ //Se passar de 9 reseta o display para 0
      conta = 0; 
      ligaSegmentosDisplay(conta);
    }
    else{ //Se não mostra no display o próximo número
      ligaSegmentosDisplay(conta);
    }
      
  }
  
}

void ligaSegmentosDisplay(byte digito){ //função para acionar o display com o digito correspondente
  
  byte pino = 2;
  
  //Liga os segmentos de acordo com o digito correspondente
  for (byte contadorSegmentos = 0; contadorSegmentos < 7; ++contadorSegmentos){ 
    digitalWrite(pino, displaySeteSeg[digito][contadorSegmentos]);
    ++pino; 
  }
}

Após carregado o código, o circuito deve se comportar dessa maneira como apresenta o gif abaixo:

Figura 4: Funcionamento do circuito

Agora que você viu como é fácil utilizar um display de 7 segmentos, você pode aprimorar seus projetos e até mesmo fazer um contador de peças utilizando sensores e mostrando a contagem no display de 7 segmentos.

Gostou de aprender como usar um display de 7 segmentos com o Arduino? Deixe seu comentário logo abaixo. Para saber mais sobre o mundo maker, arduino entre outros dispositivos acesse o blog

Faça seu comentário

Acesse sua conta e participe

4 Comentários

  1. como eu adiciono um comando para quando estiver em um número X ele abra uma fechadura 12v? é possível?

    1. Olá Juarez,

      É possível sim!

      Para isso você pode utilizar um módulo de relé, e adicionar um condicional na programação que quando chegar no número X, você aciona o pino ao qual conectou o módulo de relé, que por sua vez vai acionar a fechadura 12 V.

      Abraços!
      Vinícius – Equipe MakerHero

  2. divergência entre a tabela de conexões e o esquemático eletrônico

    1. Boa tarde! Obrigado pela leitura! Creio que você esteja falando da conexão com o pino 9 do arduino ao pino 5 do display por não estar na tabela, mas isso não afeta o funcionamento proposto no tutorial, pois o ponto não é utilizado para demostração do display.