OK, now I get what you want to do.
There are a number of options depending on what you're trying to optimise for.
Some options are board space, cost, "simplicity", and speed. The best solution may also be affected by what parts you happen to have on hand.
Here are a few options:
- Get an Arduino that operates at 5V.
- Use either a pair of inverters or a non-inverting buffer which operate from 5V and can be driven from 3.3V logic (available in small SOT-23-n outline devices)
- Use a pair of BJT's rather than a pair of mosfets
- Use an optocoupler
- Use a level converter circuit (there are about a bazzillion on offer.
So here are some more details demonstrating options 2 thru 5:
Additional logic (generally inverters or buffers)
There are all sorts of ways to do this, here are a few:
Note that the circuit on the left is powered from the 3.3V rail and the output is pulled up to 5V, where the circuits on the right are powered from 5V.
If you're interested in this, I can recommend some devices. I'd want to know if you are intending just 1 channel or multiple channels and whether you want surface mount or through-hole parts. For a single channel, I wouldn't recommend this using through-hole components because the single and dual gate options are not easily available.
Note that if you had a circuit that had spare gates available of the correct type, these may be able to be pressed into service, but I assume at this point that you don't.
The pull-up option is slightly slower than the other option, but the noise immunity is higher. Depending on the quantity, this option may be one of the more expensive, but it can also be very small in SMT.
A pair of BJT's
Your original circuit is typically built using BJT's (hence the term open-collector). Your design is open-drain, which is similar in theory, but the input voltage required is generally higher.
Note that your design could be made to work with appropriate mosfets, and that your first resistor is not actually required.
In these diagrams I've shown two rails for the pullups, but it is perfectly OK to use the higher supply rail for both. What is critically important is that both power rails share the same ground.
For the circuit using the mosfets, the power supplies must also be below Vgs(max), a value that is typically 10V to 20V, but in your application this is unlikely to be a concern.
Note that one of the resistors in the BJT version (on the right) is optional.
This circuit (especially the BJT version) is likely to use parts many people will have on hand or are very cheaply and readily available. It can be a little large when made using through-hole parts. If you need a lot of speed, there are modifications that can be made to both circuits. Since both employ pull-ups both the rising and falling edges can be a little slow.
The output will swing almost rail to rail for the mosfet version, and from about 0.2V to 5V for the BJT version.
optocoupler
This provides a lot of protection for your circuit, and the grounds can be independent.
The main problem with the optocoupler solution is cost. It's probably the most expensive solution. Optocouplers are generally designed to allow a high voltage (up to 5kV) between the input and output side, so they are necessarily large.
Note that there are optocouplers with a logic outputs which can remove the need for one resistor on the output side and improve certain aspects of the operation of the circuit.
This will give an output swing of 0V to about 4.8V.
Other circuits
If you google "3.3V to 5V level shifting circuit" you'll find a heap more options. Here are a few that you'll probably see:
These can be both small and cheap, but they're not especially fast (anything with a pull-up has problems in this area). The operation of these (especially the one on the right) is not particularly obvious, but I can explain if you're interested.
With the addition of the optional resistor, the circuit on the right is bidirectional, however you need to choose a mosfet with an appropriate Vgs(th).
the output will vary from about 0.2V to 5V for the BJT version, and you can get an almost rail to rail output for the mosfet version. Whilst the ground is not shown in this circuit, it is assumed to be common.
The operation of the following circuit is also a little subtle:
This circuit essentially lifts the 3.3V logic by a diode drop, so the output is 0.3V to 4V. The diode to the 3.3V Vdd protects the input from current and may not be needed in all cases. And again, whilst the ground is not shown in this circuit, it is also assumed to be common.