Display de 7 Segmentos

O display de 7 segmentos é um componente encontrado em todo kit iniciante, mas muitas pessoas não fazem ideia de como ele funciona, neste post será explicado o que é esse componente e como usa-lo com o Arduino.

display_led_0_56_

Um display de sete segmentos, é um tipo de display (mostrador) barato usado como alternativa a displays de matriz de pontos mais complexos e dispendiosos. Displays de sete segmentos são comumente usados em eletrônica como forma de exibir uma informação alfanumérica (binário, octadecimal, decimal ou hexadecimal) que possa ser prontamente compreendida pelo usuário sobre as operações internas de um dispositivo. Seu uso é corriqueiro por se tratar de uma opção barata, funcional e de fácil configuração.

(Via Wikipedia )

O display contem sete partes que podem ser controladas separadamente, combinados eles podem formar desde números a letras. Os segmentos de um display de sete segmentos são definidos pelas letras de A a G, conforme indicado à direita, onde o ponto decimal opcional DP (um “oitavo segmento”) é usado para a exibição de números não-inteiros.

300px-7_segment_display_labeled-svg

Imagem : Wikipedia

Exibição dos números:

A animação à esquerda passa pelos glifos comuns dos dez numerais e seis “letras-dígito” em hexadecimal (A–F). A variação entre letras maiúsculas e minúsculas para A–F é feita para que cada letra tenha uma forma única e inequívoca (A, C, E e F são maiúsculos, já B e D são minúsculos, pois caso contrário se confundiriam com 8 e 0). Para a exibição de cada número/caractere usa-se um conjunto de segmentos diferentes. As mais comuns são:

Imagem : Wikipedia

Simulação de um display LED de sete segmentos exibindo os 16 dígitos hex.

  • 0(Zero) – a, b, c, d, e, f
  • 1(Um) – b, c
  • 2(dois) – a, b, d, e, g
  • 3(três) – a, b, c, d, g
  • 4(quatro) – b, c, f, g
  • 5(cinco) – a, c, d, f, g
  • 6(seis) – a, c, d, e, f, g
  • 7(sete) – a, b, c
  • 8(oito) – a, b, c, d, e, f, g (todos)
  • 9(nove) – a, b, c, f, g
  • A(maiúsculo) – a, b, c, e, f, g
  • B(minúsculo) – c, d, e, f, g
  • C(maiúsculo) – a, d, e, f
  • D(minúsculo) – b, c, d, e, g
  • E(maiúsculo) – a, d, e, f, g
  • F(maiúsculo) – a, e, f, g

Dentre os números, 0, 6, 7 e 9 podem ser representados por glifos diferentes dos citados acima em displays de sete segmentos, entretanto, na imagem, todos os dígitos se assemelham aos indicados.

Usando o Display de 7 segmentos com o Arduino

Agora que entendemos o que é o componente vamos usa-lo com a nossa placa. Usarei um exemplo de projeto que vi no Laboratório de Garagem, onde controlaremos um display de 7 segmentos que será conectado diretamente ao Arduino e fará uma contador hexadecimal configurável através de duas teclas onde você pode usa-lo de forma crescente e decrescente.

Material necessário:

  • Arduino Uno
  • Cabo USB
  • Protoboard
  • Resistor 330Ω
  • Resistor 10KΩ
  • 2 Chaves Tactil
  • Display de 7 segmentos
  • Alguns Jumpers

 

Esquema de Montagem 

montagem_contador

O código 

 #define CONTAR 8  // pino onde será conectado a tecla de contagem   
 #define MODO 9   // pino onde será conectado a tecla de modo   
 byte tabela_7_seg [16] = {    
 B01111110, // = Digito 0    
 B00001100, // = Digito 1    
 B10110110, // = Digito 2    
 B10011110, // = Digito 3    
 B11001100, // = Digito 4    
 B11011010, // = Digito 5    
 B11111010, // = Digito 6    
 B00001110, // = Digito 7    
 B11111110, // = Digito 8    
 B11001110, // = Digito 9    
 B11101110, // = Digito A    
 B11111000, // = Digito B    
 B01110010, // = Digito C    
 B10111100, // = Digito D    
 B11110010, // = Digito E    
 B11100010  // = Digito F   
 };   
 int contagem = 9, inc_dec =1;   
 void setup()   
 {    
 //Configura os pinos digitais de 1 até 7 como saída digital    
 DDRD = B11111110;    
 //Configura os pinos onde os botões estão conectados    
 pinMode(CONTAR, INPUT);    
 pinMode(MODO, INPUT);   
 }   
 void loop()  
 {     
 // Lê o botão de Contagem     
 if (digitalRead(CONTAR)== LOW)    
 {     
 contagem += inc_dec;       
 //Reseta a contagem em caso de estouro     
 if (contagem < 0)     
 {      
 contagem = 15;     
 }     
 if (contagem > 15)  
 {      
 contagem = 0;     
 }       
 //Aguarda a tecla de contagem ser solta     
 while(digitalRead(CONTAR)== LOW)  
 {     
 }     
 }     
 // Lê o botão que seleciona MODO    
 if(digitalRead(MODO)== LOW)    
 {     
 //Inverte o modo de operação do contador     
 inc_dec = inc_dec * (-1);     
 //Aguarda a tecla de MODO ser solta     
 while(digitalRead(MODO)== LOW){     
 }     
 }     
 //Busca o valor da contagem na matriz que decodifica os 7 segmentos e envia para o display    
 PORTD = tabela_7_seg[contagem];    
 delay(50);   
 }  

 

 

Fontes: Wikipedia Laboratório de Garagem.
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s