Questi display, generalmente hanno 7 pin (1 per ogni segmento) + 4 pin (1 per ogni cifra), più altri supplementari...
Gli 11 pin che collegano le cifre, li devi comandare con l'arduino sequenzialmente (nel senso che comandi una cifra alla volta: la velocità rende impercettibile lo spegnimento del display)
ecco un codice base, che ho già utilizzato:
// accendo solo il display 1
digitalWrite(d1, LOW);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
switch(pri){
case 0:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;
case 1:
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 2:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 3:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 4:
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 5:
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 6:
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 7:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;
case 8:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 9:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
}
delay(1);
questo è un codice che comanda solo una delle 4 cifre con il catodo in comune collegato al pin "d1", scrivendo la variabile pri: Questo codice è per display a Catodo comune (nel caso usi display anodo comune (come LTC-2623G: quindi è il tuo caso), devi invertire gli HIGH con i LOW e viceversa)...
NB: se noti disturbi sulle altre cifre aumenta il "delay", MAX 10ms...
Con questo metodo utilizzi 11 pin dell'Arduino, puoi ridurre i Pin utilizzati in due modi:
_attraverso un convertitore BCD sette segmenti (il TTL 7447 che viene accennato (quando compri un dispositivo logico TTL o CMOS devi dare importanza solo al numero; le lettere identificano cose secondarie es. la marca) è un convertitore BCD sette segmenti per display AC) adatto al tuo display nel caso sia anodo o catodo comune... NB: il codice BCD NON cambia nel caso si comandi un display AC anzichè CC (se 1=0001 con display a catodo comune, sarà 1=0001 anche con quelli a anodo comune invece di 1=1110)... con questo metodo passi da 11 pin (7+4) a 8 pin (4+4);
_attraverso le Porte NAND e NOT tenti di fare la seguente tabella della verità:
tabella per display AC
| | A | B || d1 | d2 | d3 | d4 | |
| - |
| | 0 | 0 || 0 | 0 | 0 | 1 | |
| | 0 | 1 || 0 | 0 | 1 | 0 | |
| | 1 | 0 || 0 | 1 | 0 | 0 | |
| | 1 | 1 || 1 | 0 | 0 | 0 | |
tabella per display CC
| | A | B || d1 | d2 | d3 | d4 | |
| - |
| | 0 | 0 || 1 | 1 | 1 | 0 | |
| | 0 | 1 || 1 | 1 | 0 | 1 | |
| | 1 | 0 || 1 | 0 | 1 | 1 | |
| | 1 | 1 || 0 | 1 | 1 | 1 | |
In questo modo da 11 pin (7+4) ne utilizzi solo 9 (7+2)...
Puoi utilizzare questo metodo insieme a quello di prima passando dagli 11 pin (7+4) a 6 pin (4+2)...
scegli quello che ti fa più comodo...
NB: CC=catodo comune, AC=Anodo comune (prima che qualcuno mi chieda se esistano i display a corrente alternata)
NB: dato che devi collegare i 7 segmenti con una loro resistenza in serie, i pin del Catodo (o Anodo) comune vanno collegati direttamente alle uscite a loro corrispondenti...
Edit: Per pura curiosità ho provato a fare la tabella della verità qui sopra con il convertitore BCD / codice display 7segmenti e ci sono riuscito... nel caso si usi un 7447 si devono collegare il pin 6 (2^3) e il pin 7 (2^0) a massa, e utilizzare i pin 12 (b), 10 (d) [o il pin 9 (e)], 11 (c) [o 15 (f)] e 14 (g) per controllare i display; NB: il pin 10 può essere scambiato con il pin 9 e il pin 11 con il pin 15, a seconda di quello che vi fa più comodo...
Il convertitore deve essere adatto al display... Il 7447 va bene per display AC