Vai al contenuto
PLC Forum


BCD to 7 Segment con output pnp - per pilotare display ad anodo comune


Simons

Messaggi consigliati

salve a tutti...

vorrei multiplexare 4 display con un pic16f876 usando una porta come output BCD e 4 pin per l'enable dei display.

per evitare gli sfarfallii volevo usare dei driver latchati..

possedendo display ad anodo comune ho cercato a giro dei driver con output pnp ma ho trovato solo il CD4511 che ha output per i display ad anodo comune, quindi NPN e lo stesso modello però del tipo HC con logica più veloce...

quindi volevo sapere una cosa:

se multiplexo i display senza latch quindi mappando i 7 segmenti su una intera porta e usando un'altra porta per 4 enable, anche ad alta frequenza ho sfarfallii?

grazie a chi mi aiuterà

simons

Link al commento
Condividi su altri siti


Concordo con la tua scelta. Secondo me non hai sfarfallio a patto che tu accenda i digit ad una frequenza minima.

Se non ricordo male bastano 25Hz Poichè tu hai quattro digit devi accendere i display a c100Hz minimi. Ovviamente più sali in frequenza e meglio è.

C'è però il limite superiore oltre il quale non puoi andare altrimenti il tempo di accensione è troppo breve.

Io fossi in te userei una frequenza tra 500Hz/800Hz.

Link al commento
Condividi su altri siti

bene grazie della risposta wink.gif

un'ultima cosa...

come posso misurare la frequenza di un'onda quadra con il pic? devo usare un convertitore frequenza-tensione e poi usare l'ingresso analogico del pic??

grazie smile.gif

Link al commento
Condividi su altri siti

forse ho trovato il modo...

utilizzando l'ingresso INT del 16f876 posso incrementare un contatore mediante l'interrupt, e poi con un altro timer interno (ad es il timer2),sfruttando il suo interrupt leggo quanti impulsi ho sul contatore e poi faccio il conto della frequenza

è fattibile? se poi gli impulsi cadono oltre la frequenza dell'interrupt del timer2 allora vado fuori risoluzione ma comunque non è un problema...

smile.gif

Link al commento
Condividi su altri siti

Sì Simons fai così.

Metti il timer in free run ad una certa frequenza.

Ad ogni interrupt esterno leggi il valore del timer e per differenza ti calcoli il numero tic tra due interrupt successivi.

Conoscendo la frequenza di clock del timer puoi ottenere la frequenza dell'interrupt,

Ovviamente il clock del timer dev'essere almeno uno o due ordini di grandezza superiore alla massima frequenza che vuoi misurare altrimenti ottieni solo una misura grossolana della frequenza.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...