Salve a tutti!
Ho un problema, derivante dal fatto che sul software non sono particolarmente bravo:
sto cercando di pilotare 6 digit 7 segmenti ad anodo comune tramite un HFE4543 per la parte di selezione del segmento e un HFE4028 per la selezione della cifra.
Volevo chiedervi una mano per cominciare a visualizzare un numero.
Il BCD funziona con 4 livelli HIGH o LOW in base ai quali ho un numero da 0 a 9.
Pensavo di fare le definizioni delle cifre (c0,..., c9) come array di valori alti e bassi.
La stessa cosa pensavo di fare con le cifre.
Il problema è che non ho idea di come passare dal numero in cifra a una lista di istruzioni su quali pin tenere HIGH e quali LOW per visualizzare la cifra corretta (intanto) e poi visualizzarla sul digit corretto.
/*digit1 prima a destra dei secondi, digit6 prima a sinistra delle ore*/
#define A0=2;
#define A1=3;
#define A2=4;
#define d1[]{LOW,LOW,HIGH};
#define d2[]{LOW,HIGH,LOW};
#define d3[]{LOW,HIGH,HIGH};
#define d4[]{HIGH,LOW,LOW};
#define d5[]{HIGH,LOW,HIGH};
#define d6[]{HIGH,HIGH,LOW};
int digit[]{A2,A1,A0};
#define B0=5;
#define B1=6;
#define B2=7;
#define B3=8;
#define c0[]{LOW,LOW,LOW,LOW];
#define c1[]{LOW,LOW,LOW,HIGH};
#define c2[]{LOW,LOW,HIGH,LOW};
#define c3[]{LOW,LOW,HIGH,HIGH};
#define c4[]{LOW,HIGH,LOW,LOW};
#define c5[]{LOW,HIGH,LOW,HIGH};
#define c6[]{LOW,HIGH,HIGH,LOW};
#define c7[]{LOW,HIGH,HIGH,HIGH};
#define c8[]{HIGH,LOW,LOW,LOW};
#define c9[]{HIGH,LOW,LOW,HIGH};
int cifra[]{B3,B2,B1,B0};
#define SEC=9; /*4 led blu che segnano i secondi. sono collegati al digit6 prima a sinistra delle ore*/
void setup() {
pinMode(AO.OUTPUT);
pinMode(A1.OUTPUT);
pinMode(A2.OUTPUT);
pinMode(B0.OUTPUT);
pinMode(B1.OUTPUT);
pinMode(B2.OUTPUT);
pinMode(B3.OUTPUT);
pinMode(SEC.OUTPUT);
}
void loop() {
}
Intanto ho scritto questo però ripeto, non so come passare dalla cifra ai comandi da dar eper accendere i segmenti esatti.
Grazie mille
Riccardo