Arduino (L2): scrivere su display a 7 segmenti

Il display a 7 segmenti è tra i devici elettronici più usati nella realizzazione di orologi, eliminacode e dove sia necessario, principalmente un valore numerico. In genere viene accoppiato ad altri display in modo tale da aumentare il numero di cifre. E’ anche possibile usare lettere e simboli. Il tutto avviene tramite l’accensione dei segmenti luminosi.

Cosa serve?

  • Arduino (o compatibile)
  • 9 Cavi
  • Breadboard
  • 1 Display a 7 segmenti
  • Alimentazione (cavo usb, batteria da 9V o trasformatore sempre da 9V)
  • Computer (Per programmare il software Arduino)

Come fare?

Collegare uno schermo a 7 segmenti è molto facile. Il componente elettronico si presenta con 10 pin, cinque nella parte alta e altrettanti in quella bassa. Si può distinguere la parte superiore da quella inferiore, poiché in quest’ultima è presente il punto sul display.

Il pin centrale della parte superiore del visualizzatore a 7 segmenti va collegato alla massa di Arduino. Poi partendo dal primo da sinistra a destra – sempre della parte alta – connetterlo al pin 2, il successivo al pin 3 e così via. Conclusa la prima parte scendere e, questa volta partendo da destra a sinistra – saltando però il pin centrale – connettere i pin 7,8,9 e 10. Terminato il cablaggio, caricare il programma. Nell’esempio sotto verrà visualizzato, un contatore da zero a nove seguito dalla scritta ciao a ciclo continuo.

int G=2;
int F=3;
int A=4;
int B=5;
int DP=6;
int C=7;
int D=8;
int E=9;

void setup(){
pinMode(G, OUTPUT);
pinMode(F, OUTPUT);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(E, OUTPUT);
pinMode(D, OUTPUT);
pinMode(C, OUTPUT);
pinMode(DP, OUTPUT);
}

void zero(){
digitalWrite(G, LOW);
digitalWrite(F, HIGH);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(E, HIGH);
digitalWrite(D, HIGH);
digitalWrite(C, HIGH);
digitalWrite(DP, LOW);
}
void uno(){
digitalWrite(G, LOW);
digitalWrite(F, LOW);
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(E, LOW);
digitalWrite(D, LOW);
digitalWrite(C, HIGH);
digitalWrite(DP, LOW);
}
void due(){
digitalWrite(G, HIGH);
digitalWrite(F, LOW);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(E, HIGH);
digitalWrite(D, HIGH);
digitalWrite(C, LOW);
digitalWrite(DP, LOW);
}
void tre(){
digitalWrite(G, HIGH);
digitalWrite(F, LOW);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(E, LOW);
digitalWrite(D, HIGH);
digitalWrite(C, HIGH);
digitalWrite(DP, LOW);
}
void quattro(){
digitalWrite(G, HIGH);
digitalWrite(F, HIGH);
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(E, LOW);
digitalWrite(D, LOW);
digitalWrite(C, HIGH);
digitalWrite(DP, LOW);
}
void cinque(){
digitalWrite(G, HIGH);
digitalWrite(F, HIGH);
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(E, LOW);
digitalWrite(D, HIGH);
digitalWrite(C, HIGH);
digitalWrite(DP, LOW);
}
void six(){
digitalWrite(G, HIGH);
digitalWrite(F, HIGH);
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(E, HIGH);
digitalWrite(D, HIGH);
digitalWrite(C, HIGH);
digitalWrite(DP, LOW);
}
void sette(){
digitalWrite(G, LOW);
digitalWrite(F, LOW);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(E, LOW);
digitalWrite(D, LOW);
digitalWrite(C, HIGH);
digitalWrite(DP, LOW);
}
void otto(){
digitalWrite(G, HIGH);
digitalWrite(F, HIGH);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(E, HIGH);
digitalWrite(D, HIGH);
digitalWrite(C, HIGH);
digitalWrite(DP, LOW);
}
void nove(){
digitalWrite(G, HIGH);
digitalWrite(F, HIGH);
digitalWrite(A,HIGH);
digitalWrite(B, HIGH);
digitalWrite(E, LOW);
digitalWrite(D, HIGH);
digitalWrite(C, HIGH);
digitalWrite(DP, LOW);
}
void lettera_C(){
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(DP, LOW);
}
void lettera_I(){
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, LOW);
}
void lettera_A(){
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(DP, LOW);
}
void lettera_O(){
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(DP, LOW);
}

void loop(){
zero();
delay(1000);
uno();
delay(1000);
due();
delay(1000);
tre();
delay(1000);
quattro();
delay(1000);
cinque();
delay(1000);
six();
delay(1000);
sette();
delay(1000);
otto();
delay(1000);
nove();
delay(1000);
lettera_C();
delay(1000);
lettera_I();
delay(1000);
lettera_A();
delay(1000);
lettera_O();
delay(1000);
}

Lascia un commento

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