Un level shifter o adaptador de nivel, es un componente que permite convertir señales lógicas de distintos niveles de tensión. Antiguamente era muy común usar alimentaciones de 5V, de hecho hasta hoy existe y se le llama lógica TTL, pero conforme se fueron metiendo mas transistores en los chips fue necesario ir bajando la tensión de alimentación principalmente por temas de disipación de calor. Es así que muchos uC trabajan a 3V3 (ESP8366, ESP32, Raspberry Pi, etc) o menos como 1V8.
Para poder interconectar dispositivos digitales de distintas tensiones se necesita adaptar los niveles de tensión o corremos el riego de daña la electrónica. Existen muchas formas de adaptar las tensiones. A continuación te describo algunas.
Es lo mas sencillo pero solo es útil cuando la tensión del circuito fuente es mayor a la tensión del circuito destino. Por ejemplo de 5V a 3V3.
Otra solución sencilla para cuando cuando la tensión del circuito fuente es menos que la tensión del circuito destino. Por ejemplo de 3V3 a 5V. El inconveniente es que el transistor invierte el pulso. Ver imagen.
Una solución sencilla que tiene la ventaja de ser bidireccional y de alta velocidad.
Usando un IC puedes construir tu propio circuito. Busca: LSF010x un bidireccional de un solo canal o CD4504 o 74xx245 de 8 bits o MAX232 o RT8900
Es lo mas cómodo porque ya todo esta hecho.