Arduino: solo lee la entrada en serie cuando Serial Monitor está abierto. Falla cuando está cerrado

3

Siento que tal vez tengo un problema mental, pero he estado buscando mucho.

Configuración:

  • Tengo un script en Python que usa pySerial que se conecta al dispositivo y escribe una línea en el puerto serie @ 4800.
  • Intenté usar "while (Serial.available ())" en serialEvent y directamente en el bucle.

¿Qué debería pasar?

  • Cuando los dispositivos reciban cualquier tipo de entrada en serie, se encenderá un LED.

Problema:

  • Cuando tengo el Monitor de serie abierto, todo funciona como se esperaba. El LED se enciende y veo el contenido impreso.
  • Cuando tengo el monitor serial CERRADO, nada funciona. El LED no se enciende.

Algo que noté recientemente: cuando el Monitor Serie está abierto, recibo 1 parpadeo de TX seguido de 1 parpadeo de RX (amarillo). Pero cuando está cerrado, recibo 1 parpadeo de TX seguido de 2 parpadeos de PIN 13 (azul). Supuestamente, el parpadeo del PIN 13 significa algo sobre la solución de problemas, pero no sé dónde buscarlo.

El evento que sucede se ha simplificado a una luz LED muy básica que funciona en todos los demás casos (presión de botón, monitor de serie abierto mientras se reciben datos de Python, o simplemente está en el bucle).

Así que mis preguntas:

  • ¿Por qué el dispositivo no recibe la escritura en serie cuando se cierra Serial Monitor?
  • ¿Cuáles son las diferencias en estos parpadeos de RX, TX, PIN13 que me dicen?
  • ¿Cómo resuelvo eso?
pregunta Matt Kenefick

2 respuestas

4

Respuesta:

Este fue un gran error de novato de mi parte.

Cuando establecí la conexión con Python, reinició el dispositivo. Así que nunca recibió los datos que envié. El Monitor de serie aparentemente abre el dispositivo, por lo que la escritura de serie inmediata de Python funcionó correctamente; que me estaba tirando del camino.

Tuve que conectarme, esperar una palabra de mi dispositivo y luego comenzar a escribir. Novato, novato, novato.

    
respondido por el Matt Kenefick
1

Esto resolvió un problema similar para mí:

enlace

    
respondido por el user2684393

Lea otras preguntas en las etiquetas