Display de 7 segmentos no Arduino

Display 7 segmentos Arduino

Neste post será mostrado como programar um Display de 7 segmentos no Arduino.

O display de 7 segmentos consiste basicamente de um componente com 8 LEDs, e que estão dispostos de tal forma que permite exibir valores de 0 a 9, e também incluem o ponto decimal.

Os display de 7 segmentos podem ser encontrados com duas formas de ligação interna, catodo comum ou anodo comum, na figura abaixo é mostrado o circuito do display com catado comum:

Display 7 segmentos catodo comum

E na figura abaixo é mostrado o circuito para o display com anodo comum:

Display 7 segmentos anodo comum

É preciso se atentar ao tipo de ligação interna do display, pois o circuito pode não funcionar caso seja utilizado um display de modelo diferente.

Diagrama esquemático do circuito

Antes de programar o display de 7 segmentos no Arduino, devemos nos atentar ao fato que estamos ligando LEDs novamente, então precisamos adicionar um resistor para cada segmento do circuito. Abaixo é possível verificar o diagrama esquemático do circuito.

Código para ser gravado no Arduino

Abaixo é mostrado o código para ser gravado no Arduino.

/**************************************************************
counter 0 to 9 with the 7 display
www.wantronics.com.br
**************************************************************/

#define segmentA 9
#define segmentB 10
#define segmentC 13
#define segmentD 12
#define segmentE 11
#define segmentF 8
#define segmentG 7

int i;
int j;

// Mapping the Arduino pins connected to the display
int segment[] ={segmentA, segmentB, segmentC, segmentD,
                segmentE, segmentF, segmentG};

// Displays numbers
int digit[10][8] { // A  B  C  D  E  F  G
 					 {1, 1, 1, 1, 1, 1, 0}, // 0
 					 {0, 1, 1, 0, 0, 0, 0}, // 1
                     {1, 1, 0, 1, 1, 0, 1}, // 2
 					 {1, 1, 1, 1, 0, 0, 1}, // 3
                     {0, 1, 1, 0, 0, 1, 1}, // 4
 					 {1, 0, 1, 1, 0, 1, 1}, // 5
                     {1, 0, 1, 1, 1, 1, 1}, // 6
 					 {1, 1, 1, 0, 0, 0, 0}, // 7
                     {1, 1, 1, 1, 1, 1, 1}, // 8
 					 {1, 1, 1, 0, 0, 1, 1}, // 9
                  };

void setup()
{
  pinMode (segmentA, OUTPUT);
  pinMode (segmentB, OUTPUT);
  pinMode (segmentC, OUTPUT);
  pinMode (segmentD, OUTPUT);
  pinMode (segmentE, OUTPUT);
  pinMode (segmentF, OUTPUT);
  pinMode (segmentG, OUTPUT);
}

void loop()
{
  for (j = 0; j < 10; j++) {
    for (i = 0; i < 7; i++) {
      digitalWrite (segment[i], digit[j][i]);
    }
    delay (1000);
  }
}

O código percorre um vetor e uma matriz, o vetor é responsável por mapear os pinos do Arduino que estão conectados ao display de 7 segmentos, e a matriz é responsável por definir qual LED do display será acionado ou não, de acordo com o número que se quer exibir no display.

Simulação no Tinkercad

Abaixo é possível verificar o funcionamento do display de 7 segmentos conectado ao Arduino no Tinkercad.

https://www.tinkercad.com/