Simons Inserito: 8 settembre 2008 Segnala Share Inserito: 8 settembre 2008 salve a tutti..avevo intenzione di costruirmi un pannellino a led a matrice composto da almeno 16 righe e 16 colonne di led da 3mm per visualizzare figure e scritte..avevo intenzione di pilotarlo con un pic perchè non so programmare altro e vi chiedevo come posso fare per multiplexare le 16 righe con le 16 colonne avendo molte meno uscite (sul 16F876 mi pare 23 ma non volevo usarle tutte.)come potrei fare?grazie dell'aiuto Link al commento Condividi su altri siti More sharing options...
tesla88 Inserita: 8 settembre 2008 Segnala Share Inserita: 8 settembre 2008 Premetto che non mi intendo di PIC , però se tu hai 16 righe e 16 colonne potresti usare 4 uscite come 4 bit per l'indirizzamento delle righe 4 per le colonne , lavorando in binario, e poi usare un altra uscita per abilitare o meno il punto della matrice scelto, quindi ti servirebbero due mux 4 a 16 (credo) , e 9 uscite!Se AndreA passa di quà chiarirà molto meglio il concetto!! Ciao Link al commento Condividi su altri siti More sharing options...
Simons Inserita: 8 settembre 2008 Autore Segnala Share Inserita: 8 settembre 2008 per l'uso dei multiplexer ok ho trovato già qualche integrato che mi sarà utile,però una domanda.. con il multiplexer, o meglio con 1 di riga e 1 di colonna, si attiva un solo led, quindi se ho bisogno di accendere su una riga più di un led per volta devo multiplexare ogni volta la colonna. mi spiego. accendo la riga 1. ho bisogno che i led 3 5 6 16 siano accesi. allora lasciando la riga 1 accesa, accendo in sequenza la colonna 3 poi la 5 e così via..è questo il procedimento? perchè con 16 x 16 led mi sembra un po' complicato no? Link al commento Condividi su altri siti More sharing options...
arrow Inserita: 8 settembre 2008 Segnala Share Inserita: 8 settembre 2008 Ciao Sò che non è esattamente quello che stai cercando ma potrebbe essere un punto di partenza ... l'avevo visto anni fà e l'ho ritrovato..Pannello scorrevole Link al commento Condividi su altri siti More sharing options...
Simons Inserita: 8 settembre 2008 Autore Segnala Share Inserita: 8 settembre 2008 si avevo già trovato in rete quel pannello tempo fa ma non so come possa aiutarmi perchè non so leggere il codice assembler del pic e quindi non so come accendere i vari led..il problema è solo quello... Link al commento Condividi su altri siti More sharing options...
tesla88 Inserita: 8 settembre 2008 Segnala Share Inserita: 8 settembre 2008 Si .....dovrebbe essere il ragionamento giusto, tutto dipende dalla velocità di esecuzione e delle uscite del pic, devi essre in grado di inviare tutti i dati delle uscite , quindi 256 combinazioni suppongo , in un tempo breve , perchè non si veda il multiplex a occhio devi fare almeno 20 passaggi al secondo se non di più! Link al commento Condividi su altri siti More sharing options...
arrow Inserita: 8 settembre 2008 Segnala Share Inserita: 8 settembre 2008 CiaoHo letto il tuo post precedente:..non propio..se usi dei flip flop tri state (come i 74HC574 dello schema che ti ho linkato).Due per fare le 16 righe e due per fare le 16 colonne.Tutti gli 8 ingressi di ciascun IC saranno interfacciati al bus dati ,mentre "multiplexi" solo il segnale CLK.Ciò che metti sul bus dati ,rimane poi memorizzato nei flip fop quando viene "sparato" in uscita dal segnale CLK.Quindi ,in questo caso ,mentre attivi supponiamo la riga 1,devi solo attivare in successione CLK colonna 1->8 e CLK colonna 9->16 .. in questo modo con 32 step (azichè 256) ,"rinfreschi" tutti i led.. Potresti migliorare ulteriormente le cose con un bus a 16 dati (solo 16 step) con conseguente aumento della luminosità del display e probabile diminuzione nella complessità del programma ,ma dovresti usare 18 I/O.. Link al commento Condividi su altri siti More sharing options...
Simons Inserita: 8 settembre 2008 Autore Segnala Share Inserita: 8 settembre 2008 cioè in pratica mi stai dicendo di usare invece che un multi plexer 4->16 un multiplexer più piccolo così è acceso più di un led su una riga?non mi è ben chiaro il ragionamento del tuo ultimo post Link al commento Condividi su altri siti More sharing options...
arrow Inserita: 9 settembre 2008 Segnala Share Inserita: 9 settembre 2008 Ciao .. bè,non lo definerei "multiplexer più piccolo" sebbene la tecnica sia sempre basata sul multiplexing che però necessita di qualche I/O in più . In pratica ,anzichè "puntare" un led alla volta (dei 256),le informazioni della matrice riguardanti righe o colonne , arrivano un Byte alla volta prima di essere memorizzate nei flip flop.Per semplificare supponiamo di voler rappresentare in una matrice 8x8 una specie di bicchiere (mi è venuto così ), con un 74HC574 per le 8 righe e un'altro 74HC574 per le otto colonne,ciascuno con il suo CLK (il vero responsabile del multiplexing) ma con gli otto dati in ingresso in comune:totale 10 I/Origa 1__ 10000001riga 2__ 01000010riga 3__ 00100100riga 4__ 00011000riga 5__ 00011000riga 6__ 00011000riga 7__ 00011000riga 8__ 00111100colonna 12345678 Ora,supponiamo di partire da zero con tutti i led spenti:se intendi procedere per righe, dovrai procedere come segue:1) inviare sul bus dati il Byte "10000001"2) un inpulso CLK sulla memoria "colonna"3) inviare sul bus dati il Byte "00000001" (selezioni riga 1)4) un inpulso CLK sulla memoria "righe"5) si accendono tutti i led della riga 16) inviare sul bus dati il Byte "01000010"7) un inpulso CLK sulla memoria "colonna"8) inviare sul bus dati il Byte "00000010" (selezioni riga 2)9) un inpulso CLK sulla memoria "righe"10) si spegne la riga 1 e si accendono tutti i led della riga 2e così via per tutte le righe (8 step).. il resto non lo scrivo .. spero di essermi spiegato(e di non aver fatto confusione)..Dimenticavo..tra una riga e l'altra dovrai prima spegnere i led della riga precedente per non avere sovrapposizioni....ma mi fermo qui perchè non doveva essere una lezione di programmazione di pic per la quale non sono di sicuro un asso .. non sapevo come altro spiegarmi.Un'ultima cosa..nell'esempio precedente,ciascuna riga può essere interessata a pilotare fino a 8 led accesi (contrariamente alle colonne) quindi sarà necessario ricorrere a dei driver... Link al commento Condividi su altri siti More sharing options...
Simons Inserita: 9 settembre 2008 Autore Segnala Share Inserita: 9 settembre 2008 arrow+9/09/2008, 00:22--> (arrow @ 9/09/2008, 00:22) grazie mille la spiegazione è perfetta ho capito.. il bus dati a 16 bit lo posso avere, visto che il pic ha 23 uscite , ne uso 16 per il bus dati e 2 per i due clock.solo una cosa non mi torna. come mai devo spegnere i led tra una riga e l'altra?per i driver pensavo agli ULN2803 .. sono open collector dovrebbero andare bene. Link al commento Condividi su altri siti More sharing options...
arrow Inserita: 9 settembre 2008 Segnala Share Inserita: 9 settembre 2008 Ciao..meno male..ciò impiegato una notte a metterla insieme ..perchè,riferendoci sempre al mio esempio,nel punto 7) vedresti per un attimo la seconda stringa di dati di colonna (01000010) comparire sulla riga 1 e solo dopo il punto 9) comparirebbe in modo corretto sulla riga 2 (ricorda, rige e colonne rimangono memorizzate) ..certo questi sono solo particolari..magari esistono tecniche di programmazione diverse,o più raffinate..non chiedermi come fare tutto il resto perchè ,come ti ripeto,ho davvero poca esperienza in merito..(anche se mi piacerebbe avere il tempo e la voglia per imparare) Lo penso anch'io.. Link al commento Condividi su altri siti More sharing options...
Simons Inserita: 9 settembre 2008 Autore Segnala Share Inserita: 9 settembre 2008 ah ok adesso ho capito tutto!eventualmente una domanda, per ampliare il pannello e inserire più di 16 led uso lo stesso metodo frazionando una riga in ad esempio 2 parti ognuna da 16 led .. giusto? almeno il bus dati rimane sempre a 16 bit.grazie dell'aiuto Link al commento Condividi su altri siti More sharing options...
arrow Inserita: 9 settembre 2008 Segnala Share Inserita: 9 settembre 2008 Giusto! ..ovviamente aggiungendo un I/O per il CLK se vuoi fare 32x16 .. ( accidenti,vuoi fare un oscilloscopio per caso?) Link al commento Condividi su altri siti More sharing options...
Simons Inserita: 9 settembre 2008 Autore Segnala Share Inserita: 9 settembre 2008 arrow+9/09/2008, 13:28--> (arrow @ 9/09/2008, 13:28) no no voglio fare un pannellone per visualizzare delle scritte e dei simboli quindi avevo bisogno di una certa definizione...grazie dell'aiuto Link al commento Condividi su altri siti More sharing options...
tesla88 Inserita: 9 settembre 2008 Segnala Share Inserita: 9 settembre 2008 E' un progetto interessante , se poi lo fai come Hobby..................quando lo hai realizato magari pota qualche foto...........sono curioso!! Link al commento Condividi su altri siti More sharing options...
Simons Inserita: 9 settembre 2008 Autore Segnala Share Inserita: 9 settembre 2008 tesla88+9/09/2008, 22:41--> (tesla88 @ 9/09/2008, 22:41) spero anche io di realizzarlo in un tempo relativamente breve. in realtà non è per me ma per un mio amico .. lui salda tutti i led e il circuito e io mi occupo della programmazione.. eventualmente farò un altro pannello per me.. tanto le spese sono a carico suo Link al commento Condividi su altri siti More sharing options...
Simons Inserita: 9 settembre 2008 Autore Segnala Share Inserita: 9 settembre 2008 ah una domanda... eventualmente potrei aggiungere dei condensatori ad ogni riga per fare in modo che i led restino accesi un po' più a lungo e si eviti lo sfarfallino? Link al commento Condividi su altri siti More sharing options...
arrow Inserita: 10 settembre 2008 Segnala Share Inserita: 10 settembre 2008 (modificato) .. ..avresti un fastidioso effetto di sovrapposizioni..o qualcosa del genere e perderesti in definizione,inoltre il carico che vedrebbe il condensatore,è funzione del n° di led accesi in quella riga..e avrebbe tempi di scarica non costanti...... dal mio punto di vista..TEORIA BOCCIATA Ricordati di scegliere led ad alta efficenza e di usare una routine del softw. che garantisca tempi di attivazione uguali per ciascuna riga!..solo per curiosità:che linguaggio di programmazione usi per i pic?Ciao. Modificato: 10 settembre 2008 da arrow Link al commento Condividi su altri siti More sharing options...
Simons Inserita: 10 settembre 2008 Autore Segnala Share Inserita: 10 settembre 2008 arrow+10/09/2008, 09:02--> (arrow @ 10/09/2008, 09:02) non avevo pensato alle sovrapposizioni.. ok niente cond utilizzo il C compilato con CCS C Compiler... lo so sarebbe meglio assembler ma non so un'acca di quel linguaggio Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora