7 Segments Display
Cos’è un Display a 7 Segmenti?
Section titled “Cos’è un Display a 7 Segmenti?”Un display a 7 segmenti è semplicemente un insieme di 8 LED normali (7 segmenti + il punto decimale) racchiusi in una scatola di plastica e disposti a formare una cifra. Probabilmente li hai già visti in vita tua nei supermercati per mostrare il numero della persona in attesa, nelle sveglie digitali, nei display industriali.
Ogni segmento ha un nome preciso, dalla lettera A alla lettera G, più DP per il punto decimale:
Per disegnare un numero si accendono solo i segmenti necessari. Per fare il numero “1” si accendono i segmenti B e C, mentre per fare il numero “8” si accendono tutti. Per fare il numero “3” si accendono A, B, G, C e D.
Catodo Comune vs Anodo Comune
Section titled “Catodo Comune vs Anodo Comune”Prima di collegare qualsiasi cosa, bisogna sapere che esistono due varianti di display a 7 segmenti, confonderle significa avere un display che non funziona o che mostra cifre invertite.
La differenza sta nel piedino COM (Comune), quello centrale:
Catodo Comune (Common Cathode)
Section titled “Catodo Comune (Common Cathode)”Il COM è collegato al GND (negativo). Per accendere un segmento si porta il suo pin a HIGH (5V).
Anodo Comune (Common Anode)
Section titled “Anodo Comune (Common Anode)”Il COM è collegato al 5V (positivo). La logica è invertita: per accendere un segmento si porta il suo pin a LOW (0V).
Collegamento
Section titled “Collegamento”Il display ha 10 piedini (5 nella fila superiore, 5 in quella inferiore). Ecco come collegarli:
Il Comune (COM): il piedino centrale di entrambe le file è il COM. Va collegato al GND di Arduino tramite una resistenza da 220Ω. I due COM sono collegati internamente, quindi basta usarne uno.
I Segmenti (A-G e DP): gli altri 8 piedini controllano i singoli segmenti e vanno collegati a 7 (o 8, se si vuole usare anche il punto) pin digitali di Arduino. Una scelta comoda è usare i pin dal 2 all’8.
Codice
Section titled “Codice”Definire i Pin
Section titled “Definire i Pin”Come sempre, i pin vanno dichiarati con #define in cima al file:
Scrivere una Cifra
Section titled “Scrivere una Cifra”Controllare i segmenti è identico al controllo di un LED normale. Per scrivere il numero “3” (segmenti A, B, G, C, D accesi):
Usare le Funzioni per Ogni Cifra
Section titled “Usare le Funzioni per Ogni Cifra”Scrivere sette digitalWrite() ogni volta che si vuole mostrare un numero diventa rapidamente caotico. La soluzione naturale è creare una funzione per ogni cifra:
La funzione spegniTutto() all’inizio di ogni cifra garantisce che i segmenti della cifra precedente vengano spenti prima di accendere quelli nuovi.
Il loop() risultante è quindi pulito e leggibile: