byte values[]={
B0000001,
B0000010,
B0000010,
B0000100,
B0001000,
B0010000,
B0100000,
B1000000,
};
//Pin connected to ST_CP of 74HC595
int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;
void setup(){
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop(){
for(int i=0;i<10;i++){
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, values[i]);
digitalWrite(latchPin, HIGH);
delay(5000);
}
}
Nel mio post stavo predisponendo un sinottico a sette display comandati da sette Decoder bcd 4511, con gli ingressi A B C D in comune e gli, BI, e LT idem. Mentre gli EL sono separati. Ho provato con il codice allegato ma tutti i display rimangono abilitati. O meglio se io “MANUALMENTE” (non mettiamo per il momento integrati ed Arduino in mezzo) sposto uno o più EL da massa a VCC, avviene la disabilitazione e viceversa, MA...Rimangono in memoria i display accesi e se voglio cambiarli devo RESETTARE MANUALMENTE, togliendo e rimettendo tensione. Ora come posso fare un operazione di RESET nella maniera più pulita possibile?. Posto descrizione 4511 e mio codice con 74595 per le abilitazioni degli EL.
DESCRIZIONE
Il HEF4511B è un BCD a 7 segmenti
latch / decoder / driver con quattro ingressi di indirizzo ( DA ) a DD ,
un latch LOW attiva l'ingresso di abilitazione ( EL ) , un livello basso attivo
ripple di ingresso tranciatura ( BI ) , un ingresso di test LOW lampada attiva
( LT ) , e sette HIGH n - p - n transistore bipolare attiva
uscite segmento ( Oa a Og ) Quando EL è BASSO , lo stato delle uscite segmento ( Oa a
Og ) è determinato dai dati sul DA a DD .
Quando EL va ALTO , gli ultimi dati presenti su DA per
DD sono memorizzati i fermi e le uscite segmento
Resta stabile. Quando LT è , tutte le uscite LOW segmento
sono alte indipendente da tutte le altre condizioni di ingresso . Con
LT ALTO , un basso sulla BI costringe tutte le uscite segmento low .
Gli ingressi LT e BI non influenzano il circuito latch .