Electronic – arduino – Pull up does not work

arduinopullupshift-register

I got a breadboard with some logic on it. Including it's own power suppply. It is connected to my Arduino Mega 2560 to fill a shiftregister with some bits. Whenevery my arduino is in a undefind state i want the shiftregisters to be dissabled to prevent the hardware from hazards. Undefind means when it is turned off. Since the logic has it's own powersupply it could damage some of the hardware which i toggle with the registers. (toggling transistors with a lot of leds on it)

So i added a pull up to the "blank pin" of the shiftregister(2k 10k 18k). But it does not work as expected. In this case it dows nothing(The test leds still are in some kind of undefind state when i turn off the power of the arduino)! If i delete the gnd line between the arduino and the breadboard it works.

So here is some small shematic (Not compplete but the important things):

enter image description here

What am i doing wrong?


Edit. Sorry i am not that good in drawing this schematics…
enter image description here

Best Answer

The "OE" pin doesn't function quite as you think. It doesn't set all the outputs to "off" as you would hope. Instead it sets all the outputs to "high impedance". This is like disconnecting all the wires from the outputs that connect to the transistors, leaving the transistors' bases floating, in an undefined state.

You should connect pull-up or pull-down (depending on the default state you want) resistors to all the outputs so when OE is disabled the transistors get pulled into the correct state.


Update:

After discussion this sounds like the Arduino, when powered off, is interfering with the voltage on the OE pin. The effect is called "back powering" where power flows out of your circuit back into the unpowered circuit, which can damage one or both circuits. The power flows backwards into the IO pin of the Arduino, then up through the ESD diodes to its internal Vcc bus, then through its internals into GND.

By disconnecting the Arduino's ground you're breaking that circuit, so the power doesn't flow.

The simplest fix is probably to fit a small diode in series with the OE pin:

schematic

simulate this circuit – Schematic created using CircuitLab

Another, perhaps better, way would be to switch the OE using an NPN transistor:

schematic

simulate this circuit