Led Cube RGB con Arduino Mega 2560

Salve,
Sono nuovo, sia del forum, sia di Arduino...

Premetto, che dal prossimo anno, 3° anno di Itis, farò elettronica...

Al momento, visto che in termini di programmazione me la cavo, volevo iniziare a fare qualcosa di bello con arduino...

Arrivando al sodo, dovrei fare un Led cube 3x3x3 (27 led rgb catodo comune, e 3 anodi...), e per il motivo delle uscite, ho scelto il mega...

vorrei capire, come aggiungere le 27 out che mi mancano, e capire, come dare la corrente giusta al led, senza sovraccaricare il chip...

i led che uso hanno queste caratteristiche:
Colore: RGB
Luminosità: 8000mcd
Angolo di visuale: Luce Diffusa
Tensione tip. colore Rosso: 2V
Tensione tip colore Blu: 3V
Tensione tip. colore Verde: 3V
Corrente tip.: 20mA
Dimensione led: 10mm

se non sbaglio, credo di aver capito che ogni led complessivamente assorbe 60mA, su 3 out, quindi i 40mA cad. dovrebbero essere sufficienti, ma per essere sicuro, lo chiedo lo stesso...

per aggiungere le uscite, ho letto che serve un "demultiplexer", e sinceramente, quello che ho letto sul playground, era quasi arabo per me, visto che non so cosa sia un bus I2C, anche se riesco ad intendere cos'è un bus...
poi, ho letto che mi fornisce 16 uscite, e le restanti 11, come le dovrei aggiungere?

ALTERNATIVA:
sarei più felice, se qualcuno, mi potesse spiegare il funzionamento dei led cube (1 colore) che hanno anodi insieme in colonna, e catodi insieme in riga... credo...

grazie in anticipo...

Il cubio funziona perché fai un multiplexing nel tempo. accendi sempre pochi led. Dai per esempio una delle 9 righe a massa e una delle 9 colonna a +5V ( uscite LOW e HIGH) e si accende il led che sta nel incrocio della riga con la colonna. lo accendi per poco tempo e vai avanti col prossimo led ecc. (vedi tu con la polarizzazione giusta per il led che usi)
Quando hai un LED RGB hai in pratica 3 cubi 3x3x3 insieme. Lo puoi organizzare 27 righe e 9 colonne oppure 9 righe e 27 colonne.
Ovviamente ogni colonna o righa deve avere una resistenza per limitare la corrente.
C'é un limitazione che non consideri. Il ATmega 2560 puó dare al massimo 200mA in totale anche se un uscita puó dare 40mA.
Se accendi sempre un led alla volta non c'é problema.
Ciao Uwe

grazie,

Il problema degli ampere lo risolvo con dei transistor...

comunque se non ho capito male, arduino, negli output da sia + che -, impostando (high, per +) e (low, per -), giusto?
Altrimenti dovrei usare anche qui i transistor...

grazie :wink:

si, avevo capito male...

comunque, adesso l'unica cosa che mi serve, è arduino mega (quando mio padre lo compra), ed i led (quando compra anche quelli).

ps, mi sto rifacendo, basandomi su questo:

ciao :wink:

Sí le uscite danno (e ricevono) corrente sia a livello HIGH che LOW. Hanno anche un stato di alta impedenza se li definisci entrate.
Lo schema e giusto. Se accendi sempre un LED non servono transistori ma servono delle resistenze per limitare la corrente su tutti i pin RGB. Il valore non so dirti perché serve anche adeguare la corrente per avere la luminositá dei 3 Colori simili e quello lo fai con la corrente.

Ciao Uwe

Grazie, ma in un gioco luminoso si accendono tutti i led, quindi uso i transistor...

ps. è ovvio che la resistenza la metto lo stesso, però sul catodo comune...

ciao Ultra Phonic 2
Accendere tutti i led é una cosa relativa. L' occhio umano non riesce a vedere frequenze troppo alte percui se accendi per breve tempo e poi il prossimo led ecc vedrai tutti accesi. Dovrai dare delle correnti piú alte di 20 mA (i led lo reggono per tempi brevi e pause lunghe).

Non é possibile in una matrice accendere piú dei LED di una riga o rispettiva 1 colonna.

Se cerchi di farlo con piú righe (o rispettiva colonne) avrai dei LED accesi che non vorresti aver acceso.

Ciao Uwe

grazie, uwe...

anche, se i transistor, mi conviene usarli lo stesso, e poi c'è li ho...

non ho ben capito però l'ultimo concetto, quello della matrice, potresti spiegarlo diversamente ?

grazie... :wink: