Stupid standby timer being all standby-y
February 27, 2011 7:46 AM   Subscribe

I'm trying to interrupt a standby timer on a DVD player for a homebrew projector dowser project and I need some help with capacitors and resistors. I've wired a momentary switch across the eject switch terminals to pop the cd tray from a distance.

I've wired a momentary switch across the eject switch terminals to pop the cd tray from a distance. I want to setup the play button or stop button to be pressed once every couple of minutes so the device doesn't go into standby mode.

Can I use this formula:

(time constant in seconds) = (resistance in ohms) * (capacitance in farads)Thus, if you use a 10 Mohm (10 million ohms) resistor and a one microfarad (1 millionth of a farad) capacitor, their product is 10 seconds. found here

To stick a 30 Mohm resistor and 10 uF cap on the play button of this DVD player to set it to "get pressed" once every 300 seconds? Or is there something I'm missing here?
posted by edbles to Technology (11 answers total) 1 user marked this as a favorite
No, you need a lot more than two passive components to make something that cycles repeatedly. The time constant only describes the exponential rate of charge and discharge of the capacitor. You need something like a 555 IC (which itself requires a power supply and support circuitry) to take that property and turn it into an oscillator/timer, and then you'd need something like a relay or switching transistor to pull the button inputs low or high, depending on design. There are numerous 555 cookbooks floating around on the net and in print, but you might also consider arduino if you don't like the muckety-muck of low level circuit design.
posted by Rhomboid at 8:11 AM on February 27, 2011

Response by poster: How would I get the arduino to acts as a switch? Wire one switch terminal pin to one analog out and the other pin tot another and then ever 5 minutes set them to go to HIGH so there's current on both sides of the switch?
posted by edbles at 9:10 AM on February 27, 2011

I agree with Rhomboid. To the extent that I understand your problem, you need an oscillator, timer, or some kind of controller. To emulate a front panel switch with a microcontroller, you have two options:

1) If the real switch is just a mediator of some specific voltage (+5V perhaps), then you can make a microcontroller output the same voltage with some duty cycle. That is:

+5V from DVD player board -----> Switch -----> Some input on DVD player board

is replaced with

+5V supply ----> Microcontroller ----> Some input on DVD player board

2) If the real switch is doing something more complicated than this, then you need to replace it with a relay. This is an electrically activated switch. You would build:

Signal from DVD player board
Relay <> |
Some input on DVD player board

The Microcontroller would need to drive a coil in the relay, so some significant current is needed. Certain microcontrollers would do the job alone, others are going to need a transistor boost circuit. Or, the relay might be able to be solid-state, in which case a microcontroller could drive it with a logic pulse.

If the problem is like type 1, this could be done easily with a 555 timer chip instead of a microcontroller. In any case, you've now got two problems: learning to use the 555 or a microcontroller, and making your DVD thing work. Sorry.
posted by fatllama at 9:33 AM on February 27, 2011

Do something like fatllama said, using either a relay or a transistor. Definitely don't do this:

"Wire one switch terminal pin to one analog out and the other pin tot another and then ever 5 minutes set them to go to HIGH so there's current on both sides of the switch?"

or you may break an output of your controller (be it Arduino or whatever) by trying to hook an output up to one of the sides of the switch that is likely connected to power or ground.
posted by Diplodocus at 9:35 AM on February 27, 2011

My "diagram" got killed by the html tag parser. The relay is being "controlled" by a microcontroller, not a | symbol. And like Diplodocus says, more information is really needed. Are we sure the switch is working at low voltage? Are we sure it is a single pole switch?

You know, a more elegant solution might be this: find a digital pin somewhere that goes high just as the unit goes into standby mode. Wire this to the correct side of the switch in question (following proper "best practice", i.e. wire in a current limiting resistor, and/or a pull-up or pull-down resistor if necessary). Then, no timer, microcontroller, or any other nonsense is required.
posted by fatllama at 9:52 AM on February 27, 2011

Response by poster: I believe the front panel is working at 12 or 5 volts. There's 120 AC in coming into a separate board with some transformers on it that has a bunch of 12v and 5v pins out that go through to the brains of the dvd player, which is what connects to the control panel. All the switches on the front of the dvd player are little momentary's (play, eject, stop and standby).
posted by edbles at 10:03 AM on February 27, 2011

Response by poster: I can code an arduino okay and have one at home, it's the basic circuit level stuff that's currently beyond me.
posted by edbles at 10:04 AM on February 27, 2011

Fine, sounds like you're going to get it to work. Follow the Type 1 solution above. Code an infinite while(1) loop that executes a long, empty for(i=0;i
If the switch is working at 5V, the only other worry will be if the DVD logic uses push/pull or open drain type gates. You may or may not need a ~1k "pull-up/down" resistor connected between the controller output and power, or between the output and ground, depending on their implementation.

If the switch is working at 12V instead of 5V, you may need to employ a relay or transistor instead of the direct output of the microcontroller. Feel free to mail me if this is the case and you want a circuit diagram.

posted by fatllama at 10:27 AM on February 27, 2011

damn html tags got me again. full text was ...
empty for(...) loop after which you toggle the digital output. Shoot, if the arduino has a "watchdog timer" feature like my favorite 8051, then you don't even need the loops since the microcontroller just resets itself periodically anyway.

posted by fatllama at 10:30 AM on February 27, 2011

The odds are really good that the front panel switches all just connect to input pins on the DVD player's microcontroller, and the other side of the switch connects to ground or VCC. Poke around with a multimeter to see. Find a logic ground level (this may take some guesswork) and compare the voltage on either side of the switch to ground when it's pressed and when it's not pressed.

There could be some more complex matrix-keyboard-scanning thing going on (esp. if the front panel has more than a small number of buttons) in which case faking it out would be harder and you should probably just go with the tiny relay, fatllama's second example. The relay's almost guaranteed to work no matter what the DVD player is doing, because a relay is just a magnetically-operated switch after all. A small reed relay like this one can be driven directly from a 5V arduino output.
posted by hattifattener at 2:22 PM on February 27, 2011

another option, if the device you're trying to control has a remote, is something like the Dangerous Prototypes USB IR Toy - it's got IR I/O, can sample whatever codes the actual remote uses, and can play them back as required to make the controlled device do stuff...
posted by russm at 7:53 PM on February 27, 2011

« Older I have (camera) baggage   |   Yes you are awesome but how did you get there? Newer »
This thread is closed to new comments.