HOWTO ledkubus 5*5*5 met 74HC595

Alle vragen m.b.t. lichteffecten m.b.v. lampen, led's etc.
bazzz
Berichten: 406
Lid geworden op: wo 8 feb 2006, 19:42
Locatie: . .

HOWTO ledkubus 5*5*5 met 74HC595

Bericht door bazzz »

[HOWTO] LED kubus 5*5*5 met 74HC595
Afbeelding

Afbeelding

Afbeelding

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:
Afbeelding
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?

Afbeelding
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:
Afbeelding

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:Afbeelding

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
	return
Dit kan je dan netjes in een subroutine zetten en zie ziet er dan zo uit:

Code: 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
		return
Omdat ik 4 schuifregisters aan wil sturen. Heb ik dus voor elk schuifregister een subroutine gemaakt. Drie schuifregisters voor de 24 “min-pinnen” en één schuifregister voor de 5 verdiepingen. De latch van de eerste drie schuifregisters zitten dan ook op dezelfde pin van de pic(zie schema). De latch van het laatste schuifregister zit op een andere pin dit omdat je dan makkelijker meer effecten in de pic kan programmeren. Iedereen die zich nu afvraagt waarom ik maar 24 min pinnen aanstuur heeft gelijk dat het erg onhandig is. Dat is namelijk een denk foutje van mij. Elk schuifregister heeft maar 8 uitgangen. Ik gebruik er 3 voor de min pinnen dus heb ik 24 “min-pinnen” die ik aan kan sturen. De 25ste heb ik direct op de pic aangesloten als “ledx”. Deze verticale rij moet ik elke keer dus opnieuw aan/uit zetten. Misschien niet erg handig maar dat is een idee voor de volgende versie

Dan volgt hier het schema:
Afbeelding
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:
Afbeelding

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:
Afbeelding
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

Afbeelding

Afbeelding

Afbeelding

Afbeelding

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
Laatst gewijzigd door bazzz op za 27 jan 2007, 19:55, 1 keer totaal gewijzigd.
Gebruikersavatar
crossover
Berichten: 740
Lid geworden op: zo 7 nov 2004, 18:58
Locatie: Bilzen. .. .
Contacteer:

Bericht door crossover »

ik ben zelf ene aant ont werke met behulp van AVR
Liggend Kan Je Sch**ten Maar Het Is Beter Als Je Zit.
Gebruikersavatar
Flupke
Berichten: 818
Lid geworden op: za 22 okt 2005, 12:06
Locatie: Wemmel België. .. .. .

Re: HOWTO ledkubus 5*5*5 met 74HC595

Bericht door Flupke »

Ziet er netjes uit.

En hoe laad je de figuren in de pic?
Voor de rest denk ik ook dat ik het met de schuifregisters anders zou aanpakken.
Gebruikersavatar
crossover
Berichten: 740
Lid geworden op: zo 7 nov 2004, 18:58
Locatie: Bilzen. .. .
Contacteer:

Bericht door crossover »

ik ga het via usart doen, gewoon txt filekes maken
en die doorsturen

ik doe het met ne ATmega32
4x4x4
+PWM
daarna mss RGB(@ PWM)
Liggend Kan Je Sch**ten Maar Het Is Beter Als Je Zit.
Gebruikersavatar
elektronica amateurtje
Berichten: 1079
Lid geworden op: ma 29 mei 2006, 19:20
Locatie: heist op den berg.. .. .

Bericht door elektronica amateurtje »

Intressant mss ga ik het ook maken.
met vriendelijke groenten robin.
Mijn favoriete wet:De wet van de minste
inspanning.
Those about to rock salute you !!
bazzz
Berichten: 406
Lid geworden op: wo 8 feb 2006, 19:42
Locatie: . .

Bericht door bazzz »

4*4*4 is wel erg klein hoor:P 5*5*5 vind ik al klein.

mijn schuifregisters ga ik ook nog anders neerzetten. Ik heb al een schema versie 2 en daarin zet ik ze in serie zodat ik in een keer 24 bits in kan klokken. Dit kan nu nog niet. Nu doe ik het in 3 stappen.straks worden dus ook complexe patronen gemakkelijker te programmeren
Gebruikersavatar
Flupke
Berichten: 818
Lid geworden op: za 22 okt 2005, 12:06
Locatie: Wemmel België. .. .. .

Bericht door Flupke »

Waarom hebt u gekozen voor schuifregisters en niet de multiplexen?
Dam heb je maar een X,Y,Z coördinaat nodig wat mss. gemakkelijker te programmeren is.
bazzz
Berichten: 406
Lid geworden op: wo 8 feb 2006, 19:42
Locatie: . .

Bericht door bazzz »

demultiplexer? hmmmmm qua programmeren werkt dit best goed. Maaaaaaaaaar voor een volgende versie zal ik er eens naar kijken:P

trouwens ik kan nu al perfect letters enzo weergeven. Op dit moment ben ik met de scrolfunctie bezig:P

ik heb wel een 20mhz kristal eraan gehangen. de interne oscilator is toch te sloom:P

grtz Bas
dj jens
Berichten: 1543
Lid geworden op: ma 2 jan 2006, 11:30
Locatie: Den Haag.. .
Contacteer:

Bericht door dj jens »

Ik ben gister avond ook maar eens begonnen. ik heb alleen een karton gemaakt met gaten waar ik de leds in druk. dan soldeer ik ze en gaan de leds er weer uit. zo krijg ik mooie vierkanten :lol:
p.s. dat swarte is krimpkous

sorry voor de brakke fotos :P
Bijlagen
foto kubus 01.jpg
foto kubus 01.jpg (7.53 KiB) 47851 keer bekeken
foto kubus 02.jpg
foto kubus 02.jpg (7.85 KiB) 47852 keer bekeken
Gebruikersavatar
cheeta
Berichten: 514
Lid geworden op: do 7 okt 2004, 21:16
Locatie: . .. .. .. .. .. .. .

Bericht door cheeta »

welke bc327 heb je precies gebruikt? de 16 de 25 of de 40?
dj jens
Berichten: 1543
Lid geworden op: ma 2 jan 2006, 11:30
Locatie: Den Haag.. .
Contacteer:

Bericht door dj jens »

ik? ik ga het anders doen ;-)
bazzz
Berichten: 406
Lid geworden op: wo 8 feb 2006, 19:42
Locatie: . .

Bericht door bazzz »

cheeta schreef:welke bc327 heb je precies gebruikt? de 16 de 25 of de 40?
de 16:P maar eigenlijk zijn mijn weerstanden te hoog gekozen. Ik vind dat er iets teweinig licht van de kubus af komt(versie 2 heb ik het nu over) ik zal er binnenkort wel weer wat foto's van plaatsen. Kmoet eerst nog een paar leuke effecten maken:D

enne Jens vind je dat niet zonde die krimpkous? ik denk dat dat alleen echt mooi wordt als je alles van de pootjes helemaal zwart krijgt

grtz bas
dj jens
Berichten: 1543
Lid geworden op: ma 2 jan 2006, 11:30
Locatie: Den Haag.. .
Contacteer:

Bericht door dj jens »

anders zal elke led in kortsluiting staan.
ik zal hem toch in het donker gebruiken dus zal dat niet zo opvallen.
bazzz
Berichten: 406
Lid geworden op: wo 8 feb 2006, 19:42
Locatie: . .

Bericht door bazzz »

netjes de pootjes buigen;) Met duoleds is het mij ook gelukt en met gewone leds is het helemaal geen probleem;)
dj jens
Berichten: 1543
Lid geworden op: ma 2 jan 2006, 11:30
Locatie: Den Haag.. .
Contacteer:

Bericht door dj jens »

jajaja :P
dj jens
Berichten: 1543
Lid geworden op: ma 2 jan 2006, 11:30
Locatie: Den Haag.. .
Contacteer:

Bericht door dj jens »

na gisteravondals wat begonnen te zijn aan het ''moederboard'' ben ik op een idéé gekomen. omdat jre voor elke andere handeling een pic opnieuw moet proggen wil ik er een klein programmertje bij bouwen. hiervoor is de Simpele pic programmer van circutisonline al goed. kan ik daarvoor hetzelfde ic voetje gebruiken?
Mat Janssen
Moderator
Moderator
Berichten: 11594
Lid geworden op: wo 10 dec 2003, 18:36
Locatie: nederweert. .. .. .. .. .. .. .. .. .

Bericht door Mat Janssen »

Zou ik niet doen, kijk een naar in circuit programming van die chip.
Het kost je maar 4 of 5 pinnetjes op je board en met een plugje naar een programming doosje kun je dan voor altijd al je applicaties aan, zonder dat je telkens een komplete programmer op je board moet bouwen.
De chip hoeft er dan nooit meer uit.
signature ruimte te huur ;-)
Verhuurd :!:
dj jens
Berichten: 1543
Lid geworden op: ma 2 jan 2006, 11:30
Locatie: Den Haag.. .
Contacteer:

Bericht door dj jens »

ok, ik zal zoeken
Gebruikersavatar
cheeta
Berichten: 514
Lid geworden op: do 7 okt 2004, 21:16
Locatie: . .. .. .. .. .. .. .

Bericht door cheeta »

wisp628 of galvawisp

www.voti.nl
Mat Janssen
Moderator
Moderator
Berichten: 11594
Lid geworden op: wo 10 dec 2003, 18:36
Locatie: nederweert. .. .. .. .. .. .. .. .. .

Bericht door Mat Janssen »

Dat is ook een goede keuze. :lol:
signature ruimte te huur ;-)
Verhuurd :!:
Gebruikersavatar
cheeta
Berichten: 514
Lid geworden op: do 7 okt 2004, 21:16
Locatie: . .. .. .. .. .. .. .

Bericht door cheeta »

met hoeveel % mag ik de weerstand verlagen ivm het multiplexen? ik maak een kubus van 7x7x7 dus heb 1/343.

ik moet 100 - 160 ohm halen voor mijn leds. als ik met 5V werk.

zou 56 ohm voor de leds ook gaan anders? om enigzins nog wat heldrheid te houden in de leds.
Mat Janssen
Moderator
Moderator
Berichten: 11594
Lid geworden op: wo 10 dec 2003, 18:36
Locatie: nederweert. .. .. .. .. .. .. .. .. .

Bericht door Mat Janssen »

Je mag gerust tot 100 mA piekstroomjes gaan hoor bij een dutycycle van 16%
signature ruimte te huur ;-)
Verhuurd :!:
bazzz
Berichten: 406
Lid geworden op: wo 8 feb 2006, 19:42
Locatie: . .

Bericht door bazzz »

bij 7*7*7 heb je een duty-cycle van 14.3% en 100ma is wel vrij veel dan haal je dus echt wel de maximale lichtsterkte uit je leds. Houd er dan wel rekening mee dat je teveel licht uit kan stralen. Waardoor je figuren niet echt duidelijk zijn. Ik heb mijn weerstanden berekent op 20ma door het ledje. Met een duty-cycle van 1/7 heb je dan 3ma door het ledje. Dat is eigenlijk wel te weinig. Dus mishcien ga ik nog een keer 100 weerstanden vervangen:P

fotowtjes van versie2:

Afbeelding
Afbeelding
Afbeelding

foto's doen de kubus niet echt recht maarja nu hebben jullie een idee:P
Bassie
Berichten: 11
Lid geworden op: do 11 jan 2007, 16:16

Bericht door Bassie »

Op naar de RGB Led kubus :P
Gebruikersavatar
elektronica amateurtje
Berichten: 1079
Lid geworden op: ma 29 mei 2006, 19:20
Locatie: heist op den berg.. .. .

Bericht door elektronica amateurtje »

Mooi werk
met vriendelijke groenten robin.
Mijn favoriete wet:De wet van de minste
inspanning.
Those about to rock salute you !!
Plaats reactie