Voltage Levels – How to Shift with Arduino

arduinolevel-shifting

I want to use an RF12B to communicate over radio with an Arduino, but the transceiver is rated at 3.3 V. I hear I need to use a voltage level shifter, but what do these look like and where can I find a schematic to help me hook it up?

Best Answer

It depends what direction the signals are going to.

  • If the 5 V device is going to drive a signal on the 3.3 V device, use a simple resistor division.
  • If the 3.3 V device is going to drive a signal on the 5 V device, you could use two inverters with the last stage tied to 5 V. However, this requires four resistors and two transistors, which is quite an expense. You could also try out the implementation as shown in Sparkfun's breakbout board.
  • If the signal is bidirectional (I²C), maybe something in this appnote on page 10 will work (seems similar to what Sparkfun is using).