Electrical – Driving multiple Pi GPIO using Arduino GPIO

arduinogpioraspberry pi

I am trying to send TTL pulse from single Arduino digital pin to 8 different Raspberry Pi simultaneously. For this I have connected 8 raspberry pi in parallel to arduino digital pin.

Since, Arduino runs at 5V and raspberry Pi at 3.3V, I am using a switching diode (1N4148) connected to 3.3V pin on pi as shown in the figure for droppping voltage levels.

Circuit Diagram

Now here is my question, when I check for output voltage at Arduino it shows 0.2V rather than 5V which means that arduino pin is not able to drive all the pi as they are drawing a lot of current. Also another thing, when I start removing one pi at a time from circuit, the arduino starts working perfectly for 4 pi. As far I can think of this is mostly an issue related to not enough current to drive all pi.

How can I make this ciruit work?? I read up online that a voltage buffer say something like LM110, LM741 can be used to solve this issue. Is this the right direction to work on? Can something else be done?

Best Answer

The diode circuit should work but not safe to parallel multiple loads to single drive. The voltage across the pi inputs will be diode drop plus 3.3 V (VCC of Pi). The current through the diode connected externally will be about 1.3 mA multiplied by 8 will give ~11 mA. Also, the input capacitance of all the Pi's inputs and 8 cables connected will make switching that current at high speed will get trouble with rise time and fall time too.

For your particular application, if you can buy one 74LVC245 buffer IC, please go ahead with below solution.

You can simply connect the Arduino single output to all the 8 inputs and derive 3.3 V level signals from the outputs. the advantage is that it is simple to use (Breadboard friendly) and easy to connect to.

enter image description here

The input voltage can be up to 5.5 V. Hence, it can accept the Arduino's input and drive the Pi's input easily.