Hi all,
I've been building simple circuits with relays, LEDs, resistors and otherwise
passive components for years now and built some pretty complex switching networks
and "pseudo-logic" circuits out of interconnected relays - but I've decided it's
time to grow up!
This is really the first time I'll have used an IC or for that matter a transistor
outside of a predesigned kit (of which I have built quite a few) - so be gentle with
me!
The task:
I have a garage door opener that has two LEDs on the opener unit. A red LED
indicates that the door is closed and a green LED indicates that the door is open.
During the 10 seconds or so that the door is in transit, the LED for the door's
destination will flash. So while the door is closing, the red CLOSE LED will flash
and so on.
What I want to do is build a circuit that will report 1 of 3 states on an external
panel using LEDs labelled "Open", "Closed" and "Transit". The outputs that drive the
LEDs will also have provision for reporting to another device allowing me to monitor
the door remotely.
I plan to use an optocoupler connected in parallel with each LED to export it's
state from the door opener safely, but the bit that's challenging me is differentiating the "pulsing" of the LEDs from the OPEN and CLOSED states where the LEDs are solidly lit. I'm sure by this point you may already have the solution in mind and are thinking "Duh" but I want to learn something here, so let me share my thinking first ...
Keen to get my hands dirty with a 555 (or 556 since there are two signal sources to work with) I got to thinking that I could invert the signal and connect it to the trigger input of the 555 so that when the LED turned on, the inverted signal would go low and begin the timing interval. Meanwhile, the raw signal would connect to RESET so that when the LED turned off, the timing interval would be interrupted, ready to accept the next LED pulse. So far the output of the 555 would mirror the raw signal. When the LED stays on though and therefore the timing interval is allowed to complete, at the end of the interval when the 555 output goes low there is now a difference in the logic states of the 555 and the original signal, so some comparator (like a NAND gate?) could be used to indicate that the LED has remained steady, confirming that the door is open or closed (ie no longer in transit).
It all sounded great in my head until I realised that while the trigger input of the 555 is held low by the inverted signal, the timing interval will not actually complete - its output is held high (correct?). Meaning that the output of the 555 completely mirrors the original signal which is of no use at all to the NAND gate.
Desperate to cure my oversight I began thinking along the lines of using a small relay in series with a capacitor, activated by the optocoupler, to simulate a momentary switching to ground as the trigger input to get around this. But I am sure that this is making it way to complicated when the whole point of my trying to implement the 555 was to break out of my "relays can do anything" box!
Perhaps taking the 555 out of the equation altogether, using an RC network to act as a filter would be the simplest solution but I have absolutely no knowledge in this area so am way out of my depth (if I wasn't already!)
I'd be grateful for some guidance
I've been building simple circuits with relays, LEDs, resistors and otherwise
passive components for years now and built some pretty complex switching networks
and "pseudo-logic" circuits out of interconnected relays - but I've decided it's
time to grow up!
This is really the first time I'll have used an IC or for that matter a transistor
outside of a predesigned kit (of which I have built quite a few) - so be gentle with
me!
The task:
I have a garage door opener that has two LEDs on the opener unit. A red LED
indicates that the door is closed and a green LED indicates that the door is open.
During the 10 seconds or so that the door is in transit, the LED for the door's
destination will flash. So while the door is closing, the red CLOSE LED will flash
and so on.
What I want to do is build a circuit that will report 1 of 3 states on an external
panel using LEDs labelled "Open", "Closed" and "Transit". The outputs that drive the
LEDs will also have provision for reporting to another device allowing me to monitor
the door remotely.
I plan to use an optocoupler connected in parallel with each LED to export it's
state from the door opener safely, but the bit that's challenging me is differentiating the "pulsing" of the LEDs from the OPEN and CLOSED states where the LEDs are solidly lit. I'm sure by this point you may already have the solution in mind and are thinking "Duh" but I want to learn something here, so let me share my thinking first ...
Keen to get my hands dirty with a 555 (or 556 since there are two signal sources to work with) I got to thinking that I could invert the signal and connect it to the trigger input of the 555 so that when the LED turned on, the inverted signal would go low and begin the timing interval. Meanwhile, the raw signal would connect to RESET so that when the LED turned off, the timing interval would be interrupted, ready to accept the next LED pulse. So far the output of the 555 would mirror the raw signal. When the LED stays on though and therefore the timing interval is allowed to complete, at the end of the interval when the 555 output goes low there is now a difference in the logic states of the 555 and the original signal, so some comparator (like a NAND gate?) could be used to indicate that the LED has remained steady, confirming that the door is open or closed (ie no longer in transit).
It all sounded great in my head until I realised that while the trigger input of the 555 is held low by the inverted signal, the timing interval will not actually complete - its output is held high (correct?). Meaning that the output of the 555 completely mirrors the original signal which is of no use at all to the NAND gate.
Desperate to cure my oversight I began thinking along the lines of using a small relay in series with a capacitor, activated by the optocoupler, to simulate a momentary switching to ground as the trigger input to get around this. But I am sure that this is making it way to complicated when the whole point of my trying to implement the 555 was to break out of my "relays can do anything" box!
Perhaps taking the 555 out of the equation altogether, using an RC network to act as a filter would be the simplest solution but I have absolutely no knowledge in this area so am way out of my depth (if I wasn't already!)
I'd be grateful for some guidance