CUBO LED 4X4X4 M - electroyou.it · Realizzazione del cubo Per realizzare il cubo di led, mi sono...

20
Davide Oldani (Galaxi93) CUBO LED 4X4X4 MULTICOLOR 1 July 2010 Introduzione Se ti piacciono da morire i led, quelle lucine vivaci e colorate che esplodono in tanti colori armoniosi, questo è il progetto che fa per te! Sono 64 led (4x4x4) di 4 colori diversi, collegati in multiplexing e comandati dal pic 16f876. Penso che sia uno dei pochi (se non l’unico, dato che non ho trovato nulla) cubi a led 4x4x4 controllato da un pic e programmato intermante in C con mikroC. Infatti si trovano molti progetti di cubi 3x3x3 o comunque controllati da altri tipi di microcontrollore (principalmente Atmel). Realizzazione del cubo Per realizzare il cubo di led, mi sono costruito una basetta di legno spessa almeno 2 cm, e forata con punta del 5,5 (il foro l’ho fatto leggermente più largo per agevolare l’uscita dei led a lavoro finito) in punti equidistanti e paralleli tra di loro. ELECTROYOU.IT CUBO LED 4X4X4 MULTICOLOR 1

Transcript of CUBO LED 4X4X4 M - electroyou.it · Realizzazione del cubo Per realizzare il cubo di led, mi sono...

Davide Oldani (Galaxi93)

CUBO LED 4X4X4 MULTICOLOR

1 July 2010

Introduzione

Se ti piacciono da morire i led, quelle lucine vivaci e colorate che esplodono in tanti colori

armoniosi, questo è il progetto che fa per te! Sono 64 led (4x4x4) di 4 colori diversi, collegati

in multiplexing e comandati dal pic 16f876. Penso che sia uno dei pochi (se non l’unico, dato

che non ho trovato nulla) cubi a led 4x4x4 controllato da un pic e programmato intermante in C

con mikroC. Infatti si trovano molti progetti di cubi 3x3x3 o comunque controllati da altri tipi di

microcontrollore (principalmente Atmel).

Realizzazione del cubo

Per realizzare il cubo di led, mi sono costruito una basetta di legno spessa almeno 2 cm, e forata con

punta del 5,5 (il foro l’ho fatto leggermente più largo per agevolare l’uscita dei led a lavoro finito)

in punti equidistanti e paralleli tra di loro.

ELECTROYOU.IT

CUBO LED 4X4X4 MULTICOLOR 1

www.princexml.com
Prince - Non-commercial License
This document was created with Prince, a great way of getting web content onto paper.

La distanza tra i vari led è di 3 cm su ogni lato. Basta quindi prepararsi una semplice griglia a 9

quadrati di lato 3 cm e praticare i 16 fori necessari su ogni vertice. Fate attenzione ad bloccare bene

il foglio sul pezzo di legno. Il risultato finale della basetta forata dovrebbe essere questo:

Base di costruzione

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 2

Ora non vi resta che mettere un led per ogni foro, in modo intelligente però. Infatti ogni catodo di

tutti i led dello stesso piano devono essere collegati tra di loro. Mentre i anodi di tutti i led devono

collegarsi con gli anodi dei led nella stessa posizione ma su piani diversi. Anche i colori dei led sono

stati disposti con criterio: ho fatto in modo che non ci sia mai sulla stessa fila (sui assi x, y e z) due

led dello stesso colore. Ecco lo schema dei colori e catodi:

Base di costruzione 2.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 3

Ogni piano poi va ruotato di 90 gradi (il senso di rotazione non è rilevante, basta mantenerlo per

ogni piano) rispetto a quello sottostante. Ecco alcune immagini:

Schema colori.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 4

Tre piani.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 5

Dato che i miei led avevano i reofori troppo corti, ho dovuto aggiungere dei fili di ferro (diametro

1mm) per dare più robustezza al cubo. Nella prima immagine si vedono i tre piani completi: quelli

sono i primi tre piani. L’ultimo piano è quello che vedete nella seconda foto: dovere saldare agli

anodi dei led, dei fili di ferro sufficientemente lunghi (almeno 5 volte la distanza tra un led e l’altro,

quindi nel mio caso 3*5=15cm). Adesso viene la parte più difficile ovvero quella di inserire e saldare

tutti gli altri 3 piani insieme e a distanza stabilita. Su questa fase non c’è molto da dire… è solo un

gran sbattimento allineare il tutto e saldare ogni pezzo. Ricordatevi, se fate come me, di ruotare

ogni volta il piano led, rispetto a quello sottostante.

Ed ecco il cubo finito (nell’immagine è collegato a dei connettori per una fase di prova generale):

Ultimo piano.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 6

Lo schema e il circuito stampato

Lo schema è molto semplice. Le porte B e C del pic sono state collegate ai 16 anodi del cubo

tramite la solita resistenza di limitazione della corrente (calcolata su un singolo led, dato che il

programma permette di accendere solo un piano alla volta) mentre le prime 4 porte A del pic sono

state collegate alle basi di altrettanti transistor che controllano i vari piani del cubo. E’ presente il

connettore ICSP per la programmazione on-board e il pulsante di reset.

Cubo prova.JPG

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 7

Cubo_led_schema

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 8

Lista Componenti

Attenzione!! La scheda necessita di un’alimentazione regolata di 5volt. Serve un regolatore esterno

di cui in seguito trovate lo schema:

Lista Componenti:

• SL1=Ingresso tensione alternata min. 6 V ac max 14 V ac

• B1=Ponte diodi (IN4001)

• SL2=Uscita 5 volt stabilizzati

Alimentazione

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 9

Lo schema è il classico circuito di regolazione della corrente, quindi non c’è niente d’aggiungere.

Ecco l’alimentatore:

Questo è invece il master del circuito stampato:

Alimentatore

pcb

pcb

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 10

L’unico errore in questo stampato è stato quello del connettore di alimentazione, di cui ho sbagliato

le dimensioni. Per questo lascio allegato sia il file pdf del master e sia il file sorgente per eagle, in

maniera da poter lasciare a voi la modifica del componente.

Ecco le varie

fasi per la preparazione

della basetta finale e la saldatura dei componenti:

Scheda dopo essere stata esposta alla luce ed essere trattata con lo sviluppo del positivo. E’ stata

impressa con una luce alogena da 300 W a 15 cm di distanza per 2 minuti e 30 secondi.

pcb_color1jpg.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 11

Basetta appena immersa nel cloruro ferrico: la basetta galleggia e in questo modo si può verificare

lo stato dell’incisione senza toccare nulla. Il cloruro è stato preriscaldato a 40°C.

Prima Incisione.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 12

Basetta dopo 10 minuti a mollo nel cloruro: già si intravedono le piste, ma l’incisione non è ancora

completa.

Incisione1.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 13

Basetta dopo 15 minuti: sembra pronta, ma con un’accurata osservazione si notano ancora delle

parti non completamente corrose (dove c’è il connettore ad esempio)

Incisione2.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 14

Scheda lavata e passata con solvente alla nitro per rimuovere il fotoresist sulle piste che su queste

basette è molto spesso e non permette la saldatura. La scheda è stata infine forata.

Incisione3.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 15

Ecco completata (o quasi, manca il connettore perché non lo avevo ancora preso).

Scheda.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 16

Lato saldature.

Lato componenti.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 17

Per essere il mio primo circuito stampato della mia vita, non è uscito per niente male, vero? Mentre

lo facevo già mi preparavo psicologicamente ad un insuccesso e invece va che lavoro!

Il programma

E ora arriva la parte veramente tosta. Il programma, per me che mi posso considerare un

programmatore principiante, è davvero complesso e articolato. Ringrazio subito gli utenti del

forum Electroportal.net che mi hanno aiutato nel stendere il codice nelle sue parti più cruciali. In

particolare ringrazio posta10100 e c1b8 che mi hanno aiutato molto. Esso è stato scritto in C con

MikroC PRO.

Per l'accensione dei led, il programma si affida principalmente su tre funzioni con compiti

differenti:

acc_led;acc_leds;check_led;

Le prime due funzioni agiscono direttamente sulle porte del pic accendendo in multiplexing i led.

Lato saldature.jpg

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 18

void acc_led(char x, char y, char z);

accende un singolo led alla volta, fornendo le coordinate del led d'accendere in numeri che vanno

da 0 a 3.

void acc_leds(int xy, char z);

Accende invece un piano alla volta fornendo un numero a 16 bit (un bit per ogni led) e un numero

da 0 a 3 del piano corrispondente. Questa funzione viene usata dalla funzione check_led.

void check_led (int tempo_effetto);

Questa funzione accende in multiplexing il cubo per un determinato tempo dato dalla variabile

tempo_effetto. La funzione va a leggere l'array a 16bit "map[4]" che contiene lo stato di ogni

singolo led di ogni piano. Attenzione, per questioni pratiche, il valore minimo del tempo è di 20ms.

Poi ci sono una serie di funzioni che hanno il compito di manipolare lo stato dei led, agendo

direttamente sull'array "map". Sono le funzioni:

cambiaStato,cambiaStati,getStato,reset,cambia_if.

La loro funzione è descritta nel programma.

Esistono poi due funzioni che hanno il compito di generare un numero pseudo-random necessario

ad alcuni giochi di luce (pioggia e tempesta). Il programma affida la generazione del numero

casuale al ritorno di un valore non specificato, che proprio per questo motivo, diviene casuale.

Il resto del programma serve come supporto ad alcuni effetti di luce e anche a queste funzioni.

Ad ogni modo guardate il codice sorgente che è commentato. In caso di dubbi potete sempre

chiedermi spiegazioni a riguardo. Purtroppo non sono riuscito a rientrane nel limite della versione

demo di MikroC PRO di 2k di codice. Quindi se volete modificare il codice e cambiare, per esempio,

l'ordine e il tempo degli effetti, dovete avere la versione completa del programma. Dato che non

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 19

tutti lo hanno, vi posso aiutare io. Basta che mi inviate il sorgente modificato e ve lo compilo io per

voi. Tanto è un operazione molto veloce per me.

Il Video

Ecco il video del cubo in funzione. Sotto ogni gioco di luce trovate il suo nome corrispondente nel

codice in modo da rendervi conto di che giochi di luce si tratta.

Flash

Tutti i files

Qui potete trovare tutti i vari file che possono servire.

E qui è presente il file hex dello stesso codice ma per il PIC16F876A.

Ovviamente sono ben accetti critiche, consigli e domande sul cubo.

Il progetto completo è anche visitabile sul mio sito: Galaxi93.Altervista.org

Estratto da "http://www.electroyou.it/mediawiki/

index.php?title=UsersPages:Galaxi93:cubo_led_4x4x4"

ELECTROYOU.IT DAVIDE OLDANI (GALAXI93)

CUBO LED 4X4X4 MULTICOLOR 20