El módulo ESP8266 emite caracteres aleatorios/basura en el suministro externo (pero funciona en 5v y 3.3v de arduino)

Resumen: con el suministro de 5v y 3.3v de arduino, el módulo ESP8266 emite mensajes de arranque y responde a los comandos AT en el terminal serial @ 115200 baudios como -

mensaje de arranque:

<random/garbage characters>
Ai-Thinker Technology Co. Ltd.
ready

Salida del comando "AT":

OK

Salida "AT+GMR":

AT version:1.2.0.0(Jul 1 2016 20:04:45)
SDK version:1.5.4.1(39cb9a32)
Ai-Thinker Technology Co. Ltd.
Dec 2 2016 14:21:16
OK

mientras que con una fuente de alimentación externa (fuente de alimentación múltiple probada - detalles a seguir) fuente de alimentación de 3.3v, hay caracteres basura/aleatorios en el mensaje de arranque, y la respuesta al comando AT también tiene caracteres basura.

Aunque los 5v y 3.3v de arduino me han solucionado el problema, no se recomienda usarlos para encender ESP, ya que Arduino

  • 5v puede ser peligroso para ESP (se calentó a los pocos minutos de la conexión) y,
  • 3.3v puede no tener suficiente corriente (peligroso para el chip Arduino/Atmega),

así que ahora, parece que necesito lograr cerca de lo que los pines 5v y 3v3 de arduino están entregando al Vcc de ESP usando una fuente de alimentación externa.


Detalles: compré el módulo ESP8266 de Amazon e intenté pasar algunas pruebas básicas, como ejecutar el comando AT a través del monitor en serie, planeando ir a la parte de programación más tarde. Esto es lo que he intentado hasta ahora wrt. potencia de entrada para el módulo ESP.

Intento1 (fallido):

AC ---> Adaptador DC de salida 5v/1A ---> AMS1117 (3.3v) --> ESP8266's Vcc

Según la información en el artículo de iotbytes , alimenté ~ 3.3v (medido a través de un voltímetro) a Vcc de ESP8266 desde el pin n. ° 2 de ams1117, y usé todos los capacitores de valores como se sugiere en la publicación.

  • (Observación):
    el LED azul parpadea rápidamente, el LED rojo brilla constantemente,
    aparece AI Thinker SSID, al cual puedo conectarme (192.168.4.2) a través de mi computadora portátil y puedo hacer ping 192.168.4.1 El
    monitor serial se llena con valores basura en todas las tasas de baudios excepto 115200. A 115200, el monitor serial está silencioso y obtengo 2/3 caracteres basura en respuesta al comando AT.
  • (Distribución de pines): Pin usado n.º 2 (salida de 3,3 V) y n.º 3 (tierra) de Ams1117 para alimentar el módulo. Descansar otras conexiones de pines es lo mismo que un artículo en medium.com como

    Esp8266 | Arduino
    ------------------
    RX      | RX
    TX      | TX
    GPIO 0  | None
    GPIO 2  | None
    
    
    Arduino | Arduino
    -------------------
    Reset   | GND
    
    Esp8266 | AMS1117
    ------------------
    Vcc     | 3.3v 
    CH_PD   | 3.3v (/Vcc of esp8266)   tried via jumper as well as 100 Ohm resistor
    GND     | GND 
    

Luego, intenté avanzar poniendo ESP8266 en modo de programación siguiendo un video . Tuve que agregar solo 1 conexión "adicional" -

Esp8266 | Esp8266
------------------
GPIO0   | GND (From AMS1117)

Y, al cargar el programa de parpadeo LED esp8266, obtuvo (tasas de carga de (@9600/115200) -

Las variables globales utilizan 27968 bytes (34 %) de memoria dinámica, dejando 53952 bytes para las variables locales. El máximo es 81920 bytes. advertencia: espcomm_sync falló error: espcomm_open falló error: espcomm_upload_mem falló error: espcomm_upload_mem falló

intenté agregar una resistencia de 1k con GPIO-Ground, ¡pero no funcionó!

Intento2 (fallido):

Batería de 9v/1A ---> Convertidor Buck (ajustado a salida de 3.3v) --> Vcc de ESP8266

  • (Observación):
    El LED azul parpadea una vez y permanece apagado (hasta que desconecto y vuelvo a conectar Vcc), el LED rojo brilla constantemente.
    AI Thinker SSID aparece y puede conectarse/hacer ping a él
    Serial Monitor... basura en respuesta al comando AT.

  • (Distribución de pines):

    Esp8266 | Arduino
    ------------------
    (Same as Attempt1)
    
    Arduino | Arduino
    ------------------
    (Same as Attempt1)
    
    Esp8266 | Buck Converter
    ------------------
    Vcc     | 3.3v
    CH_PD   | 3.3v (/Vcc of esp8266) - tried via jumper as well as 100 Ohm resistor
    GND     | GND 
    

Intento3 (fallo):

AC ---> Adaptador DC de salida 5v/1A ---> Convertidor Buck (ajustado a salida de 3.3v) --> Vcc de ESP8266

  • (Observación): Igual que Attempt2
  • (Pinout): Igual que Attempt2

Intento4 (pasar):

Arduino (5v y 3v3) ---> Vcc de ESP8266

  • (Observación):

    El LED azul parpadea una vez y permanece apagado (hasta que escribo un comando a través del monitor serial), el LED rojo brilla constantemente. AI Thinker SSID aparece y puede conectarse/hacer ping a él. El monitor serial captura el mensaje de inicio/bienvenida de ESP8266 y responde a los comandos AT a 115200 baudios.

  • (Distribución de pines):

    Esp8266 | Arduino
    ------------------
    RX      | RX
    TX      | TX
    GPIO 0  | None
    GPIO 2  | None
    Vcc     | 3.3v (also tried 5v) 
    CH_PD   | 3.3v (/Vcc of esp8266)   tried via jumper as well as 100 Ohm resistor
    GND     | GND 
    
    
    Arduino | Arduino
    -------------------
    Reset   | GND
    

Nota: arduino se alimenta mediante el puerto usb (a a b) de la computadora portátil.

¿Cuáles podrían ser las razones detrás de este comportamiento de ESP con fuente de alimentación externa?. Puedo publicar más información si es necesario. Cualquier ayuda/sugerencia podría ser muy útil.

"Cualquier ayuda / sugerencia": compre una fuente de alimentación decente. A menos que tenga esquemas y pueda ver la ondulación de VCC con un alcance, no hay mucho que discutir.
Gracias @DmitryGrigoryev, puedo hacer y publicar esquemas (¿Diagrama de circuito?) Para los 4 casos. No tengo osciloscopio :( .
Los diagramas de circuito ayudarían. Se me acaba de ocurrir que es posible que haya olvidado conectar GND de Arduino a GND de ESP cuando ESP está alimentado externamente. ¿Podría ese ser el problema? Si no, publique los diagramas de circuito: más personas se inclinarán a echar un vistazo a su pregunta en ese momento.
@DmitryGrigoryev - Sí, tienes razón. No conecté la GND de Arduino a la GND de ESP - cuando ESP fue alimentado externamente (Intentos 1-3). He mencionado todas las conexiones en la sección de asignación de pines y definitivamente lo habría mencionado en la sección de asignación de pines como -- Arduino (GND) | Convertidor AMS1117/Buck (GND) . Sin embargo, no estoy seguro de si podría ser la causa potencial. Si lo recomienda, puedo intentarlo.
Bueno, sí: las señales TX y RX necesitan GND para completar el circuito, al igual que VCC.
Gracias de nuevo @DmitryGrigoryev, su respuesta anterior fue la última pieza que faltaba en este rompecabezas :) El módulo ahora responde a los comandos AT / AT + GMR en la fuente de alimentación externa. Podrías publicar tu comentario anterior como respuesta.

Respuestas (1)

Te falta una conexión GND entre ESP y Arduino cuando estás alimentando el ESP externamente. En general, los dispositivos que comparten señales basadas en voltaje también tienen que compartir un terreno común. De lo contrario, sin un voltaje de referencia común no tiene sentido: una señal de + 5 V en Arduino puede verse como -1 V en ESP (suponiendo que haya una diferencia de 6 V entre los voltajes de tierra de los dos).

También puede razonar en términos de corriente: cuando Arduino eleva su pin TX y comienza a fluir una corriente, ¿cómo regresa esa corriente a Arduino?