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%)]

Kan je niet beter een schuifregister gebruiken? 74HC595 ofzo? Dan kan je gewoon een byte erin zetten.

74154 4 line to 16 line demultiplexer

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.

TS wil ook maar één LED tegelijk laten branden!!

|:( 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.

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 ]

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 heeft

Waarom 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%)]

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

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?

Bij conrad hebben ze het niet.
Bij www.dickbest.nl heb ik hem wel gezien.