¿Cómo detener un programa Arduino?

Si eres un entusiasta de Arduino, sabes lo emocionante que puede ser trabajar en un proyecto de manera creativa e innovadora. Sin embargo, a veces puede haber situaciones en las que necesites detener un programa Arduino. Ya sea por una tarea crítica o una emergencia, detener un programa puede ser un gran desafío. Entonces, ¿cómo detener un programa de Arduino? En este artículo, te daremos soluciones prácticas para que puedas interrumpir tu programa de manera efectiva, pero sin riesgos. ¡Sigue leyendo para descubrir cómo hacerlo!

Al aprender a usar un Arduino, es importante comprender cómo concluir cualquier programa que ejecute.

Esto ayudará a prevenir errores y proteger su hardware de daños.

Hay algunas formas diferentes de dejar de ejecutar el software Arduino, y el método más apropiado dependerá de sus objetivos para el proyecto.

Sin embargo, en general, la forma más fácil de detener este tipo de programa es usar el botón de reinicio en el tablero. Esto hará que el programa se inicie desde el principio, lo que puede ser útil para fines de depuración. Además, puede utilizar el gestor de arranque para borrar el contenido del tablero o para cargar un nuevo boceto.

Finalmente, si está usando un IDE de Arduinopuede hacer clic en el botón «Detener» en la barra de herramientas para restablecer el tablero y detener cualquier código en ejecución. Al comprender cómo cancelar el programa Arduino en funcionamiento, podrá utilizar de manera más efectiva esta poderosa herramienta para sus proyectos.

Métodos para terminar el programa Arduino:

¿Cómo detener un programa Arduino?

1) Desconecte la alimentación; de esta manera desconectará el software de forma segura.

El software debe desconectarse cuidadosamente de una fuente de alimentación en cualquier momento. Cuando se desconecte, dejará de operar su programa actual y casi toda su memoria. El programa restablecerá cualquier dato no volátil almacenado en la EEPROM y la memoria del programa. [1]. Cuando restaura el corte de energía, el programa ejecuta automáticamente su boceto más reciente desde su setup().

Sin embargo, cualquier variable del programa aún se almacenará en el volátil Memoria de acceso aleatorio (RAM).

Cuando se restablece la energía, se puede restablecer un programa:

  • Ejecuta el setup() funcionar de nuevo;
  • Toda la información se ha desvanecido y todas las variables se han borrado;
  • Todos los periféricos deberán configurarse nuevamente;

Cuando se apaga la alimentación, las variables y los datos se pueden almacenar de forma segura utilizando el EEPROM. Este tipo de protocolo no pierde memoria cuando se desconecta la alimentación. La EEPROM es un tipo de memoria no volátil que no se borra cuando un programa se reinicia o pierde energía. Se puede comparar con una pequeña tarjeta SD para el software.

2) Formas de restablecer los programas: use el botón o el código

Hay un botón de reinicio suave/duro en el costado del hardware que puede detener y reiniciar el programa a la configuración predeterminada. Cuando se presiona, la opción de reinicio hace que el microcontrolador se apague.

El microcontrolador reiniciará la ejecución de su último boceto desde la configuración () una vez que se suelte el botón de reinicio.

Si su dispositivo tiene un problema con el chip WiFi, por ejemplo, no se restablecerá hasta que desconecte la alimentación de la placa. Los periféricos como las tarjetas microSD y los puertos USB aún estarán en su último estado si su dispositivo tiene un problema con el chip WiFi, y deben inicializarse nuevamente.

¿Cómo detener un programa Arduino?

Si se presiona el botón durante 10 milisegundos, el microprocesador se restablecerá. Cualquier dato que no esté almacenado en la EEPROM o en la memoria del programa se perderá cuando se reinicie el microcontrolador.

El botón de reinicio:

  • Detener la ejecución del boceto actual;
  • Reinicie el boceto desde setup();
  • Borre cualquier dato almacenado en variables en RAM;
  • No borrar ningún dato almacenado en EEPROM;

Para usar el botón de reinicio, presiónelo y suéltelo rápidamente. El LED del software se apagará, lo que indica que ya no se está ejecutando el boceto actual. Presionar y mantener presionado el botón de reinicio durante más de unos segundos hará que el programa reinicie su cargador de arranque, que puede usarse para cargar un nuevo boceto.

3) Cancele la ejecución del bucle de software provocando la pausa

Si desea detener la ejecución de un bucle, puede utilizar la palabra clave break. La palabra clave break hará que el programa salga del ciclo actual y continúe ejecutando el resto del boceto.

Si su software queda atrapado en un bucle infinito que necesita dejar de ejecutar, hay un comando disponible en un boceto que se puede utilizar para liberarse del bucle.

El software puede salir de un bucle con la sentencia break. Al escribir un boceto que contiene un bucle infinito, poner la palabra clave break al final le indica al programa que se vaya. Esto no se aplica a la función de bucle, que se puede terminar usando return.

Por ejemplo, si tiene un ciclo for que se supone que debe ejecutarse 10 veces, pero desea detenerlo después de 5 iteraciones, puede usar la palabra clave break.

4) Atrape el programa que se ejecuta en un bucle para cancelar la ejecución de las líneas de código incorrectas

¿Cómo detener un programa Arduino?

Una>

Para atrapar el programa en un bucle, normalmente necesitará escribir algún tipo de declaración condicional que evalúe si el bucle debe continuar ejecutándose o no.

Por ejemplo, si desea controlar cuándo su boceto ejecuta bucles en función del tiempo o de los datos de sensores entrantes, puede crear comprobaciones condicionales para estas condiciones y agregarlas a su código.

5) Considere usar la opción Modo de suspensión para cancelar el programa

Al ingresar al modo de suspensión, el programa se pone en un estado de bajo consumo de energía que se puede mantener durante semanas o meses seguidos sin dañar el dispositivo. Es posible elegir cómo desea que se active el programa antes de apagarlo. El software generalmente está configurado para activarse mediante un temporizador o mediante una interrupción externa. Dependiendo de la placa que esté utilizando, puede seleccionar entre una variedad de modos de suspensión.

El programa puede entrar en el modo de suspensión utilizando el sleep() método. Esto le indica al software que detenga todas las operaciones, excepto las tareas basadas en temporizador, hasta que ocurra una interrupción.

Una vez que el programa está en modo de suspensión, puede activarlo activando una interrupción externa o un temporizador incorporado. Las declaraciones condicionales y otros comandos le permiten crear una variedad de programas que usan el modo de suspensión para controlar cuándo su dispositivo ejecuta código.

6) Ejecute un relé externo para cortar la alimentación del programa

Si necesita evitar que un Arduino ejecute un código específico sin reiniciarlo o detenerlo, puede aplicar una opción de relé externo para cortar la alimentación del dispositivo. Esto le permitirá cerrar fácilmente su programa mientras conserva su estado actual para que pueda reiniciarlo más tarde.

La forma más sencilla de cortar la alimentación del software es mediante el uso de un relé externo. Un relé externo contiene dos terminales: uno para controlar si hay energía o no, y otro que se conecta directamente a VCC o GND en su placa, dependiendo de cómo esté conectado. Al conectar estos dos terminales con un interruptor, puede controlar cuándo se enciende y apaga su programa.

7) Designe un interruptor de apagado en su boceto

Si desea poder detener rápidamente su software para que no ejecute un boceto, puede designar un interruptor de apagado en su código. Esto generalmente se hace conectando un botón físico o un interruptor al programa que, cuando se activa, hará que el dispositivo ejecute un comando específico.

¿Cómo detener un programa Arduino?

Por ejemplo, puede configurar su interruptor de interrupción para llamar a la función exit (), que detendrá inmediatamente la ejecución de su boceto [2].

Puede diseñar un interruptor de emergencia para su programa agregando un botón o interruptor físico a su circuito. Cuando se activa este botón o interruptor, debe activar una determinada función en su código que detendrá la ejecución de su boceto. Esto podría ser tan simple como llamar al exit() función o escribir una declaración condicional que detenga el bucle.

Consulte nuestros artículos para mejorar su conocimiento en el desarrollo de Arduino:

  • ¿Cómo usar un micrófono con Arduino?
  • ¿Cómo usar un zumbador activo con Arduino?
  • ¿Cómo hacer un medidor de ohmios Arduino?

Preguntas más frecuentes

¿Cómo usar el botón para iniciar/detener el bucle?

La plataforma Arduino es una opción popular para los desarrolladores interesados ​​en experimentar con la programación y el hardware de microcontroladores. Una de las preguntas más comunes que tienen los nuevos usuarios es cómo detener un programa Arduino una vez que se ha iniciado.

Por lo general, hay dos formas de hacer esto [3]:

  1. La opción más sencilla es usar uno de los botones físicos de tu placa Arduino, como el botón de reinicio o el botón de encendido. Simplemente presione este botón en cualquier momento durante su código para detener el ciclo y detener cualquier ejecución posterior;
  2. Alternativamente, también puede usar comandos de software para detener la ejecución de su programa. Esto implica el uso de funciones como while(!digitalRead(7)) {} o while(1) {} para crear bucles infinitos que continuarán ejecutándose hasta que se detengan manualmente;

Para detener un programa Arduino usando un botón físico, simplemente presione y mantenga presionado el botón de reinicio o el botón de encendido en su placa durante unos segundos. Esto hará que el microcontrolador se reinicie y detenga cualquier ejecución posterior de su código. Si está utilizando un Arduino Uno, también puede usar el LED de alimentación integrado como un indicador físico de que su código se ha detenido. Simplemente desconecte la alimentación de la placa y el LED se apagará, lo que indica que el programa se ha detenido.

¿Cómo evitar el uso de la función de retraso en los bocetos de Arduino?

En la mayoría de las situaciones, millis() es una alternativa superior que no bloquea a time(). Los problemas de tiempo son muy comunes en la programación de computadoras. La función Arduino delay() retrasa el programa por un número determinado de milisegundos dado como parámetro [4].

¿Cómo se detiene un script de Arduino?

Hay varias formas de detener la ejecución de un script de Arduino.

El método más común es presionar el botón de reinicio en la placa Arduino, lo que hará que el programa actual deje de ejecutarse y se reinicie desde el principio.

Otra forma de detener un programa Arduino es desconectar la fuente de alimentación de la placa. Esto hará que se borren todos los programas almacenados en la pizarra, por lo que no se recomienda a menos que esté seguro de que ya no necesita ninguno de los programas de la pizarra.

Si desea mantener sus programas en la placa pero evitar que se ejecuten, puede desactivar la función de ejecución automática en el IDE de Arduino. Esto evitará que cualquier programa se ejecute automáticamente cuando conecte la alimentación a la placa o cargue un nuevo programa.

También puede usar el comando kill en el IDE de Arduino para terminar un programa en ejecución. Esto es útil si necesita detener un programa atascado en un bucle infinito o, de lo contrario, no responde a la entrada.

¿Puedo desconectar mi Arduino?

Sí, puedes desenchufar tu Arduino sin dañarlo. El chip ATmega del Arduino tiene protecciones integradas que lo protegen de daños si no se aplica alimentación externa. [5].

¿Cómo detengo un programa Arduino sin desconectarlo?

Hay algunas formas de detener un programa Arduino sin desconectarlo.

Una forma es usar el Monitor Serial en el IDE de Arduino. Puede abrir Serial Monitor haciendo clic en el icono de la barra de herramientas o seleccionando Herramientas > Serial Monitor en la barra de menú.

Con Serial Monitor abierto, puede enviar un carácter de «nueva línea» (código ASCII 10) a su Arduino, lo que hará que su programa se cierre.

Otra forma de detener un programa Arduino es presionar el botón de reinicio en el tablero. Esto hará que su programa se reinicie desde el principio.

Finalmente, puedes desconectar la fuente de alimentación de tu Arduino. Esto hará que su programa se detenga por completo y puede dañar su hardware si no se hace con cuidado. [6].

Vídeo útil: Tutoriales de programación de Arduino || “Parada de emergencia suave” usando una interrupción activada externamente

Referencias:

  1. https://chipwired.com/stop-arduino-running/
  2. https://robotsbench.com/how-to-stop-an-arduino-program/
  3. https://www.instructables.com/Start-Stop-Button-Switch-With-Arduino/
  4. https://dzone.com/articles/arduino-using-millis-instead-of-delay
  5. https://arduino.stackexchange.com/questions/4769/can-i-simply-unplug-the-arduino-usb-if-serial-communication-is-active
  6. https://chipwired.com/stop-arduino-running/
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Deja un comentario

¡Contenido premium bloqueado!

Desbloquear Contenido
close-link