Funcionamento de um display de 7 segmentos com o Arduino

 

 

FUNCIONAMENTO DE UM DISPLAY DE 7 SEGMENTOS COM O ARDUINO

 

 

Uma das maneiras mais eficientes de exibição de números se dá através de um display de sete segmentos, talvez você não ache os displays de sete segmentos visualmente atraentes, mas eles são simples de usar, baratos e altamente visíveis em condições de pouca e alta luminosidade. Em diversos lugares podemos encontrar displays de 7 segmentos, eles estão presentes em relógios digitais, cronômetros, equipamentos de teste eletrônico, bombas de gasolina, projetos eletrônicos dos mais variados segmentos e etc.

Displays de sete segmentos podem ser encontrados em patentes desde 1908 (na patente dos EUA, F. W. Wood inventou um display de 8 segmentos, que exibia o número 4 usando uma barra diagonal).  Em 1910, um display de sete segmentos iluminado por lâmpadas incandescentes foi usado em um painel de sinalização da caldeira de uma usina. Entretanto eles não alcançaram uso generalizado até o advento dos diodos emissores de luz (LEDs) na década de 1970.

 

Display de 7 segmentos

O display de 7 segmentos, consiste em sete LEDs dispostos em um padrão em forma de '8'. Cada LED é referido como um segmento, porque quando aceso, forma parte de um dígito. Às vezes, um oitavo LED é usado para indicar um ponto decimal.

 

 

Cada LED de segmento tem um de seus pinos de conexão retirados diretamente da embalagem plástica retangular. Esses pinos são rotulados com as letras 'a' a 'g'. Os pinos LED restantes são conectados para formar um único pino comum.

Cada segmento pode ser ligado ou desligado individualmente ajustando o pino correspondente para HIGH ou LOW, assim como um LED normal. Ao iluminar segmentos individuais, você pode criar qualquer caractere numérico e até mesmo algumas representações básicas de letras.

 

Pinagem de exibição de 7 segmentos

Agora, vamos verificar com calma a configuração do segmento para que você saiba qual pino corresponde a qual segmento. A pinagem do display de 7 segmentos é a seguinte

 

 

Ao iluminar segmentos individuais, você pode criar qualquer caractere numérico. Os segmentos são identificados com as letras a,b,c,d,e,f,g (pinos 7,6,4,2,1,9,10 respectivamente). Os pinos “Com” (3 e 8) são conectados internamente para formar um pino comum. Dependendo do tipo de display, este pino deve ser conectado a GND (catodo comum) ou 5V (anodo comum).

 

Cátodo comum X Ânodo comum

Existem dois tipos de displays de sete segmentos: o cátodo comum e o ânodo comum. A estrutura interna de ambos os tipos é quase idêntica. A diferença é a polaridade dos LEDs e do terminal comum. Como o nome indica, em telas de cátodo comum, todos os cátodos (ou terminais negativos) dos LEDs de segmento são amarrados juntos, enquanto em telas de ânodo comum, todos os ânodos (ou terminais positivos) dos LEDs de segmento são amarrados juntos.

Em uma exibição de cátodo comum, o pino com é conectado ao GND e uma tensão positiva é aplicada a cada segmento (a-g) para iluminá-lo.

Em um display de ânodo comum, o pino com é conectado ao VCC e cada segmento (a-g) é aterrado individualmente para iluminá-lo.

 

 

Os displays de 7 segmentos de ânodo comum são mais amplamente usados ??em geral porque os circuitos de dissipação de corrente têm muitas vantagens sobre os circuitos de fornecimento de corrente.

 

Display de 7 segmentos funcionando

Dependendo do caractere que você deseja exibir, você deve acender os LEDs de segmento apropriados. Para exibir o número 4, por exemplo, quatro segmentos de LED b, c, f e g devem estar acesos. Da mesma forma, vários dígitos de 0 a 9 e caracteres de A a F podem ser exibidos em um display de 7 segmentos, conforme mostrado abaixo.

 

 

Selecionando um resistor limitador de corrente

Um display de 7 segmentos pode parecer um único display, mas na verdade é composto de sete LEDs independentes alojados em um único compartimento, cada um dos quais requer seu próprio resistor limitador de corrente para evitar danos aos segmentos de LED.

Normalmente, para um display vermelho padrão de 7 segmentos, cada segmento de LED requer aproximadamente 15 mA para iluminar corretamente; portanto, em um circuito lógico digital de 5 volts, o valor do resistor limitador de corrente seria de aproximadamente 200? (5v – 2v)/15mA, ou 220? para o valor preferencial superior mais próximo.

Se você estiver usando um display de 7 segmentos de cor diferente e não tiver certeza de quanta corrente cada segmento de LED requer, 330? é um valor seguro.

A figura a seguir mostra como os resistores limitadores de corrente são conectados aos segmentos de LED do display.

 

 

Conectando o display de 7 segmentos ao Arduino Uno

A seguir, iremos demonstrar através da elaboração de um circuito como realizar a integração entre o Arduino e o display de 7 segmentos de forma prática.

O objetivo do projeto será sortear um número de 1 a 7 a cada vez que o botão for pressionado. O número sorteado será exibido no display de 7 segmentos.

 

Materiais para montagem

Passos para a montagem do circuito

A montagem do circuito deve ser feita conforme imagem a seguir. Observe atentamente a posição correta de conexão dos pinos do display de 7 segmentos. Os resistores de 220 Ohms são necessários para limitar a corrente que passa nos pinos de cada Led do display. O resistor de 10K é utilizado para remover o ruído de entrada indesejado do botão (chave táctil), evita que ativações extras sejam acionadas com muita frequência.

 

 

A seguir, apresentamos uma tabela para facilitar o processo de montagem, com o resumo das principais conexões do circuito proposto.

 

Resumo das Conexões entre os componentes

 

 

Pino 6 (Arduino)

Passa pelo resistor e vai para o Pino 1 (Display)

 

 

Pino 7 (Arduino)

Passa pelo resistor e vai para o Pino 2 (Display)

 

 

Pino GND (Arduino)

Pino 3 (Display)

 

 

Pino 8 (Arduino)

Passa pelo resistor de 220Ohms e vai para o Pino 4 (Display)

 

 

Pino 9 (Arduino)

Passa pelo resistor de 220Ohms e vai para o Pino 5 (Display)

 

 

Pino 2 (Arduino)

Passa pelo resistor de 220Ohms e vai para o Pino 6 (Display)

 

 

Pino 3 (Arduino)

Passa pelo resistor de 220Ohms e vai para o Pino 7 (Display)

 

 

Pino 4 (Arduino)

Passa pelo resistor de 220Ohms e vai para o Pino 9 (Display)

 

 

Pino 5 (Arduino)

Passa pelo resistor de 220Ohms e vai para o Pino 10 (Display)

 

 

Pino 10 (Arduino)

Conecta no pino esquerdo da chave táctil

 

 

Pino 5V (Arduino)

Conecta no pino direito da chave táctil

 

 

Pino GND (Arduino)

Passa pelo resistor de 10K e conecta no pino esquerdo da chave táctil

 

 

Programação do Arduino

Antes de iniciar a programação é necessário instalarmos a biblioteca “sevseg”, uma das bibliotecas mais populares ao utilizar o display de 7 segmentos.  Para instalar a biblioteca “sevseg”, vá para: Sketch > Incluir biblioteca > Gerenciar bibliotecas e procure por “sevseg”.

Clique na biblioteca e, em seguida, basta efetuar a  instalação.

 

sevseg library installation

 

Após o processo de instalação da biblioteca “sevseg”, reinicie a IDE do Arduino para iniciar a programação e digite com atenção o respectivo código, conforme a imagem a seguir.

 

 

 

Após digitar o código, basta fazer o upload no Arduino Uno. O processo para fazer o upload do código no Arduino Uno é bem simples:

 - Conecte o seu Arduino Uno utilizando o cabo USB.

 - Vá em Ferramentas ? Placa ? Arduino Uno para selecionar sua placa no menu Arduino.

 - Em seguida escolha a porta serial correta para sua placa vá em ferramentas ? Porta serial ? COMx (Escolha a porta serial ao qual o seu Arduino estiver conectado).

 - Por fim, basta clicar no botão Carregar. 

 

Se não houver nenhum erro de digitação ou configuração, o código será gravado no Arduino. Caso contrário verifique se o código foi digitado corretamente e se as configurações estão corretas.

Pronto, agora cada vez que você pressionar o botão, um número de 1 a 7 será sorteado e exibido no display de 7 segmentos.

 

Explicação do código

No início do código, incluímos a biblioteca SevSeg e criamos um objeto SevSeg, que usaremos ao longo do programa. Declaramos o pino do Arduino ao qual o botão (“buttonpin”) está conectado (pino 10). Além disso, uma nova variável chamada “buttonState” é definida para acompanhar o status do botão.

 

 

No void Setup(), primeiramente especificamos o número de dígitos no display. Como estamos utilizando um display de um dígito, definimos “numDigits” como 1.

A matriz “digitPins” simplesmente especifica os ‘pinos comuns’. Se você estiver utilizando um display de um dígito, deixe-o em branco. Caso contrário, liste os números dos pinos do Arduino aos quais os 'pinos comuns' de dígitos individuais estão conectados, da esquerda para a direita.

Definimos a matriz “segmentPins” correspondente aos pinos de E/S que são conectados aos segmentos de LED, na ordem A, B, C, D, E, F, G, DP.

Uma variável booleana, “resistorsOnSegments”, também é definida para informar à biblioteca se estamos usando resistores limitadores de corrente.

Em seguida especificamos o tipo de display de 7 segmentos que estamos utilizando. Os valores válidos são “COMMON ANODE” e “COMMON CATHODE”. No nosso caso estamos utilizando um display de cátodo comum.

E por fim configuramos o “buttonPin” como entrada.

 

Já noi void Loop(), sempre que o pressionamento do botão for detectado, geramos um número aleatório usando a função interna random(min, max), que recebe dois parâmetros: o primeiro especifica o limite inferior do valor aleatório, enquanto o segundo especifica o limite superior do valor aleatório. Sempre que o botão for pressionado o número aleatório sorteado  é exibido no display de 7 segmentos.