Level shifters are a wonderful and very affordable solution when you have a situation where you have to interface a 3.3VDC and a 5VDC device. They are also called voltage shifters and they come in uni-direction versions where the signal only goes one way, bi-directional where signal goes both ways, direction controlled level shifters with a dedicated directional pin, logic level shifters that put logic functionality and voltage translation into a single design, and finally application specific level shifters .You will also find them in a variety of multi-channel types as well as bit rates. In this article we'll cover the 5VDC/3.3VDC bi-directional 2 and 4 channel types available on Ebay for a very low cost and how to use them in your ingenious projects.
Step 1: Two Channel Level Shifter
This was my first level shifter. I bought it from a seller on Ebay. When i bought I had not yet worked with level shifting so I did not notice the module was not marked to indicate which side was LV (low voltage) or HV (high voltage). Simply put you supply 5VDC and GND (ground) to one side of the module and 3.3VDC and GND to the other side. The first time i used it I was using a 3.3VDC ESP8266 to wirelessly control a 5 VDC servo. Without the shifter the ESP8266 would not boot up. Once I had the shifter in place it performed perfectly.
The markings that are on the module are:prefaced with an "A" on one side and "B" on the other.
- AVCC (I soon figured out this was the 5VDC input)
- ASCL - This seems to indicate the module is I2C compatible.
- ASDA - In an I2C situation this would seem to be the SDA data signal connection
- AGND - This pin goes to the ground bus
In this example I'm interfacing a 3.3VDC HC-06 bluetooth module with a 5VDC Arduino Pro Mini to turn on and off an LED using Putty on a BT equipped laptop.
Step 2: 3.3VDC HC-06 Bluetooth - 5VDC Arduino Pro Mini
I also bought some 4 channel shifters and they are marked HV and LV which tells me which side should be connected to the 5VDC power and which gets the 3.3VDC power. They are also marked TX and RX but I disregarded that in this setup and I am having no problems TXing on the RXing channel. I've breadboarded a 3.3VDC HC-06 Bluetooth with a 5VDC Arduino Pro Mini. using I'm using PuTTY ( a free SSH and telnet client for Windows) on a bluetooth eqipped laptop to control the Arduino to turn on and off the LED. You can get a free copy of PuTTY at
PuTTY (a free implementation of SSH and Telnet for Windows and Unix platforms)
Download PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
The Arduino Bluetooth LED control sketch is avalable @ http://volthauslab.com/sketchs/Bluetooth/bluetoothLEDcontrol.ino