


Hoe werkt de kubus?
Alle 125 leds staan in een matrix. Dat wil zeggen dat in mijn geval 5 leds allemaal een min delen. In deze afbeelding is het nog wat duidelijker te zien:

Om een ledje aan te krijgen moet je dus een negatieve spanning op de verticale pin zetten. En een positieve spanning op de verdieping waar het ledje zich bevindt.
Hoe maak je een ledkubus?

Eerst hang je 5 leds aan elkaar met de min. Dit wordt een verticale rij. Zoals je ziet heb ik de plus pootjes van elke led in een hoek van 90 graden gebogen. Dit doe je 5 keer zodat je 5 rijen hebt. Van die 5 rijen hang je alle plus pinnen aan elkaar. Niet allemaal aan elkaar natuurlijk maar per 5. Dan heb je dit:

Om nu bijvoorbeeld het middelste ledje aan te zetten moet ik dus plus 2,1 volt op de middelste van de 5 min pinnen. En op de middelste van de 5 plus pinnen. Nu heb ik een verticaal vlak af. Als je 5 van deze vlakken hebt dan verbind je weer alle plus pinnen van dezelfde hoogte met mekaar. Je hebt dan een mooie kubus:

Zoals je ziet is die van mij een beetje scheef maar dit is ook maar een tijdelijk plankje waar hij op staat. Nu de aansturing helemaal af is ga ik straks een behuizing maken van plexiglas. Wat je nu bereikt hebt is dat je dus 25 min pinnen hebt(de verticale) en 5 positieve pinnen(de horizontale). Nu kan je werkelijk elk ledje aansturen maakt niet uit welke.
Hoe stuur je de kubus aan?
Om de kubus aan te sturen heb ik gekozen voor een pic. En de wel de 16F628a. Dit is een veelgebruikte pic en daardoor staan er mooi veel voorbeelden van op internet.
Nu het probleem een pic heeft maar 16 uitgangen. En ik heb 30 uitgangen(25+5) die ik aan wil sturen. Daarvoor heb ik een schuifregister gebruikt. En dan wel de 74HC595. Deze is erg makkelijk aan te sturen als je door hebt hoe het eenmaal werkt. Hier heb ik gelukkig wat hulp bij gehad van forumleden van CO.
De 74HC595 stuur je als volgt aan:
Eerst zet je een bitje(0 of 1) klaar op de DATA-pin (14)
Dit bitje klok je in door de CLOCK-pin hoog te maken.
Nu is de eerste bit ingeklokt. Dit verhaaltje doen we 8 keer. De 74HC595 is namelijk een 8 bits schuifregister. Vergeet niet de CLOCK-pin weer laag te maken na elk bitje wat je ingeklokt hebt. In ASM ziet dit er als volgt uit:
Code: Selecteer alles
;schuifregister1 vullen
bcf data1
call klok1
bsf data1
call klok1
bcf data1
call klok1
bsf data1
call klok1
bcf data1
call klok1
bsf data1
call klok1
bcf data1
call klok1
bsf data1
call klok1
call latch
klok1
bsf klokingang1 ;CLOCK pin hoog
nop
bcf klokingang1
return
latch
bsf latch1 ;latch is hoog dus resultaat zou te zien moeten zijn
call delay_300ms ; hier heb ik een vertraging gebruikt maar een nop
bcf latch1 ;werkt ook goed
returnCode: Selecteer alles
main
movlw b'00001000'
call schuifregister1
;-------------------------------------------------------------
schuifregister1
movwf Var1 ; zet de waarde vanuit w in Var1. dit is het getal wat geklokt moet worden
movlw D'8' ;zet de waarde 8 in het werkregister
movwf bits1 ;sla de waarde 8 uit w op in bits1 dis is het aantal bits wat ingeklokt moet worden
loop1
rlf Var1,1 ;rotate left trough carry en sla het resultaat op in Var1. Eerste bit zit nu in de carry
btfss STATUS, C ; lees de carry uit. Is carry= 1?
bcf data1 ;zo nee, zet de datalijn naar 0
btfsc STATUS, C ; is carry 0?
bsf data1 ;zo nee data is 1
bsf klok1
nop
bcf klok1 ;bitje is nu ingeklokt
decfsz bits1,f ;verlaag bits1 met één totdat die nul is
goto loop1 ; is bits1 0? dan "return" zo nee ga naar loop1
returnDan volgt hier het schema:

grotere versie: http://i4.photobucket.com/albums/y149/s ... schema.jpg
Zoals je ziet niet erg ingewikkeld. Nadeel is wel dat je 25 transistoren en dus ook 25 basisweerstanden en dan 25 weerstanden voor de leds moet solderen. Erg veel werk dus. Voor de volgende keer gebruik ik daar misschien een ic voor waar al 8 transistoren inzitten. Dit bespaard erg veel soldeerwerk. En zo ziet het er dan uit op gaatjesprint:

Links zie je de 25 draden die naar de onderkant van de ledkubus lopen. Bovenaan zie je de 5 draden die naar de “verdiepingen” van de led kubus lopen. Even voor de lol ook een fototje van de onderkant:

grotere versie: http://i4.photobucket.com/albums/y149/s ... 0_1773.jpg
Zoals je ziet erg veel soldeerwerk. Daarom ook een tip: Gebruik voor ieder schuifregister een andere kleur draad! Dit maakt fouten zoeken later een stuk makkelijker
Gebruikte materialen
Pic 16F628a €1,75
4 keer de 74HC595 €1,-
25 stuks BC547C(npn) €1,-
61 weerstanden €2,-
5 stuks BC327(pnp) €0,50
Een ontstoorcondensator van 100n voor de pic €0,05
125 leds €2,50
verzendkosten webshops totaal €4,-
in totaal heeft het mij dus ongeveer 13 euro gekost. Houd er rekening mee dat ik gewone 3mm groene(diffuse) leds heb gebruikt. Als je blauwe leds wil gaan gebruiken wordt het natuurlijk duurder.
IC’s en transistoren komen bij dickbest vandaan
www.dickbest.nl
Hij is erg goedkoop behalve op weerstanden. Maar die had ik toch nog liggen.
Foto’s




Dit zijn nog maar wat simpele effecten maar in princiepe is elk denkbaar effect mogelijk.
Links
Datasheet van de pic:
http://ww1.microchip.com/downloads/en/D ... 40044E.pdf
Datasheet 74hc595
?????????????nog geen link gevonden
Voor en Nadelen van deze schakeling
Zoals ik eerder al zei het is irritant dat je niet alle leds met de 3 schuifregisters aan kan sturen. En die 25 transistoren hadden ook vervangen kunnen worden door bepaalde IC’s. Verder heb ik 3mm leds gebruikt. Op zich geen probleem maar ik heb nu wel een erg kleine kubus. Daarom bouw ik misschien ooit nog wel een keer een grotere. Als je een grotere wil bouwen dan kan je het best een oneven aantal nemen. Denk aan 7*7*7 of 9*9*9. Zodat je bijvoorbeeld ook een mooi rondje kan maken of een effect vanuit het midden kan laten beginnen.
einde
Zo dat was een heel erg lang verhaal. Voor wie het is opgevallen heeft dit artikel ook al op tweakers.net gelezen:P
grtz Bas


