El esbozo de Arduino no está ejecutando el método de inicio

2

Estoy tratando de usar el escudo de WiFly ( enlace ) con el tablero Aduino Mega.

Estoy realizando modificaciones a los ejemplos incorporados que se envían con WiFly. He modificado el boceto para realizar una solicitud http a mi servidor personal.

Cuando ejecuto el boceto a través del puerto USB conectado a mi computadora portátil, todo funciona bien. Puedo ver las solicitudes que llegan a mi máquina remota.

Cuando trato de ejecutar el tablero de forma independiente con baterías, tengo problemas. Básicamente, el código en "setup ()" no parece estar ejecutándose. Si hago un reinicio en el tablero al presionar y mantener presionado el botón en el tablero Arduino Mega, también funciona bien. Esto demuestra que no hay ningún error en el servidor Sketch o back-end y que el hardware tampoco está dañado.

Básicamente, cuando enciendo la placa a través de la primera puesta en marcha desde una fuente de alimentación de batería, no funciona. Pero el restablecimiento posterior de la placa mediante el botón de encendido en el mega parece funcionar.

¿Alguien sabe por qué se debe esto y cómo puedo comenzar a ejecutar mi boceto tan pronto como se enciende la batería (en lugar de tener que hacer un reinicio posterior?)

He echado un vistazo a la guía de resolución de problemas de Arduino aquí enlace y traté de conectar el pin RX al pin TX como además de conectar el pin Rx a GND a través de una resistencia de 10k. Esto tampoco ayuda.

Editar

Estoy ejecutando el bosquejo de muestra de WiFly proporcionado por Sparkfun de aquí . Cambié la URL en el bosquejo de google.com a myserver.com y funciona bien cuando se ejecuta a través de una conexión USB a la computadora portátil o después de un reinicio. Desde entonces, he agregado una demora de 2000 ms como lo sugiere mi respuesta en kmort y parece que ahora funciona bien. Por lo que parece que hay "problemas de solución" con el escudo.

    
pregunta Chaitanya

2 respuestas

4

Cuando se aplica el poder por primera vez, cualquier valor que lea podría ser una locura, y ciertamente es sospechoso.

¿Está tomando decisiones basadas en valores de lectura en setup() ? Si es así, podría ser que el resto de su circuito aún no se haya resuelto, y usted tenga errores interesantes debido a ello.

Pruebe un delay() en su startup() y vea si el problema desaparece.

    
respondido por el kmort
1

En la revisión del esquema veo dos causas posibles:

  1. Su batería no está por encima de 7,0 Vcc, lo que provoca un arranque errático que conduce a un bloqueo de desbroce. O,

  2. El retardo RC del RESET es demasiado débil. \ $ 2 \ times \ pi \ times 22pF \ times 10K \ Omega \ $ es solo \ $ 1.3 \, \ mu s \ $ y la especificación para restablecer es \ $ 2.5 \, \ mu s \ $ como mínimo. Colocar 1nF (también conocido como 1000pF) a través del pin RESET de los escudos y GND retrasará la liberación inicial de RESET aproximadamente 50 veces la del DTR's 100nF del FTDI.

Sin embargo, el escudo agrega 100nF y 10K en paralelo a cada uno, respectivamente, lo que debería hacer que la demora sea suficiente (aproximadamente \ $ 0.5 \, ms \ $). Así que puede haber un problema con el escudo.

    
respondido por el mpflaga

Lea otras preguntas en las etiquetas