O Display de Led de 7 segmentos é um componente eletrônico que possui um encapsulamento que contém de 7 a 8 leds. É utilizado em projetos que necessitam da exibição de números ou de uma quantidade limitada de caracteres, por exemplo: relógios, contadores e outros.
O display é comercializado em diversos tamanhos e cores, podendo conter mais de um dígito no mesmo acoplamento, simplificando ainda mais sua utilização.
É importante destacar que existem dois modelos de displays: o anodo comum, que compartilha polos positivos e o catodo comum, que compartilha polos negativos.
Apesar de possuírem as mesmas funcionalidades, a diferença está na forma de ligação.
Além dos 7 segmentos, o display possui um ponto adicional (Dp), permitindo a indicação de um ponto decimal.
Montagem dos componentes
//criando uma matriz com a contagem
byte seven_seg_digits[10][7] = {
{ 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,1,0,1,1 } // = 9
};
//indicando os pinos conectados
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
void sevenSegWrite(byte digit) {
byte pin = 2;
for (byte segCount = 0; segCount < 7; ++segCount) {
digitalWrite(pin, seven_seg_digits[digit][segCount]);
++pin;
}
}
void loop() {
for (byte count = 10; count > 0; --count) {
delay(1000);
sevenSegWrite(count - 1);
}
delay(4000); // Aguarda 4 segundos para recomeçar a contar
}