Offline
Newbie
Karma: 0
Posts: 12
|
 |
« on: February 14, 2013, 09:56:03 am » |
Salve a tutti. Sto controllando una matrice di LED 10X11 (110) con Arduino, utilizzando 8 dei suoi pinOUT come indirizzi per 2 DeMultiplexer che mi permettono il controllo riga-colonna per la singola accensione di ogni LED. Utilizzando alte frequenze, non percepisco lo sfarfallio ed ottengo l'immagine richiesta. Nell'esecuzione mi si presenta un problema: Oltre all'accensione dei LED controllati riga-colonna, ottengo delle accensioni non richieste (di luminosità più bassa) di LED che sono presenti in corrispondenza della riga o della colonna in cui almeno uno dei 110 LED viene attivato.Mi spiego meglio: XXOOOOOOOO Considerando queste due righe dove le X rappresentano i LED accesi e le O i LED spenti. OOOOOOXXOOUna volta eseguito il programma, che mi consente di attivare appunto i primi 2 LED (Colonna 0,1) della riga 0 e i LED 6 e 7 della riga 1, si verifica anzichè questa situazione: XXOOOOOOOO OOOOOOXXOOSi verifica ad esempio questa: XXOOOOOYOO OOOOOOXXOO Dove la Y rappresenta un LED acceso, seppur di intensità inferiore.Chiedo a voi delucidazioni, premettendo che nella matrice non vi sono cortocircuiti, seppur gli anodi e catodi dei LED non siano isolati. Inoltre, ponendo delle resistenze sulle righe/colonne, il problema non si risolve, poiché viene diminuita l'intera luminosità della riga/colonna. Inoltre questa situazione NON SI VERIFICA IN CORRISPONDENZA DI OGNI LED, MA SOLO IN ALCUNE POSIZIONI DI RIGHE O COLONNE. Da cosa potrebbe dipendere? Magari da tensioni o correnti dovuti ai catodi ed anodi non isolati? Qualcuno di voi si è cimentato o ritrovato in una situazione simile? Come eliminare queste correnti indesiderate? Vi ringrazio anticipatamente per le risposte e l'aiuto. 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 49
Arduino rocks
|
 |
« Reply #1 on: February 14, 2013, 11:07:39 am » |
bisognerebbe capire se è un errore si comunicazione oppure una specie di ritorno che fa accendere poco quel led... a me sembrerebbe un ritorno di corrente anche minimo che causa l'accensione involontaria del led...
ti capita solo con quel led?
prova a fargli fare un gioco di luci diverso e vedi se si verifica ancora...
|
|
|
|
|
Logged
|
|
|
|
|
BZ (I)
Offline
Brattain Member
Karma: 160
Posts: 15641
+39 349 2158303
|
 |
« Reply #2 on: February 14, 2013, 11:11:53 am » |
prego sketch, schema elettrico e foto. Ciao Uwe
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 12
|
 |
« Reply #3 on: February 25, 2013, 01:20:18 pm » |
Come avete chiesto, ecco a voi tutto il materiale. Di seguito il link MediaFire per il download del file contenente sketch, schema elettrico etc... http://www.mediafire.com/?r333n6v2ru09698All'interno del file .rar sono presenti:
1)Sketch 2)Schema elettrico MultiSIM 3)Breve illustrazione del programma e problema 4)Varie immagini riportanti il problema 5)Schema di accensione LED-Lettera
Per qualsiasi domanda o chiarimento sono disponibile. Vi ringrazio 
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 12
|
 |
« Reply #4 on: February 26, 2013, 06:29:23 am » |
Dimenticavo di dire che i LED con accensione indesiderata, sono sempre gli stessi per ogni orario.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 12
|
 |
« Reply #5 on: February 27, 2013, 03:32:03 am » |
UP
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #6 on: February 27, 2013, 05:40:57 am » |
Ma sei certissimo dei collegamenti? Con le matrici di led il primo problema sono i falsi contatti. Mettiti con pazienza e ricontrollali uno ad uno. Accendili anche manualmente per verificare appunto che non ci sia qualche saldatura fatta male o dove non doveva essere fatta.
|
|
|
|
|
Logged
|
|
|
|
|
Tuscany
Offline
Edison Member
Karma: 20
Posts: 1045
|
 |
« Reply #7 on: February 27, 2013, 10:34:12 am » |
ma non c'e' modo di esportare dal MultiSim un Jpg, o altro, dello schema?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 12
|
 |
« Reply #8 on: February 27, 2013, 11:37:00 am » |
Posso confermare che la matrice funziona perfettamente e non ci sono falsi contatti (Tra l'altro i LED indesiderati che si accendono per ogni combinazione cambiano a seconda della combinazione, ma sono sempre gli stessi nella combinazione!) Che in altre parole significa che ogni qual volta scatta un orario, ad es. 8:45, si accenderanno i soliti X LED indesiderati; mentre per l'orario (es.) 10:35 si accenderanno Y LED indesiderati; per l'orario (es.) 12:10 si accenderanno Z LED indesiderati e così via... NB: In QUALSIASI orario, si verifica una o più accensione di LED indesiderati.Se davvero ci fossero problemi di collegamento otterrei un accensione della matrice di led, per tutti i suoi LED, ad ogni orario. Ecco il download dell'immagine in formato .JPEG anche se lo schema elettrico è molto semplice:http://www.mediafire.com/view/?myfiles#Una matrice (lunghezza*altezza) 11X10, collegati a catodo comune per riga, mentre ad anodo comune per colonna. Ho due DEMUX che traducono i segnali di Arduino in segnali riga colonna. Poichè entrambi forniscono i segnali in forma negata, ho bisogno di due integrati NOT che commutino il segnale da alto a basso solo per le colonne. Si ottiene così l'accensione riga-colonna. Vi ringrazio ancora per le risposte 
|
|
|
|
|
Logged
|
|
|
|
|
Tuscany
Offline
Edison Member
Karma: 20
Posts: 1045
|
 |
« Reply #9 on: February 27, 2013, 12:18:18 pm » |
si, non dico che ci sono errori di collegamento ma volevo vedere che IC usavi e a che tensione pilotavi i Led, etc etc
Se come dici si illuminano a intensita' minore, pare un problema di livelli logici, come ad esempio un livello Hi-Z etc etc
ma quel link non funziona
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 12
|
 |
« Reply #10 on: February 27, 2013, 02:30:20 pm » |
Ok, ora il link dovrebbe funzionare. Gli integrati che utilizzo sono:
Due DEMULTIPLEXER HC 74LS154 Due INTEGRATI NOT 74LS04 110 LED ad alta luminosità Alimentazione a 5V (Arduino)
Quindi da cosa potrebbe dipendere? Dici che sono i demux o è un fatto di controllo? Grazie
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #11 on: February 27, 2013, 02:39:19 pm » |
Se come dici si illuminano a intensita' minore, pare un problema di livelli logici, come ad esempio un livello Hi-Z etc etc
E' un bel problema, se è un... problema di incroci logici (cioè errori software nella gestione delle linee). Ho dato un'occhiata al tuo codice ma sono 2800 righe piene zeppe di caratteri costruti con il digitalWrite... impossibile mettersi lì a capirci qualcosa  ma quel link non funziona
Confermo, il secondo link non funziona.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 12
|
 |
« Reply #12 on: February 27, 2013, 02:53:05 pm » |
Sicuri non funziona ancora il link? Ci clicco e mi appare il download, fatemi sapere. Il codice è lungo, ma per niente complesso... Te lo sintetizzo: Come hai visto la matrice di led è composta da 110 led. Ad ogni led corrisponde una lettera, che ha un accensione Riga-Colonna comandata dai due demux. Dopo aver creato una funzione per ogni lettera, raggruppando i valori di uscita dai primi 8 pin di Arduino (0-7), in ingresso poi sui DEMUX, ho creato le funzioni per gli orari (Sia a numero, sia a lettere). I digitalWrite sono una successione di stati, che inviati ai demux di riga (0-3 Arduino) e di colonna (4-8 Arduino), permettono un accensione matriciale. Come vedi è presente un DelayMicroseconds(x) con x=100, che permette un refresh sufficiente alla "non-percezione" dello sfarfallio. Le void lettere, come detto prima vengono poi racchiuse in void degli orari. Nel void loop, come puoi vedere hai solo l'output delle due funzioni. Quindi dici che il problema, deriva da un controllo non MultiTasking dei DEMUX? Dici che quell'intervallo infinitesimale tra righe di codice non permetta una perfetta sincronicità tra i due DEMUX? Non ditemi che devo riprogettare tutto 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #13 on: February 27, 2013, 03:15:00 pm » |
Sicuri non funziona ancora il link? Ci clicco e mi appare il download, fatemi sapere.
Ecco cosa appare: Invalid or Deleted File.
The key you provided for file download was invalid. This is usually caused because the file is no longer stored on MediaFire. This occurs when the file is removed by the originating user or MediaFire.
Still have questions, or think we've made a mistake? Please contact support for further assistance.
Il codice è lungo, ma per niente complesso... Te lo sintetizzo: ..... [/quote] Ne capisco la logica, ho fatto cose simili  Solo che mettersi a vedere tutto quel codice per trovare un incrocio sbagliato è molto dura.  Posso suggerirti una cosa. Mi pare di capire che quel problema compaia sempre nello stesso punto. Metti dei delay molto più lunghi (secondi, al posto di millisecondi), in modo da individuare correttamente in quale punto compare. Per te che hai scritto il codice sarà facile risalire al punto esatto, da lì esamina cosa fai. Magari aiutati con del debug su seriale (spedisci via seriale il punto in cui si trova il programma).
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 12
|
 |
« Reply #14 on: February 27, 2013, 03:22:03 pm » |
No, purtroppo anche il codice funziona alla perfezione. Comunque i LED indesiderati, che si accendono non sono sempre gli stessi. Variano a seconda dell'orario.Se io alimento il tutto e ad esempio sono le 21:19, avrò dei LED indesiderat accesi. Alle 21:20 avrò altri LED indesiderati accesi. Se però aspetto fino a domani, alle ore 21:19, i LED indesiderati accesi saranno quelli delle 21:19 di oggi! Spero di essere stato più chiaro e aver reso il concetto. Ecco il nuovo download dello schema elettrico:http://www.mediafire.com/?s449k9be99gjykr
|
|
|
|
« Last Edit: February 27, 2013, 03:26:34 pm by gears_math »
|
Logged
|
|
|
|
|
|