Paso 1: Elementos claves #1. División de las funciones de encendido y apagado
1. División de las funciones de "ON" y "OFF" en secciones separadas
Colocar el encendido y apagado funciones en sus propias secciones dentro de la secuencia de comandos era una gran pieza de este rompecabezas para mí. Antes de hacerlo estaba cerca de conseguir los LEDs para responder de la manera que quería pero todavía no estaba bien.
Ahora tengo todas las funciones para encender los LEDs agrupados bajo el "ledsON:" etiqueta. Y todas las funciones para activar el LED apagado otra vez estan junto en el "ledsOFF:" etiqueta.
Esto también me ha permitido recorrer la sección de "ON" del código varias veces antes de pasar a la sección de "OFF". Esto permite al programa de recogida de los cambios en el valor promedio del sensor. Pero tienes que tener en cuenta que cuantas más veces que se ejecuta a través de la sección ON más lento el programa obtiene las secciones OFF.
Vamos a hablar de estas secciones en este sketch de "etiquetado". Si no has usado una etiqueta antes, no te preocupes. Piense en una etiqueta como nada más que un marcador en el código. Y creación de una etiqueta no podía ser más fácil-
Label1: (nota el colon, no añada un punto y coma al final de una etiqueta)
Eso es todo, que acabamos de crear una etiqueta (marcador) llamada "LABEL1". Ahora puede ir directamente a las funciones en LABEL1: desde cualquier lugar en la secuencia de comandos. Las etiquetas son muy útiles especialmente cuando se combina con otras funciones como "if".
Aquí está un ejemplo rápido:
En el ejemplo siguiente que esperamos que "x" es siempre igual a 10 lo contrario parece que vamos a lanzar un misil nuclear!
............
Si (x = 10 goto LABEL1); (Nota: No use los dos puntos al final de un nombre de etiqueta cuando llamarlo)
preparar misil para lanzamiento
digitalWrite (seguridad baja); ¿hay un interruptor de seguridad? Al parecer nos apenas apagué!
digitalWrite (lanzamiento, alto); lanzar el misil - charlatán
LABEL1:
serie. Println ("X es igual a 10");
serie. Println ("quitar la cabeza entre las rodillas")
.........
En el ejemplo anterior siempre y cuando "x" es igual a 10 el programa omitirá todo incluyendo "/ prepara misil para lanzamiento" e ir directamente al código en LABEL1.
Pero hay un problema, el programa continuará leyendo el código que viene después de LABEL1, incluyendo el código adicional que está más adelante en el guión que prepara y lanza los misiles Tomahawk backup. Es común al utilizar etiquetas para tener uno llamado final: al final de su bosquejo. FINAL: etiqueta te permite obtener los diablos de dodge. Para detener el programa de lanzamiento de los Tomahawks cuando llega a esa parte del código, dejamos el programa de llegar a esa parte del código. Si tuviéramos que añadir
Goto fin;
en la última serie. Println arriba el sketch será ir directamente al final y saltar lanzar las hachas también.