Request: Schakelschema 8x8x8 LED Cube

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • bindsa
  • Registratie: Juli 2009
  • Niet online
Ik ben bezig met het maken van een 8x8x8 LED Cube, ik had van een tweaker een ontwerp gekregen. Dat ontwerp heb ik helemaal in elkaar gesoldeerd op een experimenteerbordje, maar het geheel werkt voor geen meter, en ik vertrouw het ontwerp ook helemaal niet (heb er al meerdere fouten in ontdekt..). Dus mijn vraag is nu, heeft iemand een ontwerp liggen voor zo'n kubus die werkend is bevonden?

En nog een andere praktische vraag: Bij het solderen van het vorige ontwerp heb ik gemerkt dat er superveel draden naar GND en VCC geschakeld moeten worden, bij mijn eerste probeersel heb ik al die draden op 1 soldeereilandje weten te persen, maar dat werkte niet handig (je smelt er 1 vast, schieten er 3 los.. enz.), weet iemand iets slimmers?

Tot slot: Weet iemand een goed etsbedrijf (dan overweeg ik om het te laten etsen...)?

Schema wat ik nu gebruikt heb:
Schema LED Kubus

Wijzigingen hierin:
- Pin 14 van IC 1 ook daadwerkelijk aan Vcc +5V gehangen
- Pin 10 en 15 van IC 2 aan respectievelijk + 5V en GND gehangen

Tests hiermee:
- Heb de PIC geprogd met een Wisp648
- Programma code:
	LIST P=16F628A
    include <P16F628A.INC>
__CONFIG _CP_OFF & _DATA_CP_OFF & _BODEN_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _HS_OSC & _LVP_OFF
	ERRORLEVEL -302 ; free 16F628 RAM starts at 0x20(depends on type microcontroller)
	CBLOCK 0x20
	Var1
	bits1
	cntr1
	cntr2
	cntr3
	herhalen
	herhalen2
    ENDC
	#define	BANK0	bcf	STATUS,RP0	; RAM PAGE 0
	#define	BANK1	bsf	STATUS,RP0	; RAM PAGE 1

	#define	data		PORTB,0	;dit is dus pin 14 van het eerste schuifregister(data pin)
	#define	klok		PORTB,2	;klokingang van eerste schuifregister(pin 11)
	#define	latch		PORTB,1 ;dit is de latch van schuifregister 1,2 en 3(pin12)

	#define	vdata		PORTB,4	;schuifregister van de verdiepingen
	#define	vklok		PORTB,6	
	#define	vlatch		PORTB,5 

	;startadres of the controller
	org 0x0000
; For using A0-A3 as digital I/O 
		movlw	D'7' 		; 
        movwf	CMCON		; Comparators off, all pins digital I/O 
; Reset Port values
        clrf	PORTA	
        clrf	PORTB      
	BANK1			; Switch to bank 1
        movlw	b'00000000'	;
        movwf	TRISA		; PORTA = all outputs
        movlw	b'00000000'	; 
        movwf	TRISB		; PORTB = all outputs
	BANK0			; Switch to bank 1
main
	movlw	b'00000000'
	call	LOOPLICHT
	movlw	b'00000000'

	goto 	main

LOOPLICHT

	movlw	b'00000000'
	call	inklokken
	call	inklokken
	call	inklokken
	call	inklokken
	call	inklokken
	call	inklokken
	call	inklokken
	call	inklokken		;op alle registers staat nu een 0
	call	v1
	call	lopen
	call	v2
	call	lopen
	call	v3
	call	lopen
	call	v4
	call	lopen
	call	v5
	call	lopen
	call	v6
	call	lopen
	call	v7
	call	lopen
	call	v8
	call	lopen


lopen
	movlw	d'8'
	movwf	herhalen
l1	movlw	b'00000001'
	call	inklokken
	decfsz	herhalen,f
	goto	l1				;8 keer 00000001 inklokken
	call	vertraging
	movlw	d'8'
	movwf	herhalen
l2	movlw	b'00000010'
	call	inklokken
	decfsz	herhalen,f
	goto	l2			
	call	vertraging	
	movlw	d'8'
	movwf	herhalen
l3	movlw	b'00000100'
	call	inklokken
	decfsz	herhalen,f
	goto	l3		
	call	vertraging	
	movlw	d'8'
	movwf	herhalen
l4	movlw	b'00001000'
	call	inklokken
	decfsz	herhalen,f
	goto	l4			
	call	vertraging
	movlw	d'8'
	movwf	herhalen
l5	movlw	b'00010000'
	call	inklokken
	decfsz	herhalen,f
	goto	l5		
	call	vertraging	
	movlw	d'8'
	movwf	herhalen
l6	movlw	b'00100000'
	call	inklokken
	decfsz	herhalen,f
	goto	l6		
	call	vertraging
	movlw	d'8'
	movwf	herhalen
l7	movlw	b'01000000'
	call	inklokken
	decfsz	herhalen,f
	goto	l7			
	call	vertraging
	movlw	d'8'
	movwf	herhalen
l8	movlw	b'10000000'
	call	inklokken
	decfsz	herhalen,f
	goto	l8	
	call	vertraging
	return		
	
v_all
	call	delay
	movlw	b'00000000'
	call	vinklokken
	return
v8 	call	delay
	movlw	b'11111110'
	call	vinklokken	
	return
v7	call	delay
	movlw	b'11111101'
	call	vinklokken	
	return
v6	call	delay
	movlw	b'11111011'
	call	vinklokken
	return
v5	call	delay
	movlw	b'11110111'
	call	vinklokken
	return
v4	call	delay
	movlw	b'11101111'
	call	vinklokken
	return
v3	call	delay
	movlw	b'11011111'
	call	vinklokken
	return
v2	call	delay
	movlw	b'10111111'
	call	vinklokken
	return
v1  		; 12345678
	call	delay
	movlw	b'01111111'
	call	vinklokken
	return
inklokken
		movwf	Var1		; zet de waarde vanuit w in Var1. dit is het getal wat geklokt moet worden
		movlw	D'8'		;zet de waarde 24 in het werkregister
		movwf	bits1		;sla de waarde 24 uit w op in bits1 dit is het aantal bits wat ingeklokt moet worden
loop2	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		data		;zo nee, zet de datalijn naar 0
		btfsc	STATUS, C	; is carry 0?
		bsf		data		;zo nee data is 1
		bsf		klok
		nop		
		bcf		klok		;bitje is nu ingeklokt
		decfsz	bits1,f		;verlaag bits1 met één totdat die nul is
		goto	loop2		; is bits1 0? dan "return" zo nee ga naar loop1
		bsf		latch
		nop
		bcf		latch		;latch dus resultaat is zichtbaar
		return
vinklokken
		movwf	Var1		; zet de waarde vanuit w in Var1. dit is het getal wat geklokt moet worden
		movlw	D'8'		;zet de waarde 24 in het werkregister
		movwf	bits1		;sla de waarde 24 uit w op in bits1 dit is het aantal bits wat ingeklokt moet worden
loop3	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		vdata		;zo nee, zet de datalijn naar 0
		btfsc	STATUS, C	; is carry 0?
		bsf		vdata		;zo nee data is 1
		bsf		vklok
		nop		
		bcf		vklok		;bitje is nu ingeklokt
		decfsz	bits1,f		;verlaag bits1 met één totdat die nul is
		goto	loop3		; is bits1 0? dan "return" zo nee ga naar loop1
		bsf		vlatch
		nop
		bcf		vlatch		;latch dus resultaat is zichtbaar
		return
delay	movlw	D'1'		;15
		movwf	cntr2
delay2	movlw	D'250'		;250
		movwf	cntr1
delay3	decfsz	cntr1, f 
		goto	delay3
		decfsz	cntr2, f
        goto	delay2
		return

vertraging
		movlw	D'255'
		movwf	cntr2
ver1	movlw	D'255'
		movwf	cntr1
ver2	decfsz	cntr1, f 
		goto	ver2
		decfsz	cntr2, f
        goto	ver1
		return
		END



Resultaten:

Niks gaat branden :o

Ik heb de schakeling even doorgemeten, is allemaal in orde. Dus wat er mis gaat vat ik niet.

[ Voor 84% gewijzigd door bindsa op 08-07-2010 19:12 ]


Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 12-10 06:44

Sprite_tm

Semi-Chinees

Loos misschien, maar staat hier niet iets tussen?

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Je zou natuurlijk ook jouw schema eventjes kunnen posten i.p.v. om een kant-en-klare oplossing te vragen.

Acties:
  • 0 Henk 'm!

  • bassie
  • Registratie: November 2006
  • Laatst online: 12-06 11:37
[HOWTO] LED kubus 5*5*5 met 74HC595

Als 5*5 of 8*8 maakt niet uit, allemaal hetzelfde idee.

Acties:
  • 0 Henk 'm!

  • bindsa
  • Registratie: Juli 2009
  • Niet online
Osiris schreef op donderdag 08 juli 2010 @ 17:38:
Je zou natuurlijk ook jouw schema eventjes kunnen posten i.p.v. om een kant-en-klare oplossing te vragen.
bassie schreef op donderdag 08 juli 2010 @ 18:13:
[HOWTO] LED kubus 5*5*5 met 74HC595

Als 5*5 of 8*8 maakt niet uit, allemaal hetzelfde idee.
Sprite_tm schreef op donderdag 08 juli 2010 @ 17:37:
Loos misschien, maar staat hier niet iets tussen?
TS aangepast ;)

Acties:
  • 0 Henk 'm!

  • bindsa
  • Registratie: Juli 2009
  • Niet online
Ik heb zo'n gevoel dat ik een omgekeerd schema gebruik. Ik heb de LED's zo gesoldeerd dat de verdiepingen de min polen zijn en de kolommen de plus polen, als ik naar het schema kijk is het daar volgens mij andersom gedaan. Kan iemand dat bevestigen?

Zo ja, dan kan ik een nieuw PCB gaan solderen :P Nou wou ik het bij het nieuwe PCB als volgt gaan doen:

- Aan de uitgangen van de schuifregisters voor de kolommen een 82 ohm weerstand (waarom overal een transistor aan? (zoals in het vorige ontwerp))
- Dan moet ik alleen nog iets bedenken om de min polen van de LED verdiepingen naar GND geschakeld te krijgen. Ik zat te denken om een transistor aan de uitgangen van het schuifregister voor de verdiepingen te hangen, maar ik zou werkelijk niet weten wat voor transistor / darlington array dat moet gaan worden. Kan iemand daar bij helpen?

Waarom de boel waarschijnlijk niet werkte: Ik heb de voeding doorgemeten (op papier was het 5V 2A): maar liefst 9.7 volt!!! Heb dus waarschijnlijk de microcontroller opgeblazen. Nu dus maar een spanningsregelaar van 5V ertussen.

[ Voor 11% gewijzigd door bindsa op 09-07-2010 10:49 ]


Acties:
  • 0 Henk 'm!

  • bassie
  • Registratie: November 2006
  • Laatst online: 12-06 11:37
Zoals ik al zei, zoek eerst uit hoe het werkt. Hoe moet je ooit fout zoeken als je niet weet hoe het schema in elkaar zit?

De ULN2003 schakelt naar de massa, dus de - (kathode) van de led moet aan de ULN. De + komt aan de transistoren rechts.

Acties:
  • 0 Henk 'm!

  • Aloys
  • Registratie: Juni 2005
  • Niet online
Test je LED Cube eens zonder de Pic, dan heb je er geen last van dat je 'em hebt opgeblazen. Zet de spanning op een van je aansluiting en kijk of er gebeurt wat je verwacht, zo niet: uitzoeken waarom ;) .

Acties:
  • 0 Henk 'm!

  • bindsa
  • Registratie: Juli 2009
  • Niet online
bassie schreef op zaterdag 10 juli 2010 @ 06:28:
Zoals ik al zei, zoek eerst uit hoe het werkt. Hoe moet je ooit fout zoeken als je niet weet hoe het schema in elkaar zit?

De ULN2003 schakelt naar de massa, dus de - (kathode) van de led moet aan de ULN. De + komt aan de transistoren rechts.
Juist dat dacht ik dus al, ik moet dus een darlington array hebben die ik aan de anode van de led moet koppelen (anders kan ik de hele kubus opnieuw gaan solderen... 8)7 )

Acties:
  • 0 Henk 'm!

  • tolunaygul12
  • Registratie: Mei 2006
  • Laatst online: 06:41
In elektuur stond een keer een LED-CUBE. Misschien kan je daar eens naar kijken hoe de aansturing van de cube in elkaar zit. http://www.elektor.nl/art...le-lichtbron.742629.lynkx

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09

mad_max234

AMD Athlon II M320

En zet over elke VCC van de ic zo dicht mogelijk bij de IC een 100nF condensator, om storingen op te vangen die ontstaan door de IC's zelf. En op de latch pin een kleine condensator, om flikkeren te voorkomen.

Maar zoals al eerder is gezegd zoek eerst uit hoe alles werkt voordat je begint met bouwen, anders kan je niet echt gaan debuggen als je niet weet wat wel en niet goed zit. Maar er eerst eentje met 1 595 en zoek uit wat de eigenschappen zijn van zo een schuif register.

-Andere hobby- -

Pagina: 1