Per molte applicazioni, non è necessario utilizzare un display a cristalli liquidi più costoso per visualizzare i dati. Un semplice display a sette segmenti è sufficiente.
Se la tua applicazione Arduino ha bisogno di visualizzare solo numeri, considera l’utilizzo di un display a sette segmenti. Il display a sette segmenti ha sette LED disposti a forma di numero otto. Sono facili da usare e convenienti. L’immagine qui sotto mostra un tipico display a sette segmenti.
I display a sette segmenti sono di due tipi: ad anodo comune e a catodo comune. La struttura interna di entrambi i tipi è quasi la stessa. La differenza è la polarità dei LED e del terminale comune. In un display a sette segmenti a catodo comune (quello che abbiamo usato negli esperimenti), tutti i sette LED più un LED punto hanno i catodi collegati ai pin 3 e 8. Per usare questo display, dobbiamo collegare GROUND al pin 3 e al pin 8 e, e collegare +5V agli altri pin per far accendere i singoli segmenti. Il seguente diagramma mostra la struttura interna del display a sette segmenti a catodo comune:
Il display ad anodo comune è l’esatto contrario. In un display ad anodo comune, il terminale positivo di tutti gli otto LED sono collegati insieme e poi collegati al pin 3 e al pin 8. Per accendere un singolo segmento, si mette a terra uno dei pin. Lo schema seguente mostra la struttura interna del display a sette segmenti ad anodo comune.
I sette segmenti sono etichettati a-g, con il punto che è “dp”, come mostrato nella figura seguente:
Per visualizzare un numero particolare, si attivano i singoli segmenti come mostrato nella tabella sottostante:
Digit gfedcba |
abcdefg |
a |
b |
c |
d |
e |
f |
g |
|||
0 0×3F |
0×7E |
on |
on |
on |
on |
on |
on |
off |
|||
1 0×06 |
0×30 |
off |
on |
on |
off |
off |
off |
off |
|||
2 0×5B |
0×6D |
on |
on |
off |
on |
on |
off |
on |
|||
3 0×4F |
0×79 |
on |
on |
on |
on |
off |
off |
on |
|||
4 0×66 |
0×33 |
off |
on |
on |
off |
off |
off |
on |
on |
||
5 0×6D |
0×5B |
on |
off |
on |
on |
off |
on |
on |
on |
on |
|
6 0×7D |
0×5F |
on |
off |
on |
on |
on |
on |
on |
|||
7 0×07 |
0×70 |
on |
on |
on |
off |
off |
off |
off |
|||
8 0×7F |
0×7F |
on |
on |
on |
on |
on |
on |
on |
|||
9 0×6F |
0×7B |
on |
on |
on |
on |
off |
on |
on |
|||
A 0×77 |
0×77 |
on |
on |
on |
off |
on |
on |
on |
|||
B 0×7C |
0×1F |
off |
off |
on |
on |
on |
on |
on |
|||
C 0×39 |
0×4E |
on |
off |
off |
on |
on |
on |
on |
off |
||
D 0×5E |
0×3D |
off |
on |
on |
on |
on |
off |
on |
|||
E 0×79 |
0×4F |
on |
off |
off |
on |
on |
on |
on |
|||
F 0×71 |
0×47 |
on |
off |
off |
off |
on |
on |
on |
Esperimento 1
In questo esperimento, accenderemo e spegneremo semplicemente i LED per familiarizzare con il funzionamento di un display a sette segmenti.
Hardware necessario
- 1 x display a sette segmenti (catodo comune)
- 1 x Arduino MEGA 2560
- 1 x breadboard
- 7 resistenze da 220 ohm (1/4 W)
- fili di collegamento
Schema elettrico
In questo circuito, i pin del display a sette segmenti sono collegati ai pin 2-9 di Arduino, come mostrato nella tabella sottostante. I pin comuni (pin 3 e pin 8) sono collegati a GND e dp è lasciato scollegato, perché non è usato in questo esperimento
Sette pin di segmento | Arduino pin | Colore del filo | |
---|---|---|---|
1(e) | 6 | arancio | |
2(d) | 5 | bianco | |
3,8(COM) | GND | n/a | |
c | 4 | giallo | |
5(dp) | – | ||
6(b) | 3 | rosso | |
7(a) | 2 | blu | |
9(f) | 7 | ciano | |
10(g) | 8 | verde |
Codice
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);}
Interface_Seven_Segment.zip
Esperimento 2
Descrizione
In questo tutorial, interfacceremo un display a sette segmenti con Arduino mega e impareremo a visualizzare un conto alla rovescia da nove con un ritardo di un secondo, sul display a sette segmenti.
Hardware richiesto
L’hardware richiesto per questo esperimento è lo stesso dell’esperimento 1.
Schema di cablaggio
Lo schema di cablaggio per questo esperimento è lo stesso del circuito dell’Esperimento 1.
Codice
// 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_segment.zip
Video
Prova questo progetto da solo! Ottieni la BOM.