Quiero diseñar un circuito que sea capaz de bloquear las señales de voltaje inverso pero que permita que pasen las señales de voltaje directo.
El problema original y la solución:
Estaba diseñando una interfaz Arduino a ESP8266 con un par de pines Arduino como un puerto serie. Para que Arduino TX enviara datos al ESP8266 RX, el circuito era un divisor resistivo muy simple para dividir 5V a 3.3V, que funcionó bien. El problema vino cuando necesitaba hacer lo mismo con el pin TX del ESP8266. Como el ESP8266 opera con niveles de voltaje de 3.3V, la alimentación de 5V por error en el ESP8266 ciertamente significaría un desastre. Por lo tanto, estaba tratando de encontrar una manera de permitir que la señal de 3.3V del ESP8266 pase a través de un pin Arduino IO sin distorsionarse o que su voltaje disminuya en una cantidad drástica mientras protege al ESP8266 en caso de que el usuario del Arduino cometa un error. y alimenta 5V en el ESP8266.
La solución que se me ocurrió originalmente era usar un diodo Schottky como el 1N5817, como se muestra en el siguiente esquema, para evitar que el pin Arduino IO vuelva a alimentarse al ESP8266:
El nuevo problema: En mis pruebas, resultó que el Arduino era completamente incapaz de recibir datos en serie del ESP8266, probablemente porque el nivel de voltaje era demasiado bajo. Si cortocircuito un cable a través de ese diodo, los datos en serie llegan sin problemas.
¿Hay alguna manera de evitar que la tensión vuelva de alimentación de un pin de 5V IO a un pin de 3.3V IO mientras se conserva el voltaje original cuando el lado de 3.3V está transmitiendo una señal al lado de 5V?
Algunos requisitos para la solución:
- Los componentes utilizados no deben ser demasiado grandes, ya que el espacio de PCB es precioso
- Preferiría componentes que se puedan vender a mano (por ejemplo, para resistencias, 1206 es un buen tamaño)
- Prefiere los componentes SMD