Interfaccia di un display a sette segmenti con Arduino

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.

SSD

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:

Catodo comune
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.

Anodo comune
Anodo comune

I sette segmenti sono etichettati a-g, con il punto che è “dp”, come mostrato nella figura seguente:

Configurazione SSD
Configurazione SSD

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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *