Schuifregister en 3d kubus

Zoals een aantal wel weten ben ik bezig met het maken van een 6*6*6 Ledkubus.( Hier staat mijn andere onderwerp met vragen over de kubus)
Ik gebruik daarvoor 6 tal 74hc595.
Nu heb ik een testopstelling gemaakt om de werking van de schuifregister beter te leren begrijpen. Deze bestaat uit 16 ledjes die met de plus op Q0 aangesloten zijn en de minnen op Q1 t/m Q4. de datapin is aangesloten op poort A1, de clockpin op A0 en de latchpin op A3.
Ik heb dit topic doorgelezen en ik snap de werking van zo'n schuifregister nu.

Ik ben er al een tijdje mee bezig, maar ik snap nog steeds niet hoe ik hiervoor een code moet schrijven. Ik heb de help in Proton door gelezen(ik werk namelijk met Basic) over de SHOUT werking maar ik kom er niet uit.

Mijn vraag was daarom of er iemand een voorbeeldstukje heeft, waar de werking en betekenis van de gebruikte codes in beschreven staan, waarmee ik dan mee kan gaan exprimeteren.

Alvast heel erg bedankt.
Ik heb de kubus nu af maar zonder programmatje is het ook niet erg veel aan.

Murphy's Law: Anything you try to fix will take longer and cost more than you think.

Deze bestaat uit 16 ledjes die met de plus op Q0 aangesloten zijn en de minnen op Q1 t/m Q4.

Die mag je nog eens heel goed komen uitleggen, want volgens mij gaat er iets niet goed..

In the beginning there was nothing.... and even that exploded...

Ik heb ze aangesloten aan de hand van dit schema. Ik heb de plus kanten van de ledjes aangesloten op Q0 en de min kanten op Q1t/mQ4. Of heb ik iets verkeerd gedaan??

Murphy's Law: Anything you try to fix will take longer and cost more than you think.
klein is fijn

Moderator

Op 3 januari 2008 22:43:15 schreef jorim23:
Of heb ik iets verkeerd gedaan??

Ja. Het schema zegt heel iets anders.

hoe zit dat dan precies met die verdiepingen?(ben m nu opnieuw aan t aansluiten)
Waar moeten die pin op aangesloten worden?

Murphy's Law: Anything you try to fix will take longer and cost more than you think.

Je moet gewoon de plus van de led op een Qx aansluiten en gewoon ieder led zijn eigen ground. Anders gaat het niet werken denk..

We gaan bij het begin beginnen.
Jij gaat als de wiedeweerga dit schema nabouwen:

http://home.casema.nl/galaxy/shifter.jpg

Dan gaan we eens kijken of je een pic aan kan trappen.
Prog de pic met deze code :

code:

Device=16F628A

Config intrc_osc_noclkout, CP_OFF, WDT_OFF, PWRTE_ON, LVP_OFF,BODEN_OFF
ALL_DIGITAL=true
DelayMS 50
TRISA=%11110000

Dim shift_register1 As Byte
Dim shift_register2 As Byte

Symbol latch1=PORTA.3
Symbol latch2=PORTA.2
Symbol dpin=PORTA.1
Symbol Cpin=PORTA.0

main:

shift_register1 = %01010101
shift_register2 = %00001111


SHOut dpin, Cpin, msbfirst, [shift_register1]               ;clock de data naar 1e shift register
PulsOut latch1, 10                                          ;breng de data naar de uitgang.

SHOut dpin, Cpin, msbfirst, [shift_register2]               ;clock de data naar 2e shift register
PulsOut latch2, 10                                          ;breng de data naar de uitgang.

End

Hier ga je een poosje mee spelen.
Als je elke led naar wens kan manipuleren, en je alles voor 100% snapt, dan kom je terug, en dan gaan we het over multiplexen enzo hebben.

Okay ??

In the beginning there was nothing.... and even that exploded...

Zal een proberen:) Bedankt:)

Murphy's Law: Anything you try to fix will take longer and cost more than you think.

Op 3 januari 2008 23:41:06 schreef ~Galaxy:
We gaan bij het begin beginnen.
Jij gaat als de wiedeweerga dit schema nabouwen:
....
Okay ??

Ben je altijd zo dominant? In het leger gezeten?

Dat schema van TS klopt wel hoor (zo op het eerst ook althans). Het werkt met multiplexing zodat je minder outputs nodig hebt. Elke kolom een eigen uitgang en elke rij (verdieping) een andere.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

:P Je hebt inderdaad gelijk:P Ik zie het nu pas.
Laten we maar denken dat ~Galaxy het goed bedoeld.
Ergens heeft hij wel gelijk. Ik moet dit ook nog leren.

Ik heb nu alles aangesloten en een tijdje geprobeerd, maar ik snap er nog niks van. Of alle ledjes zijn bij mij uit of allemaal aan. Het lukt me niet om maar een ledje aan te krijgen.

Wat doen deze dingen:
BODEN_OFF.
Shout.
Msbfirst.

Heb je misschien een tip hoe ik bijvoorbeeld 1 ledje aan kan doen en de rest uit? Heeft dat te maken met %01010101? Want als ik ze daar allemaal op 1(dus input) zet gaan ze uit, wat ook niet zo gek is omdat je die poorten blokkeerd voor een output.

Murphy's Law: Anything you try to fix will take longer and cost more than you think.

Toevallig ben ik ook bezig met dit project alleen vond ik 5x5x5 leuker. Ook hetzelfde probleem en alles is mij nu helemaal duidelijk met wat hulp van de mensen hiero.

http://www.circuitsonline.net/forum/view/56280

Mijn probleem-topic met kant en klare stukjes code.

Op 4 januari 2008 13:03:03 schreef jorim23:
Heb je misschien een tip hoe ik bijvoorbeeld 1 ledje aan kan doen en de rest uit?

Je moet gaan kijken wat er nodig is om een bepaald ledje aan te krijgen. Welke uitgang moet '1' zijn, en welke '0'. Als je dat weet, dan weet je wat je in de schuifregisters moet shiften. Maak je eerste programmaatje niet te ingewikkeld, alles eruit wat niet nodig is. Dan _alleen_ die registers vullen. In zo'n stabiele situatie kun je ook goed meten hoe alle outputs staan.

Ik ken Proton niet.
Shout -> Shift out functie?
Msbfirst -> Most Significant Bit first (volgorde van shiften)

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Op 4 januari 2008 13:03:03 schreef jorim23:
:P Je hebt inderdaad gelijk:P Ik zie het nu pas.
Laten we maar denken dat ~Galaxy het goed bedoeld.
Ergens heeft hij wel gelijk. Ik moet dit ook nog leren.

Het was niet rot bedoeld hoor.:-) Ik wilde de dingen even zo duidelijk mogelijk stellen.
Long story short: Leer eerst wat die shiftregistertjes precies doen, en ga daarna pas met ingewikkelder dingen aan de gang.

Wat doen deze dingen:
BODEN_OFF.
Shout.
Msbfirst.

Brown Out Detect Enable.
Shift out.
Most Significant Bit first

Heb je misschien een tip hoe ik bijvoorbeeld 1 ledje aan kan doen en de rest uit? Heeft dat te maken met %01010101? Want als ik ze daar allemaal op 1(dus input) zet gaan ze uit, wat ook niet zo gek is omdat je die poorten blokkeerd voor een output.

Met %00010000 zet je 1 ledje aan.

In the beginning there was nothing.... and even that exploded...

Op 4 januari 2008 13:54:28 schreef ~Galaxy:

Brown Out Detect Enable.
Shift out.
Most Significant Bit first

Oke maar wat wil het zeggen. Wat doet het? Brown Out... Hierbij denk ik meer aan iets anders:+

Murphy's Law: Anything you try to fix will take longer and cost more than you think.

Brown out is als je de voeding eraf haalt. De spanning op de uC zakt dan weg en dat wordt gedetecteerd door die functie. Sommige uC's gaan in reset, andere geven een interrupt.
De beide andere termen zijn wel duidelijk toch?

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Msbfirst... Meest Logische Bit als eerste uitsturen?
Shift out.. Bits uitsturen?

Murphy's Law: Anything you try to fix will take longer and cost more than you think.

bit = Binary digIT :-)

[Bericht gewijzigd door flipflop op vrijdag 4 januari 2008 14:14:26 (10%)

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Murphy's Law: Anything you try to fix will take longer and cost more than you think.

Uiteraard. Gewoon letterlijk vertalen. Woordenboek.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Ik weet niet wat ik verkeerd doe, maar ik krijg de lampjes niet goed brandend.
Ik heb overal weerstanden van 330 Ohm tussen maar als ik dan de originele code in mijn pic laat, branden er 2 vel en de rest heel zwakjes.
En als ik de schuif_register1 en 2 verander in %11111111 zijn ze allemaal uit.

Murphy's Law: Anything you try to fix will take longer and cost more than you think.

Heb je alles al gesoldeerd? Zo ja: Ook alles netjes met een socketje gedaan? Ik had dat niet waardoor alle schuifregisters stuk waren: Ze deden niet wat ze moesten doen. Mooi socketje gesoldeerd en toen ging het wel.

Als je alles op een breadbordje hebt: Goed kijken of je nergens een kortsluiting hebt. Als 2 fel branden dan krijgen die dus meer stroom dan de rest. Even goed kijken dus.

Ik heb geen sluitingen. Ik heb alles al een aantal keren nagekeken maar t blijft t zelfde.

Murphy's Law: Anything you try to fix will take longer and cost more than you think.

En wat MEET je? Meten is nog steeds weten. Het is natuurlijk vreemds dat sommige leds fel branden en andere niet. Zijn alle uitgangen van de registers zoals je verwacht?

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Ik zal morgen nog eens alles nakijken. Ik ben er achter gekomen dat de 7805 warm wordt. Dus er MOET wel een sluiting ergens zitten, want normaal wordt ie niet warm.(niet zo warm al nu tenminste)
Laat morgen even wat weten.

Groet Jorim

Murphy's Law: Anything you try to fix will take longer and cost more than you think.

Op 5 januari 2008 11:05:42 schreef flipflop:
En wat MEET je? Meten is nog steeds weten. Het is natuurlijk vreemds dat sommige leds fel branden en andere niet. Zijn alle uitgangen van de registers zoals je verwacht?

Ik meet tussen de leds die fel branden 1,7V en degene die niet branden 1,1 volt.
Ik heb alles weer losgehaald en puntje voor puntje aangesloten, maar het blijft hetzelfde.

Murphy's Law: Anything you try to fix will take longer and cost more than you think.