Para muitas aplicações, não há necessidade de utilizar uma exibição de cristais líquidos mais cara para exibir dados. Uma simples exibição de sete segmentos é suficiente.
Se a sua aplicação Arduino só precisa de exibir números, considere a utilização de uma exibição de sete segmentos. O visor de sete segmentos tem sete LEDs dispostos na forma do número oito. São fáceis de utilizar e rentáveis. A figura abaixo mostra um visor típico de sete segmentos.
Apenas segmentos são de dois tipos: ânodo comum e cátodo comum. A estrutura interna de ambos os tipos é quase a mesma. A diferença é a polaridade dos LEDs e do terminal comum. Num mostrador de sete segmentos de cátodo comum (o que utilizámos nas experiências), todos os sete LEDs mais um LED de ponto têm os cátodos ligados aos pinos 3 e ao pino 8. Para utilizar este mostrador, precisamos de ligar GROUND aos pinos 3 e 8 e, e ligar +5V aos outros pinos para que os segmentos individuais se iluminem. O diagrama seguinte mostra a estrutura interna do mostrador de sete segmentos de catódigo-comum:
A exibição do ânodo comum é exactamente o oposto. Num visor de ânodo comum, o terminal positivo de todos os oito LEDs é ligado em conjunto e depois ligado ao pino 3 e ao pino 8. Para ligar um segmento individual, liga-se à terra um dos pinos. O diagrama seguinte mostra a estrutura interna do mostrador de sete segmentos do ânodo comum.
Os sete segmentos são rotulados a-g, sendo o ponto “dp”, como mostra a figura abaixo:
>p> Para exibir um número particular, liga-se os segmentos individuais como mostra a tabela abaixo:
Digit gfedcba |
abcdefg |
a |
b |
d |
p>e |
g |
|
0 0×3F |
em |
em |
|||||
1 0×06 |
off |
on |
on |
off |
|||
on |
|||||||
3 0×4F |
on |
off |
on |
||||
4 0×66 |
0×33 |
on |
on |
||||
5 0×6D |
off |
on |
|||||
6 0×7D |
0×5F |
on |
em |
em |
|||
7 0×07 |
off |
||||||
0×7F |
on |
||||||
9 0×6F |
on |
on |
|||||
A 0×77 |
on |
on |
on |
||||
B 0×7C |
0×1F |
off |
off |
em |
em |
||
C 0×39 |
off |
on |
on |
||||
p>D 0×5E |
0×3D |
on |
off |
on |
|||
E 0×79 |
0×4F |
on |
on |
||||
F 0×71 |
off |
on |
Experiment 1
Nesta experiência, vamos simplesmente ligar e desligar os LEDs para nos familiarizarmos com o funcionamento de um visor de sete segmentos.
Hardware necessário
- 1 x exibição de sete segmentos (cátodo comum)
- 1 x Arduino MEGA 2560
- 1 x breadboard
/li> - 7 x 220 resistências ohm (1/4 W)
- fios de jumper
/li>
>br>>/p>
Diagrama de cablagem
Neste circuito, os pinos de exibição de sete segmentos estão ligados aos pinos Arduino 2-9, como se mostra na tabela abaixo. Os pinos comuns (pino 3 e pino 8) são ligados ao GND e o dp é deixado sem ligação, porque não é usado nesta experiência
br>
Pinos de segmento par | Arduino pins | Wire Color |
---|---|---|
1(e) | 6 | orange |
2(d) | 5 | white |
3,8(COM) | GND | n/a |
4 | yellow | |
5(dp) | – | |
6(b) | 3 | red |
7(a) | 2 | blue |
9(f) | 7 | cyan |
10(g) | 8 | verde |
Código
void setup(){ // define pin modes pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); }void loop() { // loop to turn leds od seven seg ON for(int i=2;i<9;i++) { digitalWrite(i,HIGH); delay(600); } // loop to turn leds od seven seg OFF for(int i=2;i<9;i++) { digitalWrite(i,LOW); delay(600); } delay(1000);}
Segmento_de_Interfacezip
Experimento 2
Descrição
Neste tutorial, vamos fazer uma interface de sete segmentos com o mega Arduino e aprender a exibir uma contagem decrescente a partir de nove com um atraso de um segundo, na exibição de sete segmentos.
Hardware necessário
O hardware necessário para esta experiência é o mesmo que para a Experiência 1.
Diagrama de cablagem
O diagrama de cablagem para esta experiência é o mesmo que o circuito para a Experiência 1.
br>
Código
// make an array to save Sev Seg pin configuration of numbersint num_array = { { 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,0,0,1,1 }}; // 9 //function headervoid Num_Write(int);void setup() { // set pin modes pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); }void loop() { //counter loop for (int counter = 10; counter > 0; --counter) { delay(1000); Num_Write(counter-1); } delay(3000);}// this functions writes values to the sev seg pins void Num_Write(int number) { int pin= 2; for (int j=0; j < 7; j++) { digitalWrite(pin, num_array); pin++; }}
// make an array to save Sev Seg pin configuration of numbersint num_array = { { 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,0,0,1,1 }}; // 9 //function headervoid Num_Write(int);void setup() { // set pin modes pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); }void loop() { //counter loop for (int counter = 10; counter > 0; --counter) { delay(1000); Num_Write(counter-1); } delay(3000);}// this functions writes values to the sev seg pins void Num_Write(int number) { int pin= 2; for (int j=0; j < 7; j++) { digitalWrite(pin, num_array); pin++; }}
aac_interface_a_seven_segmento.zip
Vídeo
Dê a este projecto uma tentativa por si mesmo! Obtenha a lista técnica.