goeiedag,

Ik wil eens beginnen aan een ledkubus maar vraag me eigenlijk af hoe je moet beginnen aan een programma.
Als je een bepaald "figuur" wil laten oplichten in de kubus hoe moet je dan te werk gaan qua code?

je kan het beste eenvoudig beginnen en daarna dingen gaan veranderen. dit duurt helaas wel het langs qua ontwikkelen maar je leert er ook het meest van. anders blijft het vooral op hulp van anderen afhangen en leer je het alsnog niet voor iets anders...

maar voor jou onderwerp: neem een paar 74hc595 schuifregisters.

je zet alle data achter elkaar. Dus bijvoorbeeld eerst de data voor je leds en daarna voor de rij.

voorbeeld:
wanneer je een 3x3x3 cubus neemt om te beginnen maak je er matrixen van. dus bv de min van alle leds in 1 rij aan elkaar. dan heb je dus 9x een gezamelijke min (voor iedere rij 1) dan hang je de plussen van de leds anelkaar. dat moet natuurlijk anders. wanneer je de min van de leds horizontaal hebt genomen (3x per laag dus) dan neem je de plussen van boven naar beneden.

nu heb je 9 plus aansluitingen (met weerstand) en 9 min aansluitingen.

dus sluit je aan op 4 595 schuigeregisters(3 kan ook maar zo kan je het makkelijker uitbreiden).

de aansturing gaat dus alsvorgt: wanneer je een + zet op een aansluiting en een min op een aansluiting zal de led die ertussen zit gaan branden. wanneer je dus meerdere +en aansluit en 1 min zullen alle aangesloten leds in die verbinding gaan branden. wanneer je dit snel genoeg doet zal je niet meer kunnen zien dat ze apart worden aangestuurt maar kan je dus wel met 2x9 aansluitingen alle leds aansturen. nu maakt het dus nog niet eens zoveel uit want direct aansturen is wel een stuk handiger als je doorgaat naar een 8*8*8.
je kan natuurlijk ook alle min aansluitingen van 1 laag aan elkaar leggen(hou je dus 3 over) en dan alle 9leds aansturen. dit gaat nog een stuk sneller.

codevoorbeeldje:


SHIFTOUT PORTB.0, PORTB.1, LSBFIRST,[counter\8,segments\8]   'data, clock
pulsout PORTA.4,1 
return