Ik heb nu 8 led lampjes om aan te sturen, deze heb ik alle 8 aangesloten op een microcontroler (Arduino). Het is de bedoeling dat slechts 1 ledje brand, dus het moet mogelijk zijn om met 3 digital outputs 8 lampjes te bedienen.
2^3=8
Maar nu komt de praktijk, ik heb geen idee hoe ik de logische poorten (Xor, or, and, etc.) moet opstellen of hoeveel ik er nodig heb. Kan iemand me een duidelijk voorbeeld geven?
http://scitec.uwichill.edu.bb/cmp/online/P10F/decoders.htm
wat je nodig hebt is een 3 naar 8 decoder, zijn verschillende IC voor.
74237 of 74238 enz....
Ah bedankt, ik kijk wel even op conrad of ze die op vooraad hebben.
EDIT: is dit een goede?
http://www2.produktinfo.conrad.com/datenblaetter/150000-174999/174351-…
[Bericht gewijzigd door lemio op (47%)]
Stynus
Met vriendelijke groet, Stynus ||| http://www.elektronicastynus.be
Kan je niet beter een schuifregister gebruiken? 74HC595 ofzo? Dan kan je gewoon een byte erin zetten.
Tidak Ada
Rommelige werkplek? In de natuur is wanorde de meest stabiele toestand; de entropie is dan maximaal. Het handhaven van "orde" kost daarom altijd energie.
benleentje
Golden Member
Dit gaat niet werken zoals ik denk dat je het wilt. Met de 3 naar 8 demultiplexer is er maar 1van de 8 uitgangen hoog, of afhankelijk van het type is er maar 1 van de 8 uitgangen laag en de andere 7 dus hoog.
2 ledjes tegelijkertijd kan dus niet. Kan wel via een truck door heel snel te schakelen lijken het of er meer aan zijn maar die zijn dan niet tegelijkertijd aan.
Met een schuif register zoals de 74595 kan het wel. Deze heeft 3 pinnen van de uC nodig en kan je een hele byte inklokken. Als je meerdere van deze achter elkaar zet kan je dus ook meerdere bytes inklokken.
Tidak Ada
Rommelige werkplek? In de natuur is wanorde de meest stabiele toestand; de entropie is dan maximaal. Het handhaven van "orde" kost daarom altijd energie.
benleentje
Golden Member
wat ben ik daar ziek
van. Nu is mijn kristallen bol weer kapot en kan ik niet zien wat jullie allemaal denken.
.
Maar er is ook goed nieuws
. Met een schuif register kan je ook 1 led laten branden.
[Bericht gewijzigd door benleentje op (28%)]
Ik hoef idd maar één ledje tegelijkertijd te laten branden, maar misschien kies ik toch voor zo'n schuif register. Ik ken alleen de werking er niet van. Ik ben een beginner in de logische electronica.
Tidak Ada
Rommelige werkplek? In de natuur is wanorde de meest stabiele toestand; de entropie is dan maximaal. Het handhaven van "orde" kost daarom altijd energie.
Ik denk dat Schiedam er iets mee te maken heeft
Dit is de openingstopic:
Ik heb nu 8 led lampjes om aan te sturen, deze heb ik alle 8 aangesloten op een microcontroler (Arduino). Het is de bedoeling dat slechts 1 ledje brand, dus het moet mogelijk zijn om met 3 digital outputs 8 lampjes te bedienen.
2^3=8
Maar nu komt de praktijk, ik heb geen idee hoe ik de logische poorten (Xor, or, and, etc.) moet opstellen of hoeveel ik er nodig heb. Kan iemand me een duidelijk voorbeeld geven?
Heb ik geen kristallen bol voor nodig; zelfs geen leesbril.
Waarom dynamisch werken (schuifregister) in plaats van statisch (demultiplexer)??
Dit lijkt me echt eenvoudiger [ http://www.datasheet4u.com/share_search.php?sWord=SN74154 ]
benleentje
Golden Member
http://www.datasheetcatalog.org/datasheet/philips/74LV595DB.pdf
Je hebt een OE pin(13). Dit is een output eneble pin. Deze zorgt ervoor dat de uitgangen actief zijn of juist uit. Deze heb je niet nodig en hang je aan de massa.
STcp pin(12) maak je eerst 0. Nu zijn het schuif register en het output register los van elkaar. En wat er ingeschoven word is NOG NIET zichtbaar op de uitgang.
Op de data pin(14) zet je de waarde op die het moet worden. Daarna geef je 1 op de clock pin(11). Nu schuift de data naar binnen. Pin(11) maak je weer nul. Je zet nieuwe data op de data pin.
pin(13) STcp maak je weer laag. Nu gebeurt er iets leuks. De data in nu alleen nog in het schuif register staat wordt naar de uitgang geschoven en dus zichtbaar op de leds.
MR pin (10) moet aan de 5V. Dit is een reset pin. De reset maakt enkel alles 0 dit kan je ook doen door 8 nullen naar binnen te schuiven.
Op 10 augustus 2009 23:41:02 schreef Tidak Ada:
Ik denk dat Schiedam er iets mee te maken heeftWaarom dynamisch werken (schuifregister) in plaats van statisch (demultiplexer)??
Dit lijkt me echt eenvoudiger [ http://www.datasheet4u.com/share_search.php?sWord=SN74154 ]
Van dat schiedam moet je maar eens uitleggen:P.
Je vraag is wel interessant.
Met een 3 naar 8 ben je heel makkelijk klaar en houd je een simpel programma. Simpel is ook wat je er mee kan en dat is precies 1 led aanzetten.
Het schuifregister is lastiger. Maar eenmaal ingeprogrammeert kan je er 1 led mee aanzetten. Dus tot zover heb je gelijk.
Maar als lemio later meer ledjes wilt laten branden dan kan dat dus niet meer. voor de 3 naar 8 of schuif register heb je in beide gevallen maar 1 chip nodig en 3 pinnen van je uC.
Je kan dus lemio laten doen wat hij wilt of je geeft hem extra mogelijkheden waarvan hij mischien niet eens wist dat het kon wat precies hetzelfde kan als wat hij wilt maar ook nog meer mocht het nodig zijn.
@lemio.
Voor jouw de keuze.
Wil je 1 led aan en niets meer dan dat neem de 3 naar 8.
wil je wat anders neem dan een banaan.
[Bericht gewijzigd door benleentje op (40%)]
Stekkerdoos
To boldly go, where nog Stekkerdoos has ever gone before...
Op 10 augustus 2009 23:31:18 schreef lemio:
Ik hoef idd maar één ledje tegelijkertijd te laten branden, maar misschien kies ik toch voor zo'n schuif register. Ik ken alleen de werking er niet van. Ik ben een beginner in de logische electronica.
schuifregister aansturen is denk ik ingebouwd in de arduino software:
http://www.arduino.cc/en/Tutorial/ShiftOut
je kan natuurlijk ook zonder dit, en zelf de pinnen hoog en laag maken na mekaar:
void shiftOut(int pinData,int pinClock,int pinLatch,int data[],int numData){
digitalWrite(pinLatch,LOW);
digitalWrite(pinClock,LOW);
for(int i=0;i<numData;i++){
digitalWrite(pinData,(data[i]!=0));
digitalWrite(pinClock,HIGH);
digitalWrite(pinClock,LOW);
}
digitalWrite(pinLatch,HIGH);
}vrij straightforward code hoe je een schuifregister moet aansturen
in de datasheet staat meestal een voorbeeldje van hoe het moet weergegeven dmv een 'lijnschema' (of hoe heet dat, een aantal signalen in de tijd bemonsterd)
en je moet uiteraard de 'output enable' en 'master reset' pin aan de grond of 5V hangen, of er werkt alsnog niets
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Als je een paar extra chips wilt gebruiken, kan je voor schuifregisters of decoders gaan. Maar je kunt ook charlieplexen. Met 4 outputs kan je dan 12 leds aansturen. Met 5 outputs 20 leds. Dus als je 16 leds nodig hebt, heb je maar 1 pin meer nodig om 1 of twee chips te besparen..... (en mischien bespaar je ook nog 11 weerstanden).
Benleentje heeft gelijk, ik denk dat ik ga voor een shift register en een banaan. Hoewel ik van het bestaan van de banaan wel afwist en van het shift register niet. Omdat arduino examples + ingebouwde code heeft is het wel redelijk simpel (volgensmij). Ik kan alleen geen shift register vinden op conrad, is dat een crap winkel of zoek ik niet goed genoeg?
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
geef dan ook even een link naar het chipje....
http://www.dickbest.nl/webshop/index.php?act=viewProd&productId=87
http://www.conrad.nl/goto.php?artikel=147532
http://nl.farnell.com/texas-instruments/sn74hc595pwr/ic-8-bit-shift-re…
http://nl.farnell.com/on-semiconductor/mc74hc595an/74hc-cmos-74hc595-d…
http://www.samenkopen.net/action_product/411553/792708