Vai al contenuto
PLC Forum


Comandare 4 Display 7 Segmenti Con Pic16f84 - comandare 4 display 7 segmenti con pic16


stefano_

Messaggi consigliati

salve..

dopo vari tutorial "pic by example" e "come programmare in c" mi sono deciso di fare un semplice progettino / programmino per vedere come butta..

premmetto che non sono esperto di elettronica anzi.. ne capisco poco o nulla vorrei chiedervi una cosa:

avevo in mente di controllare 2 coppie display 7 segmenti col 16f84 entrambe utilizzate per formare un numero da 0 a 15 per esempio, il problema è che anche utilizzando i cosiddetti display driver ho bisogno di 8 uscite per comandare 2 display quindi avrei bisogno di 16 uscite (che il 16f84 non ha) per comandarne 2 !!

Come posso risolvere il problema ? cambiando pic ? Bho !!

Ripeto non me ne vogliate se dico cavolate

ciao ciao

Link al commento
Condividi su altri siti


ciao

devi multiplexare, cioe' per un po' di tempo accendere un display

e per un po' di tempo l'altro.

"un po' di tempo" potrebbe essere 1 millisecondo.

in sintesi usi 7 bit per i segmenti mentre altri 2 bit per abilitare

il display destinato all'accensione.(dandogli il "comune"

quindi con 9 bit puoi accendere UNAcoppia di display

per accendere un terzo display ti basta un altra uscita soltanto e cosi' via.

ciao

dario

Link al commento
Condividi su altri siti

si veramente ho letto tutto l'articolo solamente che mi hanno confuso un pò le idee,

in pratica io vorrei fare un segna mi spiego:

- 4 display per visualizzare i punteggi di 2 sqadre i punteggi arrivano a 21 quindi ho bisogno di 2 display per ogni punteggio

- 2 pulsanti per incrementere il punteggio delle 2 squadre

- 2 pulsanti per sottrarre il punteggio delle 2 sqaudre

per fare ciò mi basta un pic16f84 ? Mi dovrebbe bastare !!!

e poi sono obbligato ad utilizzare il 4511? se si quanti ?

Grazie ancora a tutti

Link al commento
Condividi su altri siti

stefano_+-->
(stefano_)
Dal punto di vista elettrico per bastare basta, naturalmente meno fili si usano piu'diventa complesso il software.

Lo schema seguente permette di comandare 4 digit, leggere 4 pulsanti e avanza anche un pin. Le uscite RA0..RA3 vanno attivate una alla volta ciclicamente, queste accendono il digit corrispondente e permettono di leggere attraverso RA4 lo stato del relativo pulsante. Se si fa in modo di cambiare la linea attiva ogni pochi millisecondi (al massimo ogni 5) i display appariranno tutti accesi e i pulsanti verranno letti almeno 50 volte al secondo.

mux_display.gif

ciao Claudio F

Link al commento
Condividi su altri siti

Eh si. Di solito ci sono due pin che fanno da catodo comune e sono collegati assieme, mi sembra i centrali (almeno nei disp. che ho usato io).

ciao Claudio F

Link al commento
Condividi su altri siti

di nuovo ciao a tutti

per Claudio F

mi potresti spiegare in parole povere il funzionamento del circuito e soprattutto la funzione del collegamento dei pulsanti su RA4 ??

Ti ringrazio anticipatamente.

PS. Se non hai voglia di rispondermi ti capisco, non ti preoccupare..

ciao e grazie ancora.

Link al commento
Condividi su altri siti

Non e' la voglia... e' il tempo :P

La resistenza verso massa su RA4 tiene l'ingresso normalmente a 0 (e per questo si chiama resistenza di pull down). Quando si attiva una delle uscite RA0..RA3 (e ne va attivata sempre solo una alla volta) se il pulsante collegato a quella linea e' chiuso trasmette l' 1 verso RA4. Questo vuol dire che se mandi a 1 RA0 e trovi che RA4 e' a 1 sai che il primo pulsante e' premuto. Quando attivi RA1 puoi sapere lo stato del secondo pulsante e cosi' via.

I diodi servono per far si che la tensione dei +5V proveniente dal pulsante chiuso non vada verso gli altri pulsanti, che altrimenti se fossero a loro volta chiusi la cortocircuiterebbero a massa attraverso le altre uscite in quel momento a 0. Con i diodi invece i pulsanti possono anche essere premuti tutti e 4 contemporaneamente senza che si verifichino anomalie (se sei assolutamente certo di premere un solo pulsante alla volta i diodi possono essere omessi).

ciao Claudio F

Link al commento
Condividi su altri siti

sorpresa !!!!

eccomi qua di nuovo....

allora, ho fatto tutto quello che mi hai detto...... eh per poco non funzionava davvero ???

a parte gli scherzi volevo sapere se nello schema che mi hai postato il pulsante ha l'antirimbalzo oppure no.

Per adesso ho fatto la prova con un pulsante ed un display, ogni volta che schiaccio il pulsante il numero sul display incrementa d 1.Il problema è che non sempre ogni volta che schiaccio il pulsante il display incrementea e non so se dipende dai "disturbi" oppure dal programma che ho fatto io ( cosa mooolto probabile )..

come sempre ringrazio anticipatamente

Buon fine settimana...

Link al commento
Condividi su altri siti

Non c'e' nessun antirimbalzo hardware, anche perche' con la lettura "a scansione" andrebbe poco d'accordo. Sentito cosi', a parte il problema software, potrebbe essere il pulsante che qualche volta non chiude bene. Da quanto e' la R di pull-down su RA4? Credo sia meglio non metterla piu' grande di 4,7K perche' alcuni contatti hanno bisogno di un minimo di corrente per chiudere in modo deciso... proverei con 1K.

ciao Claudio F

Link al commento
Condividi su altri siti

scusate,

mi sono dimenticato di dirvi che non ho utilizzato il transistor "il pic sembra reggere" visto he è solo una prova temporanea comunque ho provato con una R da 10K e con una da 170 Ohm ma non cambia nulla,

adesso provo anche con 1K speriamo bene !!!!!!

per adesso grazie.... poi vi faccio sapere

ciao ciao

Link al commento
Condividi su altri siti

Ciao,

se non hai problemi di spazio e se devi visualizzare i soli numeri (anche se potresti visualizzare alcuni caratteri) , per semplificare il software ti consiglio di inserire un bel 4511

così facendo invii direttamente il carattere bcd al display...

-ti eviti tante scocciature software :D

-liberi qualche linea

-abilitando un unico segnale puoi fare un test dei display

-e ricorda che la gestione del punto è sempre separata=senza 4511 7 linee + 1 linea per il punto, con il 4511 4 linee + 1 per il punto + 1 (opzionale) per il test! In verità il 4511 ha altri pin di controllo ma collegandoli a massa o a vcc li elimini dalla gestione software, vale lo stesso per il pin di test.

Macbet

Link al commento
Condividi su altri siti

ok ragazzi il problema come pensavo era software ed ora ho risolto quindi funzia che una meraviglia e l'antirimbalzo l'ho

fatto tramite software,

ora però mi è sorto un altro dubbio... perché nello schema che mi hai postato ci sono i transistor solo nel collettore e

non stanno pure nelle uscite del pic da RB0 a RB6 ????????

Come sempre tenete presente la mia ignoranza !!

ciao e grazie a tutti

Link al commento
Condividi su altri siti

Ciao,

le uscite del pic sono in grado di erogare sino a 20 mA e assorbire sino a 25 mA, per un totale massimo di 80 mA.

Supponendo di scegliere le resistenze sulla porta B per erogare 10 mA per ogni segmento del display, la porta dovrebbe fornire una corrente massima di 70 mA. Questa corrente esce dal catodo e và al transistor. Collegando il catodo direttamente a una uscita del pic questa dovrebbe assorbire tutti i 70 mA. Cosa impossibile. Tenendo conto del limite di 25 mA, ogni segmento dovrebbe essere alimentato con 25/7 = 3.5 mA per non usare il transistor.

Ciao.

Link al commento
Condividi su altri siti

queste considerazioni le hai fatte "considerando" che i 4 lcd li accendo multiplexandoli e quindi uno alla volta,

volendo per esempio inserire un pulsante per eseguire un test dei display e quindi facendo accendere tutti i led di tutti i display contemporaneamente devo inserire dei transistor anche nelle uscite da rb0 a rb6 vero ??

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...