0
\$\begingroup\$

I'm trying to use an NE555 IC in monostable mode to send a pulse that should mimic a button press. This pulse should be delayed for some time (after the appliance powers up) and then stop (similar to how I'd do it, I plug in the appliance, I press the button for a short time and release).

The circuit looks like this:

NE55 deplayed pulse circuit

According to simulation the voltages should look like this:

enter image description here

Hooking up an LED an playing with the RC values in order to change the timing to something more noticeable, this seems to work. However when I plugin this into the appliance whose physical button I'm trying to mimic, things either work or they don't. They mostly don't, the button press isn't simulated, I only gotten it to work once or twice and I'm not sure how I did it. The button I'm trying to "mimic" is the SW10 switch in this diagram:

enter image description here

So something relatively simple, a voltage divider to an input pin of an micro controller. How can I figure out what is going wrong when using this circuit? Doesn't the simulation fit the real world or are there some unknowns I haven't considered when fitting the circuit to the physical button?

I have succesfuly done this using an Arduino by setting one of its pins to LOW for 500ms, then to high impedance (INPUT) and it works 100% of the time.

I'm guessing the capacitors in my circuit remain charged or other capacitors influence the circuit (although they should influence the arduino as well - and I cannot see any capacitors on the circuitboard)?

I should note that I have no control over the R80, R5, SW10 or the Akai MCU components. I can only find their leads on the existing board and "plug" my circuit (the transistor TR1) there.

\$\endgroup\$
6
  • 1
    \$\begingroup\$ Are you sure about that 2K for R80? The AKAI MCU swing would then only be 1.25V to 3.3V, and 1.25V isn't low enough for most digital inputs. Try making R80 very small or zero. \$\endgroup\$
    – td127
    Nov 30, 2020 at 18:28
  • \$\begingroup\$ If your intent was to make AKAI MCU swing from 0 to something smaller than 3.3V, then you want your transistor collector to go to the R80/R5 junction (and R80 connected to ground): that way you get the voltage divider value when transistor is off, and 0V when on. \$\endgroup\$
    – td127
    Nov 30, 2020 at 18:47
  • \$\begingroup\$ I have edited the post, unfortunately I did not specify that I have no control over the R80, R5, SW10 or the Akai MCU components. I can only find their leads on the existing board and "plug" my circuit (the transistor TR1) there. \$\endgroup\$
    – Paul
    Dec 1, 2020 at 7:21
  • \$\begingroup\$ @td127Your second comment confuses me a bit. I want the Akai MCU to get the voltage divider's value when the transistor is ON (that way it works as if the SW10 button is pressed). Right? So I need to make the transistor act as the button, when the transistor is on, the voltage divider is complete and the MCU would read the value, hence trigger its corresponding behaviour. \$\endgroup\$
    – Paul
    Dec 1, 2020 at 7:28
  • \$\begingroup\$ This is in reference to an initial question of mine: electronics.stackexchange.com/questions/521628/… \$\endgroup\$
    – Paul
    Dec 1, 2020 at 7:28

1 Answer 1

0
\$\begingroup\$

The AD_KEY signal goes to an analog to digital converter (ADC) input on the microprocessor. The software reads the value from the ADC, then decides which button you pressed. There will be a tolerance range around the voltage that the controller expects for each button, but it may be rather narrow.

I simulated your button-press transistor to see what voltage AD_KEY should get for your button:

schematic

simulate this circuit – Schematic created using CircuitLab

  • If I replace Q1 with a short circuit, I get 1.245V for AD_KEY.
  • If R3 is 300k, then AD_KEY is 1.303V
  • if R3 is 1k , then AD_KEY is 1.250V

There's only 58 millivolts difference between the "real button press" and the 300k version, but maybe the processor is really that picky. Try it with 1k for R3 and see if it works.

If that doesn't help, you may need to wait longer after startup before "pressing the button."

The processor probably has some tasks that it does on startup, and may not see your button press correctly. The processor might also be set up to ignore buttons that are pressed at power on.

Extend the delay by maybe a couple of seconds and see if that helps.

\$\endgroup\$
2
  • \$\begingroup\$ I will try modifying R3's value. The timing (If I sized the RCs right - which according to the simulation is right) should be fine, I tested it using an arduino and it works. I just want to get that arduino out of there while learning something in the process. \$\endgroup\$
    – Paul
    Dec 2, 2020 at 6:46
  • \$\begingroup\$ I replaced the base resistance of the transistor with a 1k. The first time the circuit powers up, it doesn't work. If I measure the output of the 555 IC it is 0V, but when I power down the circuit I get a decreasing voltage (from several volts to almost 0). If I start my circuit back up when the voltage is around 0.15 - 0.2 the circuit work 100% of the time. Some capacitor is not fully discharged and discharges at shutdown and for some reason the left-over voltage after a power down helps. Where should I look next? \$\endgroup\$
    – Paul
    Dec 2, 2020 at 20:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.