jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
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.
~Galaxy
In the beginning there was nothing.... and even that exploded...
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..
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
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??
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.
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
hoe zit dat dan precies met die verdiepingen?(ben m nu opnieuw aan t aansluiten)
Waar moeten die pin op aangesloten worden?
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..
~Galaxy
In the beginning there was nothing.... and even that exploded...
We gaan bij het begin beginnen.
Jij gaat als de wiedeweerga dit schema nabouwen:
Dan gaan we eens kijken of je een pic aan kan trappen.
Prog de pic met deze 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 ??
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
Zal een proberen:) Bedankt:)
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
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.
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
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.
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.
flipflop
"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:
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)
~Galaxy
In the beginning there was nothing.... and even that exploded...
Op 4 januari 2008 13:03:03 schreef jorim23:
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.
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
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:+
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
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?
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
Msbfirst... Meest Logische Bit als eerste uitsturen?
Shift out.. Bits uitsturen?
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
bit = Binary digIT
[Bericht gewijzigd door flipflop op vrijdag 4 januari 2008 14:14:26 (10%)]
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
Maar de rest klopte wel?
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Uiteraard. Gewoon letterlijk vertalen. Woordenboek.
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
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.
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.
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
Ik heb geen sluitingen. Ik heb alles al een aantal keren nagekeken maar t blijft t zelfde.
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
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?
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
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
jorim23
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.