The Adafruit 4-Channel I2C-Safe Bi-directional Logic Level Converter is a small device that safely steps down 5V signals to 3.3V and steps up 3.3V to 5V simultaneously. This level converter is specifically designed to interface with I2C, a popular communication protocol, which makes it ideal for connecting a 3.3V device to a 5V system without any worry of damage. Common applications include interfacing 5V microcontrollers with 3.3V sensors, or vice versa.
Explore Projects Built with Adafruit 4-channel I2C-safe Bi-directional Logic Level Converter
Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
This circuit connects a Raspberry Pi 4B to an MLX90614 infrared temperature sensor using an Adafruit 4-channel I2C-safe Bi-directional Logic Level Converter. The level converter is used to safely step down the 5V I2C signals from the Raspberry Pi to the 3.3V needed by the MLX90614 sensor, ensuring compatibility between the devices. Ground connections are shared among all components, and the sensor is powered by the Raspberry Pi's 5V supply through the level converter.
This is a motor control system with feedback and sensor integration. It uses an Arduino Mega 2560 to control MD03 motor drivers for DC motors, receives position and speed feedback from HEDS encoders and Hall sensors, and measures distance with SR02 ultrasonic sensors. Logic level converters ensure compatibility between different voltage levels of the components.
This circuit features an ESP32 Devkit V1 microcontroller connected to a Bi-Directional Logic Level Converter, which facilitates voltage level shifting between the ESP32 and external components. The ESP32 is powered through its VIN pin via an alligator clip cable, and the logic level converter is connected to various pins on the ESP32 to manage different voltage levels for communication.
This circuit is designed to control multiple DC motors using MD03 motor drivers, with feedback from hall sensors and rotary encoders, under the management of an Arduino Mega 2560. The system includes logic level converters for I2C communication and uses an ultrasonic sensor for distance measurements. A 12V battery and power supply unit provide the necessary power for the system.
Baud Rate: Supports I2C standard mode (100 kbps) and fast mode (400 kbps)
Dimensions: 0.63" x 0.52" x 0.1" (16mm x 13mm x 2.54mm)
Pin Configuration and Descriptions
Pin Name
Description
HV
High voltage (5V) supply input
LV
Low voltage (3.3V) supply input
GND
Ground connection
HV1 - HV4
High voltage (5V) logic level inputs/outputs
LV1 - LV4
Low voltage (3.3V) logic level inputs/outputs
Usage Instructions
How to Use the Component in a Circuit
Power Connections:
Connect the HV pin to the higher voltage level (e.g., 5V).
Connect the LV pin to the lower voltage level (e.g., 3.3V).
Connect the GND pin to the common ground of both systems.
Signal Connections:
Connect the high voltage (5V) logic signals to HV1 to HV4.
Connect the corresponding low voltage (3.3V) logic signals to LV1 to LV4.
I2C Communication:
For I2C communication, connect SDA and SCL lines from the 5V system to the HV side channels.
Connect the corresponding SDA and SCL lines from the 3.3V system to the LV side channels.
Important Considerations and Best Practices
Ensure that the power supply is stable and within the specified voltage range.
Do not exceed the maximum baud rate supported by the converter.
Avoid running high-speed signals through the level converter as it may not perform well with frequencies higher than I2C fast mode.
Always connect the ground pin first before making any other connections to prevent potential damage.
Example Code for Arduino UNO
#include <Wire.h>
void setup() {
Wire.begin(); // join i2c bus
Serial.begin(9600); // start serial for output
}
void loop() {
Wire.requestFrom(0x3C, 6); // request 6 bytes from slave device #0x3C
while (Wire.available()) { // slave may send less than requested
char c = Wire.read(); // receive a byte as character
Serial.print(c); // print the character
}
delay(500);
}
Troubleshooting and FAQs
Common Issues
No Signal Conversion:
Check if the power supply is connected correctly and the ground is common to both systems.
Ensure that the pins are not swapped between the HV and LV sides.
Device Not Recognized:
Verify that the I2C address is correct and the device is properly connected to the SDA and SCL lines.
Solutions and Tips for Troubleshooting
If you encounter issues with I2C communication, use pull-up resistors on the SDA and SCL lines appropriate for the voltage level you are working with.
Use a multimeter to check the continuity and voltage levels on the HV and LV sides to ensure proper operation.
If the logic level converter is not functioning, it may be damaged due to a voltage spike or incorrect connection. Replace the component if necessary.
FAQs
Q: Can this converter be used with SPI or UART?
A: While it is designed for I2C, it may work with other protocols like SPI or UART at low speeds. However, it is not guaranteed and should be tested thoroughly.
Q: Is this converter bidirectional on all channels?
A: Yes, all four channels are bidirectional and can be used for voltage stepping in both directions.
Q: What is the maximum current this converter can handle?
A: The converter is designed for low-power signals and is not intended for high current applications. It is recommended to keep the current below 10mA per channel.