Home Experiência com display de 7 segmentos
Post
Cancelar

Experiência com display de 7 segmentos

O display de 7-segmentos são basicamente 7 LEDs que, quando acionados na sequência correta, apresentam o desenho de números. É possível criar várias outras formas neles, basta usar a imaginação. Vamos entender o display de 7-segmentos, e depois faremos outra experiência para utilizarmos alguns tipos de dados apresentados anteriormente.

EXPERIÊNCIA - USANDO UM DISPLAY DE 7-SEGMENTOS

Display de 7 segmentos é um mostrador comumente utilizado para mostrar números. Normalmente, são usados em conjunto com um conversor Binário/BCD (Binary Coded Decimal). São baratos e construídos por 7 LEDs que formam seus segmentos e o ponto decimal (DP). Display de 7 segmentos podem ser de ânodo comum, que possui um pino que é o polo negativo comum a todos os segmentos que devem ser conectados ao polo positivo para serem acesos, ou cátodo comum, que possui um pino que é o polo positivo comum a todos os segmentos que devem ser conectados ao polo negativo para serem acesos.

Os segmentos são identificados por letras de A até G, mais o DP (ponto decimal). Para formar números e algumas letras, basta acender ou apagar os segmentos:

Display 7 Display de 7 segmentos

Para trabalhar com displays de 7-segmentos, usamos os mesmos conhecimentos que já temos em trabalhar com LEDs.

O que é necessário

  • 1 x Arduino
  • 1 x Display de 7-segmentos cátodo comum
  • Resistores de 220 Ohms

Esquema de montagem

Orientando-se pela imagem a seguir e usando um cabinho, ligue os pinos comuns (5V) a um resistor de 220Ω e ao pino 5V do Arduino. Agora, também usando um cabinho, ligue o pino do segmento A ao pino digital 2 do Arduino.

Montagem do display 7 com arduino Montagem do display de 7 segmentos

Programação

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 7;
int g = 8;
void setup()
{ // Configuracao dos pinos 2 a 8 como SAIDA
  for (int i= 2; i<= 8; i++) {
     pinMode(i, OUTPUT);
  }
}

void loop()
{ //----Número 0 -------------
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, LOW);  
  delay(1000);  // espera de 1 segundo  
  
  //----Número 1 -------------
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);  
  delay(1000);  // espera de 1 segundo
  
  //----Número 2 -------------
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c,  LOW);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);
  delay(1000);
  
 //----Número 3 -------------
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);  
  delay(1000);  // espera de 1 segundo
  
  //----Número 4 -------------
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);  
  delay(1000);  // espera de 1 segundo
  
  //----Número 5 -------------
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);  
  delay(1000);  // espera de 1 segundo
 
  //----Número 6 -------------
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);  
  delay(1000);  // espera de 1 segundo
  
  //----Número 7 -------------
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);  
  delay(1000);  // espera de 1 segundo
  
  //----Número 8 -------------
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);  
  delay(1000);  // espera de 1 segundo
  
  //----Número 9 -------------
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);  
  delay(1000);  // espera de 1 segundo  
}

Programação 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
int a = 3, b = 4, c = 5, d = 6, e = 7, f = 8, g = 9;
int num[10][7] = {
  {a,b,c,d,e,f},// Zero
  {b,c},// Um
  {a,b,e,d,g},// Dois
  {a,b,c,d,g},// Três
  {b,c,f,g},// Quatro
  {a,c,d,f,g},// Cinco
  {a,c,d,e,f,g},// Seis
  {a,b,c},// Sete
  {a,b,c,d,e,f,g},// Oito
  {a,b,c,f,g}// Nove
};
void setup() {
  pinMode(a,OUTPUT);
  pinMode(b,OUTPUT);
  pinMode(c,OUTPUT);
  pinMode(d,OUTPUT);
  pinMode(e,OUTPUT);
  pinMode(f,OUTPUT);
  pinMode(g,OUTPUT);
}
void loop() {
  for(int i=0;i<10;i++) {
    apaga();
    numero(i);
    delay(1000);
  }
}
void apaga() {
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,HIGH);
  digitalWrite(e,HIGH);
  digitalWrite(f,HIGH);
  digitalWrite(g,HIGH);
}
void numero(int n) {
  for(int i=0;i<7;i++) digitalWrite(num[n][i],LOW);
}
}

Referências

Circuit design Display de 7 segmentos - Tinkercad

Entradas analógicas do Arduino

Arduino - Entradas e Saídas Digitais - Pinos digitais

Como usar Portas Digitais e Analógicas no ARDUINO

Usando os pinos digitais do Arduino

Esta postagem está licenciada sob CC BY 4.0 pelo autor.