Diferència entre revisions de la pàgina «LED de 7 segments»

De Wiket
Salta a la navegació Salta a la cerca
 
(Hi ha 4 revisions intermèdies del mateix usuari que no es mostren)
Línia 27: Línia 27:
  
 
'''2.''' Display de segments d'ànode comú, en la qual tots els ànodes es troben al positiu .
 
'''2.''' Display de segments d'ànode comú, en la qual tots els ànodes es troben al positiu .
 +
  
 
'''Connexions'''
 
'''Connexions'''
Línia 35: Línia 36:
  
 
Segment a - pin 7
 
Segment a - pin 7
 +
 
Segment b - pin 8
 
Segment b - pin 8
 +
 
Segment c - pin 9
 
Segment c - pin 9
 +
 
Segment d - pin 10
 
Segment d - pin 10
 +
 
Segment i - pin 11
 
Segment i - pin 11
 +
 
Segment f - pin 12
 
Segment f - pin 12
 +
 
Segment g - pin 13
 
Segment g - pin 13
  
Línia 54: Línia 61:
  
 
int pausa = 1000; // Variable que defineix l'interval
 
int pausa = 1000; // Variable que defineix l'interval
 +
 
// De temps entre cada dígit
 
// De temps entre cada dígit
 +
 
void setup ()
 
void setup ()
 
{
 
{
 +
 
pinMode (7, OUTPUT); // Assignació de les sortides digitals
 
pinMode (7, OUTPUT); // Assignació de les sortides digitals
 +
 
pinMode (8, OUTPUT);
 
pinMode (8, OUTPUT);
 +
 
pinMode (9, OUTPUT);
 
pinMode (9, OUTPUT);
 +
 
pinMode (10, OUTPUT);
 
pinMode (10, OUTPUT);
 +
 
pinMode (11, OUTPUT);
 
pinMode (11, OUTPUT);
 +
 
pinMode (12, OUTPUT);
 
pinMode (12, OUTPUT);
 +
 
pinMode (13, OUTPUT);
 
pinMode (13, OUTPUT);
 +
 
}
 
}
 
void display (int a, int b, int c, int d, int i, int f, int g)
 
void display (int a, int b, int c, int d, int i, int f, int g)
Línia 69: Línia 86:
 
{
 
{
 
digitalWrite (7, a); // Es reben 7 variables i s'assignen
 
digitalWrite (7, a); // Es reben 7 variables i s'assignen
 +
 
digitalWrite (8, b); // A cadascuna de les sortides
 
digitalWrite (8, b); // A cadascuna de les sortides
 +
 
digitalWrite (9, c);
 
digitalWrite (9, c);
 +
 
digitalWrite (10, d);
 
digitalWrite (10, d);
 +
 
digitalWrite (11, e);
 
digitalWrite (11, e);
 +
 
digitalWrite (12, f);
 
digitalWrite (12, f);
 +
 
digitalWrite (13, g);
 
digitalWrite (13, g);
 
}
 
}
 +
 
void loop () // Funció principal
 
void loop () // Funció principal
 +
 
// Depenent de cada dígit, s'envia a la funció display
 
// Depenent de cada dígit, s'envia a la funció display
 +
 
// Els estats (0 i 1) a cada un dels segments
 
// Els estats (0 i 1) a cada un dels segments
 
{
 
{
 +
 
display (1,1,1,1,1,1,0); // Escriu 0
 
display (1,1,1,1,1,1,0); // Escriu 0
 
delay (pausa);
 
delay (pausa);
Línia 100: Línia 127:
 
display (1,0,1,1,1,1,1); // Escriu 6
 
display (1,0,1,1,1,1,1); // Escriu 6
 
delay (pausa);
 
delay (pausa);
 +
 +
display (1,1,1,0,0,0,0); // Escriu 7
 +
delay (pausa);
 +
 +
display (1,1,1,1,1,1,1); // Escriu 8
 +
delay (pausa);
 +
 +
display (1,1,1,0,0,1,1); // Escriu 9
 +
delay (pausa);
 +
}

Revisió de 09:48, 1 juny 2016

Introducció teòrica

Un display de segments ( o visualitzador ) és un component electrònic que s'utilitza per representar nombres. Com el seu propi nom indica i , com es pot observar en la imatge següent , la pantalla està compost per 7 segments, els quals s'encendran i / o apagaran en funció del nombre a representar. De manera interna , s'assembla a set LEDs connectats estratègicament formant el número 8 , tot i que externament aquesta semblança no s'observa , d'aquí la seva simplicitat.


Cada un dels segments que componen aquest display es denominen a, b, c , d, e, f i g , tal com es mostra a continuació.

Per mostrar el nombre 0, haurem de encendre a, b, c , d, e i f .

Pel nombre 2, tindríem a, b , g, e i d.

I de la mateixa manera per a qualsevol altre número.

El P simbolitza el punt decimal .

Pel que fa a la classificació, hi ha de dos tipus :

1. Display de segments de càtode comú, en la qual tots els càtodes dels LEDs estan internament units a una patilla comú, la qual està connectada al potencial negatiu de la placa.

2. Display de segments d'ànode comú, en la qual tots els ànodes es troben al positiu .


Connexions

Pel que fa a les connexions, hem de tenir en compte cada segment a què pin ho anem a connectar, per poder efectuar una crida als pins correcta. En el nostre cas , hem fet les següents connexions ( pot variar la designació segons convingui ) :

Segment a - pin 7

Segment b - pin 8

Segment c - pin 9

Segment d - pin 10

Segment i - pin 11

Segment f - pin 12

Segment g - pin 13

Led.png


Exemple de codi


Anem a fer un exemple en el qual el nostre display anirà mostrant de forma ascendent tots els números amb un interval de separació d'1 segon.

Aquí tenim el sketch:

int pausa = 1000; // Variable que defineix l'interval

// De temps entre cada dígit

void setup () {

pinMode (7, OUTPUT); // Assignació de les sortides digitals

pinMode (8, OUTPUT);

pinMode (9, OUTPUT);

pinMode (10, OUTPUT);

pinMode (11, OUTPUT);

pinMode (12, OUTPUT);

pinMode (13, OUTPUT);

} void display (int a, int b, int c, int d, int i, int f, int g) // Funció del display { digitalWrite (7, a); // Es reben 7 variables i s'assignen

digitalWrite (8, b); // A cadascuna de les sortides

digitalWrite (9, c);

digitalWrite (10, d);

digitalWrite (11, e);

digitalWrite (12, f);

digitalWrite (13, g); }

void loop () // Funció principal

// Depenent de cada dígit, s'envia a la funció display

// Els estats (0 i 1) a cada un dels segments {

display (1,1,1,1,1,1,0); // Escriu 0 delay (pausa);

display (0,1,1,0,0,0,0); // Escriu 1 delay (pausa);

display (1,1,0,1,1,0,1); // Escriu 2 delay (pausa);

display (1,1,1,1,0,0,1); // Escriu 3 delay (pausa);

display (0,1,1,0,0,1,1); // Escriu 4 delay (pausa);

display (1,0,1,1,0,1,1); // Escriu 5 delay (pausa);

display (1,0,1,1,1,1,1); // Escriu 6 delay (pausa);

display (1,1,1,0,0,0,0); // Escriu 7 delay (pausa);

display (1,1,1,1,1,1,1); // Escriu 8 delay (pausa);

display (1,1,1,0,0,1,1); // Escriu 9 delay (pausa); }