MAX7219 - problema con led diversi
Ciao a tutti.
Qualche tempo fa ho realizzato una bussola da interfacciare ad un simulatore di volo.
in pratica, un display a 7 segmenti a 3 cifre (SH3361AS) mi visualizza l'angolo di rotta, mentre 16 led rettangolari rossi mi visualizzano la direzione sulla rosa dei venti (N-NNE-NE-ENE-EST etc ect).
Esempio pratico: rotta 090 (EST) si accende il led corrispondente a EST; rotta 115 si accenderà quello relativo a ESE, e così via.
Funziona perfettamente.
Ho deciso di riprodurlo ma in scala ridotta, utilizzando sempre lo stesso tipo di display, ma per ridurre le dimensioni ho optato per led SMD 1206, questa volta verdi.
Il risultato è effettivamente molto piccolo (circa 40*40mm), ma non funziona; o meglio funziona a metà.
Infatti l'angolo di rotta mi viene correttamente visualizzato, ma i led verdi rimangono sempre costantemente accesi.
Per testare il tutto, uso uno sketch che in pratica conta da 000 a 359 (visualizzato sul display), e a seconda del numero (o meglio nel suo intervallo) accende il corrispondente led.
Lo sketch all'inizio fa anche un test di tutti i led: il test consiste nel visualizzare numeri e lettere nel display, sfruttando tutta la matrice possibile (insomma un test standard del max7219 come se ne trovano in rete - e infatti quello uso).
Ovviamente il display visualizzerà numeri e lettere, mentre i 16 led si accenderanno/spegneranno in maniera "disordinata".
Il test dei led funziona come mi aspetto (e quindi vedo i led verdi accendersi/spegnersi in una sequenza disordinata - anche se rimangono tutti sempre accesi fiochi....), ma quando poi c'è da eseguire la parte che simula la bussola, rimangono accesi fissi e splendenti, mente sul display girano correttamente i numeri da 000 a 359.
Domanda: cosa c'è che sbaglio?
L'unica "variabile", credo, nell'uso del MAX7219 è la resistenza; calcolata per i led rossi (se ricordo bene ho usato una resistenza da 10K) il circuito (quello grande) funziona.
Attualmente sto usando lo stesso valore anche per quello rimpicciolito....
Qualche tempo fa ho realizzato una bussola da interfacciare ad un simulatore di volo.
in pratica, un display a 7 segmenti a 3 cifre (SH3361AS) mi visualizza l'angolo di rotta, mentre 16 led rettangolari rossi mi visualizzano la direzione sulla rosa dei venti (N-NNE-NE-ENE-EST etc ect).
Esempio pratico: rotta 090 (EST) si accende il led corrispondente a EST; rotta 115 si accenderà quello relativo a ESE, e così via.
Funziona perfettamente.
Ho deciso di riprodurlo ma in scala ridotta, utilizzando sempre lo stesso tipo di display, ma per ridurre le dimensioni ho optato per led SMD 1206, questa volta verdi.
Il risultato è effettivamente molto piccolo (circa 40*40mm), ma non funziona; o meglio funziona a metà.
Infatti l'angolo di rotta mi viene correttamente visualizzato, ma i led verdi rimangono sempre costantemente accesi.
Per testare il tutto, uso uno sketch che in pratica conta da 000 a 359 (visualizzato sul display), e a seconda del numero (o meglio nel suo intervallo) accende il corrispondente led.
Lo sketch all'inizio fa anche un test di tutti i led: il test consiste nel visualizzare numeri e lettere nel display, sfruttando tutta la matrice possibile (insomma un test standard del max7219 come se ne trovano in rete - e infatti quello uso).
Ovviamente il display visualizzerà numeri e lettere, mentre i 16 led si accenderanno/spegneranno in maniera "disordinata".
Il test dei led funziona come mi aspetto (e quindi vedo i led verdi accendersi/spegnersi in una sequenza disordinata - anche se rimangono tutti sempre accesi fiochi....), ma quando poi c'è da eseguire la parte che simula la bussola, rimangono accesi fissi e splendenti, mente sul display girano correttamente i numeri da 000 a 359.
Domanda: cosa c'è che sbaglio?
L'unica "variabile", credo, nell'uso del MAX7219 è la resistenza; calcolata per i led rossi (se ricordo bene ho usato una resistenza da 10K) il circuito (quello grande) funziona.
Attualmente sto usando lo stesso valore anche per quello rimpicciolito....