Che devi prima di tutto vedere quanti canali RGB ti servono, poi considera che il multiplexing, se non si realizza un circuito apposito, potrebbe dare flickering (mentre quei driver no).
Si possono anche usare degli expander, per pilotare i driver in modo da non usare gli specifici pin PWM del micro, ad esemepio una delle applicazioni che avevo realizzato aveva 16 canali, ed erano pilotati tramite un PCA9685 che veniva pilotato a sua volta dalla MCU usando SDA e SCL, e siccome i PCA9685 hanno 5 pin di indirizzamento, se ne potrebbero mettere fino a 32, per complessivi 512 canali, tutti pilotabili con gli stessi 2 pin dell'I2C.
Esempio della scheda:
Poi si puo realizzare anche con il driver A6211 della Allegro, che arriva a 3A, e' in un case un po piu decente (ha comunque il pad centrale, ma se non si trova chi li salda, si puo saldare lo stesso a mano prevedendo un via piu grande sotto il componente), rifare lo schema e lo stampato (sempre a 16 canali per scheda con gli espander) per usare quello non dovrebbe portare via piu di un paio d'ore, cosi ad ochio.
Gestione illuminazione RGB
Moderatori: carloc,
IsidoroKZ,
g.schgor,
BrunoValente
23 messaggi
• Pagina 2 di 3 • 1, 2, 3
0
voti
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
-
Etemenanki
8.095 3 6 10 - Master
- Messaggi: 5087
- Iscritto il: 2 apr 2021, 23:42
- Località: Dalle parti di un grande lago ... :)
0
voti
Dimenticavo, prima che lo chiedi, no, i PCA non pilotavano loro direttamente i led, che possono dare solo 25mA di uscita, pilotavano i driver di potenza 

"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
-
Etemenanki
8.095 3 6 10 - Master
- Messaggi: 5087
- Iscritto il: 2 apr 2021, 23:42
- Località: Dalle parti di un grande lago ... :)
0
voti
Etemenanki ha scritto:Dimenticavo, prima che lo chiedi, no, i PCA non pilotavano loro direttamente i led, che possono dare solo 25mA di uscita, pilotavano i driver di potenza
Anche la mia soluzione richiede un mosfet all'uscita... Potrebbe essere una valida soluzione questo degli expander PWM, però sugli output ho optato sui multiplexer con cella di memoria all'uscita e non degli shift register per una questione di velocità di aggiornamento... In pratica utilizzando lo stampato con i multiplexer (che in pratica sarebbe più un supporto dove saldare componenti e connettori a vite) ci sarebbero 96 uscite analogiche (con i multiplexer 4051) a gruppi di 8 quindi sarebbero due uscite RGB e due uscite per le ventole in ogni gruppo. Dai multiplexer ci sono direttamente le uscite con la vite in modo da poter assemblare e tenere ben ferma la circuiteria delle 8 uscite PWM nella quale è presente un mosfet per canale...
C'è anche da dire che usando delle port PWM a risoluzione maggiore sarebbe un problema visto che le letture dai moduli per gestire l'illuminazione RGB (messi nelle scatole da incasso) le faccio a 10Bit scalate a 8Bit per una certezza di lettura...daniele1996 ha scritto:uscita analogica (8Bit) multiplexata su delle celle analogiche
Hai visto il link del post [7] ? L'unica problematica sarebbero il dimensionamento delle capacità del generatore di segnale e il partitore prima dell'ingresso non invertente...
-
daniele1996
610 2 8 11 - Sostenitore
- Messaggi: 1535
- Iscritto il: 29 ago 2011, 11:29
0
voti
Be', c'e' anche da dire che con i PCA piloti l'expander solo quando devi fare delle variazioni, quindi anche la MCU deve lavorare di meno 

"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
-
Etemenanki
8.095 3 6 10 - Master
- Messaggi: 5087
- Iscritto il: 2 apr 2021, 23:42
- Località: Dalle parti di un grande lago ... :)
0
voti
Etemenanki ha scritto:Be', c'e' anche da dire che con i PCA piloti l'expander solo quando devi fare delle variazioni, quindi anche la MCU deve lavorare di meno
Sisi,al pari degli shift register però con il PWM, però va tenuto conto che il codice del programma deve essere il più corto possibile per questioni relative alla flash, velocià di esecuzione e sopratutto va tenuto conto anche i tempi in cui l'interfaccia che imposta il singolo PWM tiene bloccata la CPU, ci saranno anche dispositivi con SPI, ma bisogna vedere nel micro come sono occupate queste risorse... sinceramente punto a risparmiare sui tempi di esecuzione in modo tale da realizzare un dispositivo con più funzionalità integrate in modo che standalone qualcosa già la fa e non un dispositivo "stupido" che semplicemente legge i valori e li invia ad un raspberry dove gira qualcosa di più pesante...
-
daniele1996
610 2 8 11 - Sostenitore
- Messaggi: 1535
- Iscritto il: 29 ago 2011, 11:29
0
voti
daniele1996 ha scritto: l'interfaccia che imposta il singolo PWM tiene bloccata la CPU
Nessun tempo, praticamente ... credo non mi sono spiegato bene, il PCA non lo piloti con il PWM o come uno shift register, e' lui internamente a generare 16 diversi PWM indipendenti come duty-cycle, tu lo piloti via I2C mandandogli i dati che gli dicono quale uscita vuoi che generi quale duty-cycle di PWM, e lo fai praticamente solo quando devi fare delle modifiche (tranne ovviamente all'accensione dove gli devi mandare tutti i dati per la prima volta), comunque data la quantita' di registri e' meglio usare una libreria apposita (ce ne sono diverse in giro)
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
-
Etemenanki
8.095 3 6 10 - Master
- Messaggi: 5087
- Iscritto il: 2 apr 2021, 23:42
- Località: Dalle parti di un grande lago ... :)
0
voti
Etemenanki ha scritto:il PCA non lo piloti con il PWM o come uno shift register, e' lui internamente a generare 16 diversi PWM indipendenti come duty-cycle
Si, funziona con l' IIC che è un bus che lavora ad una frequenza massima, questo impone un tempo di attesa... Oltre questo i valori dell'uscita vanno tenuti in ram e quindi il costo di memoria raddoppia considerato il fatto che la gestione avviene anche tramite l'interfaccia web... Certo, è molto comodo con due fili gestisci tutte quelle uscite PWM, a differenza del mio metodo che sarebbe tre per selezionare nel gruppo con 12 enable differenti per selezionare il gruppo di porte... Preferisco il metodo del circuito che ho postato...
-
daniele1996
610 2 8 11 - Sostenitore
- Messaggi: 1535
- Iscritto il: 29 ago 2011, 11:29
0
voti
Aspetta, allora forse non ho capito io cosa vorresti fare.
Si, il bus I2C lavora alla sua frequenza, ma per Arduino ad esempio puoi scegliere se 100KHz o 400KHz, non puoi usare quelle frequenze per una catena di shift register, anche la shiftOut e' molto piu lenta di cosi (ora non ricordo esattamente, ma mi pare qualche kHz al massimo).
Poi ovviamente dipende da quanto e' "pesante" la libreria che usi (quelle di adafruit ad esempio sono dei mattoni, perche' ci infilano di tutto), ma credo che comunque spedire comandi con il bus I2C, anche usando una libreria, sia almeno 20 o piu volte piu veloce che spedire sequenze di bytes con la shiftOut.
Oppure intendi una cosa diversa ?
Per immagazzinare i valori potresti usare una FRAM SPI esterna, cosi se va via la corrente, quando torna il sistema puo riaccendere tutto come era prima da solo.
Si, il bus I2C lavora alla sua frequenza, ma per Arduino ad esempio puoi scegliere se 100KHz o 400KHz, non puoi usare quelle frequenze per una catena di shift register, anche la shiftOut e' molto piu lenta di cosi (ora non ricordo esattamente, ma mi pare qualche kHz al massimo).
Poi ovviamente dipende da quanto e' "pesante" la libreria che usi (quelle di adafruit ad esempio sono dei mattoni, perche' ci infilano di tutto), ma credo che comunque spedire comandi con il bus I2C, anche usando una libreria, sia almeno 20 o piu volte piu veloce che spedire sequenze di bytes con la shiftOut.
Oppure intendi una cosa diversa ?
Per immagazzinare i valori potresti usare una FRAM SPI esterna, cosi se va via la corrente, quando torna il sistema puo riaccendere tutto come era prima da solo.
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
-
Etemenanki
8.095 3 6 10 - Master
- Messaggi: 5087
- Iscritto il: 2 apr 2021, 23:42
- Località: Dalle parti di un grande lago ... :)
0
voti
Non uso librerie arduino ormai da anni, in questo progetto sicuramente realizzerò anche un piccolo sistema operativo, Per quanto riguarda la ram conto di farcela con quella interna e non posso usare l'SPI perché è già occupata da scheda ethernet e microSD, c'è anche da dire che cambierebbe solo un chip select, ma preferisco non agganciare troppe cose... Per non appesantire troppo il codice
Guardando lo schema del link c'è un generatore di segnali a rampa, cercando su internet ho trovato un circuito simile sempre con l'integrato NE555:
La parte con il transistor è un bgeneratore di corrente costante che carica il condensatore, in che modo potrei dimensionare le resistenze al fine di avere una frequenza che non disturba?
La carica di un condensatore l'ho studiata semplicemente con una resistenza, cosa cambia dal punto di vista di calcoli qui che a caricarlo è un transistor?
dove all'uscita c'è un qualcosa che converte una differenza di potenziale in un qualcosa che pilota i led: in questo caso un circuito che dà un segnale PWM in uscita in base ad una tensione... Tieni conto che l'uscita analogica sarebbe una rete resistiva e il sistema è di gran lunga più semplice rispetto ad utilizzare il PCA che sicuramente richiede l'analisi del datasheet e la stesura del codice per farlo funzionare considerato il fatto che non li ho mai utilizzati...daniele1996 ha scritto:L'idea sarebbe di sfruttare un'uscita analogica (8Bit) multiplexata su delle celle analogiche
Guardando lo schema del link c'è un generatore di segnali a rampa, cercando su internet ho trovato un circuito simile sempre con l'integrato NE555:
La parte con il transistor è un bgeneratore di corrente costante che carica il condensatore, in che modo potrei dimensionare le resistenze al fine di avere una frequenza che non disturba?
La carica di un condensatore l'ho studiata semplicemente con una resistenza, cosa cambia dal punto di vista di calcoli qui che a caricarlo è un transistor?
-
daniele1996
610 2 8 11 - Sostenitore
- Messaggi: 1535
- Iscritto il: 29 ago 2011, 11:29
0
voti
daniele1996 ha scritto:... cosa cambia dal punto di vista di calcoli qui che a caricarlo è un transistor?
Che la rampa di caricamento e' piu lineare (anche se a caricarlo non e' solo "il transistor", ma tutto il regolatore di corrente costante).
Con una resistenza hai una "curva" di caricamento, perche' man mano che la tensione ai capi del condensatore sale, la differenza fra tensione di alimentazione e tensione di carica si riduce, quindi si riduce anche la corrente di carica ... con un generatore di corrente costante carichi il condensatore sempre con la stessa corrente, quindi la curva di carica diventa praticamente una retta (tranne forse che nell'ultimissimo tratto, quando la tensione di carica e' quasi uguale a quella di alimentazione), e ti consente di avere un'andamento molto piu lineare e prevedibile, e di poter usare tale rampa per pilotare in modo piu lineare altre cose, come li.
Per la ram, le FRAM non hanno bisogno di batteria di mantenimento, contrariamente alle comuni ram ... se invece intendi la flash, ha un numero di cicli di scrittura molto minore delle FRAM, che da quel punto di vista sono "quasi eterne" (flash, circa 10.000 scritture, FRAM, circa 1.000.000.000.000 di scritture

"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
-
Etemenanki
8.095 3 6 10 - Master
- Messaggi: 5087
- Iscritto il: 2 apr 2021, 23:42
- Località: Dalle parti di un grande lago ... :)
23 messaggi
• Pagina 2 di 3 • 1, 2, 3
Chi c’è in linea
Visitano il forum: Nessuno e 82 ospiti