5v signal to switch 3.3v input
You have several problems with your schematic. S1 and S2 provide a direct short circuit on the 5 V supply. R1 is connected to GND - it will never switch high.

A simple solution is just to prevent the 5 V supply reaching the 3.3 V GPIO pin using a diode.







simulate this circuit &ndash; Schematic created using CircuitLab

Figure 1. A diode prevents 5 V reaching Raspberry Pi 3.3. V input.

For your PN2222 base resistor, the standard approach is to drive the transistor hard into saturation to give minimum power dissipation in the transistor and maximum voltage to the load. A much higher base current is used as a result. A 1k to 10k resistor would be a good choice.


  Out of curiosity though can you explain how/if I could get the same result using a transistor?








simulate this circuit

Figure 2. Another way that doesn't work!

I can't think of a really clean way to step down from 5 V to 3.3 V logic while sharing a signal in this fashion. Figure 2 illustrates the problem. 


First note that the transistor will invert the signal logic feeding the RPi. When Ard GPIO is high RPi GPIO will be low.
R1 is pulling the Arduino high but if we introduce R3 it will pull the Arduino input below 5 V. We could increase the value of R3 so that the Arduino input is high enough to read as a logic 1 but it's a little bit "vague" as a digital signal. You could probably get it to work.
We can't leave out R3 as then the Q1 b-e junction will look like a diode connected across SW1 and SW2 pulling the Arduino input permanently low.


The solution of Figure 1 has advantages of simplicity, reliability, non-inversion and clear design intent. It won't confuse anyone.