Comunicación serial entre arduino y Esp32

Hola! Estoy intentando establecer una comunicación serial entre un Arduino Uno y un ESP32, leí que como estoy enviando desde el ESP32 al Arduino, no requiere convertir el nivel de 5 a 3.3V. He visto varios vídeos y en todos usan el mismo método pero realmente no sé porque no funciona, el Arduino no recibe nada. Estoy usando los pines 17 y 16 del ESP32 que corresponden al UART2 y el 0 y 1 de Arduino, y las tierras están conectadas entre si.

He trasladado su tema de una categoría de idioma inglés del foro a la categoría International > Español @danitorres97.

En adelante por favor usar la categoría apropiada a la lengua en que queráis publicar. Esto es importante para el uso responsable del foro, y esta explicado aquí la guía "How to get the best out of this forum".
Este guía contiene mucha información útil. Por favor leer.

De antemano, muchas gracias por cooperar.

Hola, muchas gracias por tu ayuda! Es mi primer post y no sabía, lo tendré en cuenta la próxima vez!

1 Like

estuve tratando de hacer lo mismo pero como mi ESP32 es prestado no me atreví a conectarlos entre si por UART ni por SPI o I2C, pero asi como tu dices creo que la desventaja principal son los niveles de voltaje de operación, muchos recomiendan usar un level shifter como en este tutorial Level shifter adafruit, si lo que quieres transmisitir se trata de una variable booleana que pueda ser representada por un HIGH o LOW puedes usar un divisor de voltaje desde una salida del arduino hacia una entrada del ESP32

No hay ninguna desventaja. Es lo que pasa por querer conectar algo de logica 5V a algo de lógica 3.3V
Si quieres lo mas simple es poner un divisor de tensión 2k 1k como en la figura en la linea que sale del Arduino TX al RX del ESP32.
La comunicación TX del ESP32 puede ir directa al Arduino ya que no lo dañará y tiene nivel suficiente como para que lo detecte correctamente.

Este esquema esta mal pero te da la idea
image

Lo que esta mal es que los valores de las resistencias no pueden ser iguales.
Son 20k para la R que esta entre GND y Rx2 y 10k entre Rx2 y Tx2 del Arduino.
Puedes hacerlo con 3 resistencias de 10k. Creas los 20k con dos en serie.
aca se ve bien
image

Este es otro método simple
image
image

otro no tan simple

y finalmente algun integrado que te haga la conversión de niveles.

Funcionaria para I2C? porque estoy trabajando con el TTGO TCAL SIM800L
No puedo usar SPI específicamente para mi aplicación porque se utiliza el pin 23 como power on para el sim800l y por UART (G01001 Y G01003) tengo mis dudas ya que temo que interfiera con la comunicación serial por USB en especifico para ver impresiones en el monitor serial, con todo voy a intentar realizar comunicación I2C con los 3 sistemas que propones

Yo hablo de interfaz 3.3 a 5, es independiente de lo que hagas, I2C, SPI, o simple Serial.

Moderador
Ya tu siguiente comentario es lo que se conoce como secuentro de hilo.
El hilo no es tuyo, es de @danitorres97 y el comunica Arduino UNO con ESP32, no como tu caso un SIM800L.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.