Ik wil graag een module maken die standaard besturings interfaces kan koppelen aan afstandsbedieningen van home control setjes (bijvoorbeeld klikaan-klikuit).

Het idee is dat als de software oplossing bijvoorbeeld de uitgangen van een printerpoort hoog of laag maakt, deze schakeling het kan vertalen naar pulsen, eventueel gemultiplext.

Bijvoorbeeld.

Printerpoort D0 wordt hoog -> uitgang 1 oplossing wordt 2 sec hoog
Printerpoort D0 wordt laag -> uitgang 2 oplossing wordt 2 sec hoog
Printerpoort D1 wordt hoog -> uitgang 3 oplossing wordt 2 sec hoog
Printerpoort D1 wordt laag -> uitgang 4 oplossing wordt 2 sec hoog
Printerpoort D2 wordt hoog -> uitgang 5 oplossing wordt 2 sec hoog
Printerpoort D2 wordt laag -> uitgang 6 oplossing wordt 2 sec hoog
Printerpoort D3 wordt hoog -> uitgang 7 oplossing wordt 2 sec hoog
Printerpoort D3 wordt laag -> uitgang 8 oplossing wordt 2 sec hoog

Met OF poorten en JK flipflops lukt het niet, daar zowel de opgaande als neergaande flanken een (verschillende) actie moeten triggeren en deze acties maar voor ongeveer 2 seconden mogen gelden.

Wie heeft een idee in de vorm van een schakeling of PIC-programma ?

Je zou je hierdoor kunnen laten leiden:
http://prosje.be/CO/Schemas/PulsGenIV.png
De schakeling is oorspronkelijk ontworpen voor een ander doel, maar het deel rond N4, N5 en N6 doet ongeveer wat je wil.
C3, R3 en D2 vormen samen met N5 een monoflop. Als de spanning op C3 van hoog naar laag gaat, wordt de uitgang van N5 hoog tot C3 opgeladen is door R3. De verhouding van C3 en R3 bepaalt de monoflop-tijd.
C3', R3', D2' en N6 doen hetzelfde, maar door de aanwezigheid van N4 moet het signaal op diens ingang juist van laag naar hoog gaan.
N2, N3, en al wat zich links daarvan verbindt, mag vervallen. De uitgang van een parport-datalijn komt dan rechtstreeks aan de (bovenste) C3 en aan de ingang van N4.
R4, R5 en T1 mogen weg - je kan de uitgangen van N5 en N6 combineren met 2 dioden of met een "echte" OR-poort.

Een µC biedt uiteraard een alternatief dat heel wat minder printruimte in beslag neemt.

Inderdaad, in dit geval kunnen de ingangen van N4 en N5 aan elkaar op een data uitgang van de printerpoort en de uitgangen kunnen een aparte tak (puls aan/puls uit) van een ULN 2803 aansturen om zo de knoppen van de afstandsbediening te schakelen.

Maar ligt het nu aan mij of zijn het gewoon inschakelvertragingen? In het schema staan toch schmit-triggers, die gaan dus gewoon naar "1" als de ingang boven de drempelspanning stijgt (als C3 vol is doordat N2 hem aan GND gelegd heeft)?

http://changpuak.ch/electronics/NE555_Monoflop.html is nog een optie.

Probleem is dat als dit voor elke datalijn moet, er behoorlijk wat componenten aan te pas gaan komen. Iets wat niet meer netjes op een experimenteerprint gaat passen.

Maar eh... als je dan toch met een printerport aan het pielen bent... Kun je het dan niet in software oplossen!?

Maar ligt het nu aan mij of zijn het gewoon inschakelvertragingen? In het schema staan toch schmit-triggers, die gaan dus gewoon naar "1" als de ingang boven de drempelspanning stijgt (als C3 vol is doordat N2 hem aan GND gelegd heeft)?

De uitgang wordt onmiddelijk hoog, als de ingangsspanning van C3 van hoog naar laag gaat. Dat blijft zo, tot C3 opgeladen is tot de drempelspanning v/d inverter.
Het zijn dus wel degelijk monoflops. Voor 5V kan je beter de 74HC14 nemen ipv. de 40106.

Dat kan, alleen wil ik dat juist niet, omdat deze schakeling en dus het remote control systeem erachter dan compatibel is met heel veel software applicaties. Linux based, Windows based, Web based, Velleman K8055 of IP 9222 Schakel Module, ze gebruiken allemaal aan/uit instellingen ipv pulsen.

Ah, een microsoft-oplossing.
Heb je er wel eens over nagedacht waarom men dat doet? Dat is niet helemaal zonder reden...

Ik ben maar met JAL en een PIC16F628A aan de slag gegaan!

Het onderstaande stukje code is het uiteindelijk geworden:


if pin_a0 != ingang0 then
   if pin_a0 then
      pin_b0 = high
      pin_b4 = high
      delay_1s(1)
      pin_b0 = low
      pin_b4 = low
   end if
   if !pin_a0 then
      pin_b0 = high
      pin_b5 = high
      delay_1s(1)
      pin_b0 = low
      pin_b5 = low
  end if
end if

Bovenstaande stuk komt dus 4x voor en pin_a0 en pin_b0 moeten vervangen worden door de dan relevante ingang / uitgang.

Ik vraag me trouwens wel af wat er gebeurd als ik nu pinnen declareer die in een library al aan een andere functie zijn toegewezen.

En de MRCL pin, heel vaak zie je m direct aan de +5V terwijl andere schema's weer weerstand ertussen hebben van enkele kilo-ohms. Mag / moet deze pin aan de +5 als hij niet gedefinieerd is?

exor poort die q0 en input signaal pakt en naar de clock ingang gaat.
dat ding detecteert elke flank.