fgiorgio Inserito: 27 ottobre 2014 Segnala Inserito: 27 ottobre 2014 Buongiorno a tutti, ho un grosso problema con un circuito che vorrei realizzare. Vorrei create un grande display 7-seg, ogni segmento è composto da diversi led, il tutto viene pilotato dal MAX7219 che però non supporta carichi notevoli, e perciò ho pensato ad un circuito driver simile a quello descritto nel link seguente: http://embedded-lab.com/blog/?p=7628 Il mio prototipo prevede l'utilizzo del ULN2003 al posto del ULN2803, e del 74LS04 come inverters al posto del 74HC54. Il tutto sembrerebbe funzionare bene, ma ho un problema (che si vede anche nella foto seguente), ovvero quando il led di un determinato segmento per un ben determinato digit si accende, si accendono in modo lieve anche tutti i led relativi a tale segmento, ma in tutti i digit. Non riesco a venire a capo del problema, sapreste aiutarmi?? Grazie mille
fisica Inserita: 27 ottobre 2014 Segnala Inserita: 27 ottobre 2014 Il mio prototipo prevede l'utilizzo del ULN2003 al posto del ULN2803, e del 74LS04 come inverters al posto del 74HC54. devi porre attenzione nelle sostituzioni, le famiglie logiche non vanno mai incrociate, specie se hanno tecnologie diverse. Quindi tieni conto che 74HC540 e LS04 sono diversi. Non è che il particolare segmento è quello che stai pilotando con la circuitazione diversa? Infatti ULN2003 e 2803 differiscono per il numero di canali, uno ne ha 7 e l'altro 8. Quindi se le uniche varianti che hai fatto sono quelle che hai scritto, un canale come lo stai gestendo? Poi, sempreche' lo schema sia proprio quello, e dici di avere molti led per segmento, come sono collegati? con 5V non li puoi certamente aver messi in serie...
fgiorgio Inserita: 27 ottobre 2014 Autore Segnala Inserita: 27 ottobre 2014 Per effettuare dei test sto usando un singolo led per segmento con una opportuna resistenza di limitazione, al momento sto usando solamente 2 digit (nel progetto finale me ne serviranno semplicemente 4) quindi l'ULN2003 con 7 canali basta e avanza. Come inverter ho provato 74LS04, ma anche 74HC04 e CD40106. Ho anche provato a rimuovere l'inverter e collegare le uscite digit del MAX7219 nel ULN2003, il risultato è che giustamente i due digit sono invertiti, ma il problema permane, quindi mi vien da escludere che il problema risieda negli inverter.
fisica Inserita: 27 ottobre 2014 Segnala Inserita: 27 ottobre 2014 IL circuito e' classico, non presenta cose strane e dovrebbe andare. Riguarda il tuo montaggio, i ritorni delle masse e aggiungi dei condensatori di filtro sulle alimentazioni, che non ne vedo.
fgiorgio Inserita: 27 ottobre 2014 Autore Segnala Inserita: 27 ottobre 2014 Ho controllato tutto, i collegamenti sono esatti, ho aggiunto dei condensatori da 10uF sulle alimentazioni (gli stessi che sul sito arduino consigliano per il max7219). Il problema rimane invariato. Ho controllato i datasheet dei ULN2003 e ULN2803, hanno dei tempi di commutazione di circa 1us, che non dovrebbero creare problemi su una frequenza di 800Hz del MAX7219, quindi escluderei problemi di latenza del ULN2003.
fisica Inserita: 27 ottobre 2014 Segnala Inserita: 27 ottobre 2014 Restare con i piedi per terra. se ad un particolare comando si accendono tutti i segmenti (anche se poco), allora sta scorrendo corrente. Per capire da dove scorre basta un tester e confrontare la linea del segmento incriminato (pilotaggio, selezione) e quella di un segmento corretto, confrontando le due condizioni acceso/spento e spento/acceso. Ci saranno delle differenze. Da quelle differenze si risale all'inghippo, visto che il circuito e' controllato e i componenti efficienti.
fgiorgio Inserita: 27 ottobre 2014 Autore Segnala Inserita: 27 ottobre 2014 Non so quanto possa servire misurare un segnale a 800Hz con un tester, ho un piccolo aggiornamento che dovrebbe indicare che il problema risiede effettivamente nel ULN2003: avere una resistenza di limitazione per ogni segmento, per ogni digit, era effettivamente inutile, quindi ho inserito una sola resistenza per ogni segmento e collegato i segmenti tra loro dopo le resistenze. Facendo questo ho constatato che il problema della lieve accensione errata di led è visibilmente diminuito ma non del tutto scomparso. Visto che ci siamo vorrei porre un quesito da inesperto: avendo un segnale asincrono come quello che fuoriesce dal max7219, è possibile visualizzarne la forma d'onda nel dettaglio in una determinata frazione temporale con un oscilloscopio, in modo da poter valutar fare tutte le valutazioni necessarie?
fisica Inserita: 27 ottobre 2014 Segnala Inserita: 27 ottobre 2014 ok, schema giusto cablaggio errato. l'importante e' trovare. I segnali del micro sono tutt'altro che asincroni, altrimenti non funzionerebbe nulla. Forse intendi asincroni rispetto al mondo, questo si. Per superare il problema scegli il metodo di usare il canale oscilloscopio sinc esterno, e lo applichi per esempio al filo del punto, o di qualsiasi digiti (non segmento), dopodiche' con le altre due sonde guardi quello che vuoi. p.s. con un tester si vede tutto, poco importa che il segnale sia a 800Hz, vedrai una media, ma che sara' sempre confrontabile con altri segnali teoricamente identici.
fgiorgio Inserita: 27 ottobre 2014 Autore Segnala Inserita: 27 ottobre 2014 Ad avercelo un oscilloscopio, sono sempre più convinto che devo comprarlo perchè mi sta risultando indispensabile in più di una occasione, ma non so quanto investire in uno strumento del genere e su quale modello visto il mio uso pressochè didattico e hobbistico. Appena posso faccio delle misurazioni col tester.
fisica Inserita: 28 ottobre 2014 Segnala Inserita: 28 ottobre 2014 Hai chiesto come fare una misura ma non hai un oscilloscopio... sigh Prendilo come un vantaggio! ricorda che con un tester puoi capire la maggior parte delle situazioni, ragionando. E' molto di aiuto, specie quando si impara, perché andare a caccia dei pelesimi richiede anche la capacità di capirli, e questo avviene con l'esperienza. Come in ogni cosa. Quindi risparmia i soldi dell'oscilloscopio, e usali per comprare qualche buon libro per gente che inizia, puoi comprare anche libri di 40 anni fa, le regole dei giochi non sono cambiate troppo. in fondo Gli integrati che stai usando sono di quei tempi!
accacca Inserita: 28 ottobre 2014 Segnala Inserita: 28 ottobre 2014 Forse mi sbaglio ma tu non hai realizzato il circuito uguale a quello del link Dovrebbero esserci solo 7 resistenze e dovresti fare il multiplex dell'accensione delle cifre sull'ULN2003 Se non interpreto male la foto vedo 7 resistenze per ogni digit (8led) Se la mia osservazione è corretta forse dovresti specificare meglio il tuo circuito
fgiorgio Inserita: 28 ottobre 2014 Autore Segnala Inserita: 28 ottobre 2014 Infatti hai ragione, quando ho fatto la foto avevo una resistenza per ogni led, il mio progetto è simile a quello del link che poi ho scoperto successivamente. Guardando quello del link mi sono accorto che effettivamente non è necessario avere tutte quelle resistenze quindi attualmente ho montato solo una resistenza per ogni segmento. Dopodichè le uniche differenze tra il mio progetto e quello del link sono ULN2003 al posto del ULN2803, 74LS04 al posto del 74HC54, e i condensatori di filtro da 100nF, devo comprarli ma ho testato con 10uF senza esiti positivi. Prima di procedere all'acquisto dei componenti esatti di quel progetto, posto qui di seguito le misure fatte con un tester analogico sui capi del led: LED ACCESO: V=440mV I=1mA LED ERRONEAMENTE ACCESO: V=80mV I=2uA LED SPENTO: quando si accendono i led di altri digit V=-360mV I=0mA, quando si accendono altri led sullo stesso digit V=-160mV I=0mA
fgiorgio Inserita: 4 novembre 2014 Autore Segnala Inserita: 4 novembre 2014 Stamane mi sono arrivati i componenti che aspettavo, così che ho provato il circuito così come rappresentato in questo progetto, che allego nuovamente: http://embedded-lab.com/blog/?p=7628 Risultato: medesimo problema, sempre il solito led che si accende quando non deve. Ora mi rimangono solamente i BC327 che sto ancora aspettando, da provare sulle linee dei digit. Mi sembra una maledizione questa.
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