Ik ben bezig een interface te maken op de paralelle poort van de computer. Deze interface moet minstens 32 verschillende relais (of andere onderdelen) aan kunnen sturen.
Ik weet dat dit mogelijk is met een 4-16 decoder IC. Maar ik vraag mij of af hoe ik zo'n IC moet aansluiten aan de data-bits van de paralelle poort (weerstanden, diodes, enz.). Daarnaast zou het ook wel handig zijn om een type IC te weten.

Er ligt een schema, met wat uitleg, in je mailbox.

Type IC (met pennummers voor aansluitingen) staat erbij.

Type: 74154 (mag ook 74LS154 zijn).

Hartstikke bedankt, dit helpt me een heel eind op weg :)

Graag gedaan.
Als je nog iets wil weten, ...

Zou je dat schema misschien ook naar mij op kunnnen sturen, ik ben met ongeveer hetzelfde bezig :) (troplosti@orcaweb.cjb.net).

Alvast bedankt

Ligt in uw mailbox, Troplosti.

Voor het geval dat er nog iemand dit schema nodig heeft:

http://users.pandora.be/vge/CircuitsOnline/32relais.jpg

PS.: Die ",1" achter het type IC (74154) werd gegenereerd
door mijn programma om printlayouts te maken.
Waarvoor het dient, weet ik zelf niet.
Ik denk dat dit maar een index of zoiets is.
Dit heeft dus geen betekenis en kan genegeerd worden.

[Bericht gewijzigd door PowerPC603 op ]

Is het ook mogelijk om hier een buffer achter te hangen, zodat je ook 16 dingen tegelijk kan besturen ?

En daarnaast nog iets, is een soortgelijk iets ook mogelijk voor de inputs zodat je 16 (of meer) inputkanalen kunt maken ?

Volgens mij heb je geen buffer nodig omdat als je bijvoorbeeld 2,3,4,5 van de parallele poort openzet dan alle 16 poorten van U1 openstaan (als ik het goed begrepen heb).

Het probleem is dat ik niet alles tegelijk open wil hebben, maar bv. 3 of 4 tegelijk, snap je ?

Hier is een klein geheimpje.
Als jullie nu eens de parallelle poort (LPT) serieel aansturen, is alles veel eenvoudiger.
Je neemt een schuifregister, maakt niet uit hoeveel bits.

De ingang van dit register sluit je aan op datalijn 0 (pen 2 van LPT).

De klokingang sluit je aan op datalijn 1 (pen 3 van LPT).

Aan de uitgangen van dat schuifregister hang je nog een buffer.
Van die buffer sluit je de klokingang aan op datalijn 2 (pen 4 van LPT).

Dan kan je zelfs op deze manier 1024 lampen of motoren ELK AFZONDERLIJK aan of uit zetten (of zelfs meer).

Schema:

http://users.pandora.be/vge/CircuitsOnline/Serieel.jpg

Voor de software moeten jullie dan zelf wel zorgen.

Een voorbeeld:

Je wil enkel en alleen Q1 van IC 4 hoog hebben, terwijl al de rest laag moet worden.

Dan heb je dit bitpatroon nodig: 0000 1000
(Op het schema zet je dit patroon van boven naar beneden)

Je begint met de LSB (de laatste bit van dit patroon), een NUL dus.

Dus je schrijft "0" naar de LPT-poort.
Daarna moet je deze bit inklokken in het schuifregister.
Bij deze bit tel je "2" op (zodat datalijn 1 HOOG wordt)
en stuur je dit resultaat naar de LPT-poort (waarde is nu "2").

Deze kloklijn moet natuurlijk ook weer laag worden (trek 2 af van de waarde en stuur deze door).

Als je zo alle acht bits hebt ingeklokt, zet je een puls op datalijn 2 (waarde = 4).
Dus schrijf je de waarde 4 naar de LPT-poort gevolgd door 0.

Nu is alle data beschikbaar aan de uitgangen van IC's 3 en 4.

Volg dit signaalpatroon van links naar rechts:

http://users.pandora.be/vge/CircuitsOnline/Volgorde.jpg

LET WEL OP:
Wanneer je meer schijfregisters gaat gebruiken, gebruik dan ook een buffer tussen de LPT-pennen en de hardware.
De parallelle poort lijnen kunnen slechts enkele TTL-ingangen aan.
Ik weet zelf niet hoeveel, en dat ga ik liever niet uittesten.
Stel dat je 20 schuifregisters aan elkaar hangt, sluit dan
buffers aan tussen de parallelle poort en de hardware (vooral de klokingangen, omdat deze allemaal parallel hangen).
Voor de data-ingang is dit niet echt nodig, want hier hangt slechts 1 ingang op. (datalijn 0 = pen 2 van LPT).

Als je geen buffers plaatst, kan je de LPT-poort opblazen.

[Bericht gewijzigd door PowerPC603 op ]

Is er misschien ook een manier om de omgekeerde werking van zo'n shift register te krijgen, om zo bv 16 paralelle signalen serieel aan de paralelle poort als input door te geven ?

Op ma 30-09-2002 19:11:04 schreef tbot:
Is er misschien ook een manier om de omgekeerde werking van zo'n shift register te krijgen, om zo bv 16 paralelle signalen serieel aan de paralelle poort als input door te geven ?

Dat gaat op praktisch dezelfde manier, alleen gebruik je dan een shift register met ingangen i.p.v. uitgangen.

Marcel

Op ma 30-09-2002 22:14:20 schreef Marcel:

[...]

Dat gaat op praktisch dezelfde manier, alleen gebruik je dan een shift register met ingangen i.p.v. uitgangen.

Marcel

Zoals Marcel het hier beschrijft gaat het zeker.
Koppel deze ingangsschuifregisters dan simpelweg op de andere datalijnen, dan kun je data uitsturen en inlezen wanneer je wil.

Op vr 27-09-2002 14:16:00 schreef Troplosti:
Volgens mij heb je geen buffer nodig omdat als je bijvoorbeeld 2,3,4,5 van de parallele poort openzet dan alle 16 poorten van U1 openstaan (als ik het goed begrepen heb).

Dit klopt toch niet, hoor.
U1 (en U2) zijn 4 naar 16-decoders.

Deze accepteren een 4 bits getal (wat resulteert in 16 combinaties).
Wanneer je een bepaalde bitcombinatie maakt, wordt de overeenkomstige uitgang hier LAAG, terwijl de rest HOOG blijft. (dit komt door de geïnverteerde uitgangen)
Vb.: bitcombinatie 1010 (decimale waarde = 10) -> uitgang 10 wordt LAAG. (ingang D is MSB, ingang A is LSB)

wij hebben dit probleem anders getackeld en dat was met memory cellen in de vorm van T-flip flops. kun je alles aansturen met pulsjes. als een uitgang vanuit het IC hoog wordt. dan onthoud hij deze tot hij weer hoog wordt en dan wordt hij weer laag. Werkt zeker, maar bij aanzetten moet je wel ff zorgen dat alles laag wordt mbv pull down weerstand en condensator

k'heb ook wel intresse in het schema kun je hem mij ook ff doormeelen ????? ;)
bij voorbaad dank

Op di 01-10-2002 09:16:41 schreef bart II:
k'heb ook wel intresse in het schema kun je hem mij ook ff doormeelen ????? ;)
bij voorbaad dank

welk schema??? op welke post reageer je??

Ik denk dat ik nu wel genoeg info heb om naar me elektroboer te gaan om wat onderdelen in te slaan en te gaan testen :)

Iedereen die me geholpen heeft, bedankt :D

LET WEL OP:
Wanneer je meer schijfregisters gaat gebruiken, gebruik dan ook een buffer tussen de LPT-pennen en de hardware.
De parallelle poort lijnen kunnen slechts enkele TTL-ingangen aan.
Ik weet zelf niet hoeveel, en dat ga ik liever niet uittesten.
Stel dat je 20 schuifregisters aan elkaar hangt, sluit dan
buffers aan tussen de parallelle poort en de hardware (vooral de klokingangen, omdat deze allemaal parallel hangen).
Voor de data-ingang is dit niet echt nodig, want hier hangt slechts 1 ingang op. (datalijn 0 = pen 2 van LPT).

Als je geen buffers plaatst, kan je de LPT-poort opblazen.
[/quote]

Bedoel je met deze buffers diegene die je al in het schema getekend hebt?? Of bedoel je wat anders.... (hoeveel kosten die ic's?)

Op ma 30-09-2002 23:17:02 schreef PowerPC603:

[...]

Zoals Marcel het hier beschrijft gaat het zeker.
Koppel deze ingangsschuifregisters dan simpelweg op de andere datalijnen, dan kun je data uitsturen en inlezen wanneer je wil.

Maar wat regelt dan het clock signaal?

Op wo 02-10-2002 19:45:53 schreef Troplosti:
Maar wat regelt dan het clock signaal?

De PC.

Marcel

Is voor die 4-16 decoder een 74HCT154 ook goed,
of moet je die weer op een speciale manier aansluiten ofzo ?

74HCT is ook goed.

Als je niet zeker bent, moet je de datasheet downloaden.
Heb deze IC vergeleken met de 74154, is exact dezelfde.
Ook pinconfiguratie is zelfde.