libreria per decoder bcd-7segmenti hcf4511be

Ciao a tutti , è da un pò che smanetto con questo circuito integrato che permette di gestire un display a led 7 segmenti AD ANODO COMUNE usando solamente 4 linee dati , è inoltre possibile collegare alle sue uscite più display e gestirli con il multiplexing , ma questo è ancora in fase di sperimentazione , comunque l'integrato è semplice da usare ma per un newbie può essere un problema , quindi ho deciso di sviluppare una libreria che rende il ttutto più semplice , in allegato si trova la cartella che và aggiunta in Arduino\libraries , funziona con tutti gli ide e teoricamente è compatibile con glia attiny (devo finire il test)
istruzioni per l'uso:

*/ come prima cosa bisogna creare un'oggetto hcf4511 e dichiarare i pin delle linee dati seguendo l'ordine (a,b,c,d)
hcf4511be nomeoggetto(1,2,3,4);

*/poi quando si vuole mostrare un numero sul display si usa il comando sendOut (il valore deve essere di tipo int)
nomeoggetto.sendOut(8);

spero che possa tornare utile a qualcuno , il circuito applicativo consiste nel collegamento diretto fra decoder e display (o eventualmente con alcune resistenze di limitazione) e le linee di settaggio del display sono BL 1 ,LT 1, LE 0 , per i collegamenti al display riferirsi al datasheet allegato insieme alla libreria ,
spero interessi a qualcuno , ciao niko

datasheet.pdf (331 KB)

hcf4511be.rar (1 KB)

Ciao, ottimo lavoro, ho usato la versione TTL HCT di questo integrato nel mio Capacimetro Digitale TTL; quando uscirà l'articolo su Elettronica In ci sarà un ottimo approfondimento su questo e gli altri integrati TTL usati (il circuito è un "vintage", senza microcontrollori)

Consiglio decisamente di usare la versione 74HC/HCT4511 in coppia con il microcontrollore, consuma molto meno e non c'è il rischio di incompatibilità dei livelli logici che nella serie originale CD (o HCF) sono diversi da quelli attuali, soprattutto il livello L che può arrivare a 1,5V, entrando quindi nella cosiddetta "zona indeterminata", cioè quella fascia in cui un segnale non viene riconosciuto né come H né come L.

I tre segnali BL, LT, LE hanno un significato ben preciso, mi permetto di approfondirli perché potrebbero tornare utili per applicazioni diverse:
BL (Blank): se è impostato a 1 il display funziona normalmente, se impostato a 0 i segmenti vengono spenti; questa cosa può tornare utilissima per esempio se si volessero spegnere i display quando mostrano 0 non significativi. Una lettura su 4 display del valore 23 sarebbe visualizzata come 0023; volendo si può impostare il BL dei primi due display a 0 e così si leggerebbe solo 23; naturalmente la cosa va gestita correttamente via software, nel tuo caso.
LT (Lamp Test): se è impostato a 1 il display funziona normalmente, se è impostato a 0 effettua un test di funzionamento dei segmenti accendendoli tutti in modo fisso, quindi ogni display mostra la cifra "8".
LE (Latch Enable): è la memoria, se è impostato su 0 il display mostra continuamente la cifra che il 4511 "riceve" tramite gli ingressi QA,QB,QC,QD; se invece viene impostato a 1 il display si "blocca" sull'ultima cifra visualizzata, anche se gli stanno arrivando combinazioni diverse. Questa funzionalità è utile quando i display vengono usati come contatori; in pratica per tutta la fase di conteggio il display mostra la lettura precedente in quanto l'LE è bloccato su 1, a fine conteggio questo pin si manda per un istante su 0 e le cifre dei dispaly si aggiornano, quindi si riporta subito su 1 per iniziare il nuovo conteggio. Questa è la tecnica che ho dovuto usare per il mio Capacimetro.

Spero che tu non ti senta "invaso" il Topic. Ciao.

Spero che tu non ti senta "invaso" il Topic. Ciao

No , non ti preoccupare , anzi sono precisazioni molto utili , sinceramente non mi ero avventurato molto nelle linee di controllo ma si potrebbe predisporre una variante della libreria che offrendo il controllo di alcuni di questi segnali possa offrire molte più funzioni , io ho utilizzato questo integrato in un progetto dove dovevo controllare dei display con un'assorbimento per segmento che arrivava a 40mA e con i quali rischiavo di bruciare il microcontrollore .
Ora volevo fare qualche piccolo esperimento di Multiplexing collegando per esempio due display in parallelo al decoder e controllare gli anodi separatamente attraverso dei transistor , credi che possa funzionare ?
In che numero di elettronica in dovrebbe uscire il tuo progetto ?
Ciao Niko

nikone:

Spero che tu non ti senta "invaso" il Topic. Ciao

No , non ti preoccupare , anzi sono precisazioni molto utili , sinceramente non mi ero avventurato molto nelle linee di controllo ma si potrebbe predisporre una variante della libreria che offrendo il controllo di alcuni di questi segnali possa offrire molte più funzioni , io ho utilizzato questo integrato in un progetto dove dovevo controllare dei display con un'assorbimento per segmento che arrivava a 40mA e con i quali rischiavo di bruciare il microcontrollore .

Anche se apparentemente tollerano la corrente elevata, è decisamente consigliabile usare delle R di limitazione da 220-330 ohm (una per ogni segmento), alla lunga l'integrato "parte".

Ora volevo fare qualche piccolo esperimento di Multiplexing collegando per esempio due display in parallelo al decoder e controllare gli anodi separatamente attraverso dei transistor , credi che possa funzionare ?

decisamente sì, cerca il "micrologio" di Leo, anche sul suo sito, trovi un bel software da questo punto di vista.

In che numero di elettronica in dovrebbe uscire il tuo progetto ?
Ciao Niko

ora è in Redazione, certamente non prima di ottobre, ma comunque, come sempre, appena esce l'articolo do' l'avviso sul Forum, peraltro per questo progetto tempo fa ho aperto un Topic OT, quindi certamente aggiungerò lì il post di avviso.
Ciao

Ok , grazie per le info , spero esca presto che ho intenzione di costruirmi il capacimetro
Ciao Niko