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á!
Para utilizar o display de 7 segmentos com o Arduino você precisará dos seguintes materiais:
- 1 x Placa Arduino Uno R3 + Cabo USB para Arduino
- 1 x Resistor de 220Ω
- 1 x Resistor de 1kΩ
- 1 x Chave Táctil Push-Button
- 1 x Display 7 Segmentos 1 Dígito Vermelho Catodo
- 1 x Protoboard
- Kit de Jumpers
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.
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.
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:
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.
como eu adiciono um comando para quando estiver em um número X ele abra uma fechadura 12v? é possível?
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
divergência entre a tabela de conexões e o esquemático eletrônico
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.