Paso 10: ¿Cómo funciona el código?
LA TEMPERATURA DEL EJEMPLO ES 63
Lo primero que debe ocurrir es que necesitamos obtener la temperatura en dos dígitos separados. Esto es realmente más fácil de lo que imaginas.
digit10s = int(temp / 10);
digit1s = int (temp - (digit10s * 10));
Con esto podemos separar las dos cifras. Permite abordar la primera de ellas. digit10s es igual a la temperatura dividida por 10. Temp de nuestro ejemplo es 63, tan 63 / 10 = 6. Ahora digit10s es igual a 6.
Ahora para el 1s dígitos. digit1s es igual a la temperatura - digit10s * 10. Así que si nuestra temperatura era de 63, restamos (digit10s * 10 = 60) de temperatura que nos da 3.
digit10s era 6, luego multiplica por 10, que nos da 60, entonces resta 60 de temp (63). Luego nos da el 3. Continuación, establezca digit1s = 3.
Y eso es cómo se desagregan las cifras!
Nuestro siguiente bit del código es sólo un poco más complicado.
Este es el bloque principal de código porque es lo que hace que el LED flash de la temperatura.
mientras que (digit10s! = 0) //do un tiempo bucle mientras que digit10s no es igual a 0
{
analogWrite (LED10, 75);
Delay(Time);
analogWrite (LED10, 0);
Delay(Time);
digit10s--; digit10s de decremento por 1
} / / fin de lo tiempo declaración
Delay(1000);
Lo primero a notar es que tenemos un tiempo bucle y lo que hace esto es que mientras la condición se cumple, el código se ejecutará una y otra vez.
Ahora ¿qué condición?
mientras que (digit10s! = 0) *** esto es decir ejecutar el bloque de abajo como digit10s no es igual a 0.
Permite ver en digit10s. Digit10s es el dígito decenas de la temperatura. Nos zambullimos la temperatura por 10 y nos da la cifra de 10. Así dicen que es de 63 grados fuera. La cifra de 10 (digit10s) es igual a 6.
Ahora ¿cómo ¿esto se enciende los LEDs la cantidad apropiada de los tiempos? Bien, es decir, "digit10s no es igual 0, (Recuerde, ahora es igual a 6) entonces, ejecutar el bloque de abajo. Lo primero es vueltas el LED en 1 segundo luego lo apaga. Después llegamos a esto
digit10s--; Aquí utilizamos el '--' operación y lo que hace es saca 1 de la variable cada vez se pasa. Eso significa que si digit10s era igual a 6, ahora es igual a 5. Ahora 5 es todavía no es igual a 0, así que nos vuelva a ejecutar el bloque. En y una vez más ejecuta el bloque otra vez apaga el LED y luego llegamos a digit10s--; otra vez. Ese decremento digit10s por un digit10s otra vez lo de ahora es igual a 4. Este bloque se ejecuta 6 veces (que parpadea el LED 6 veces). ¿Por qué 6? Porque digit10s era igual a 6, ¿recuerdas? Ahora, Si ejecutamos el digit10s--; 6 veces, resta 6 de digit10s. Sale de digit10s igual a 0.
¿Pero lo que detiene el bloque después de que se va a través de 6 veces? Si miramos hacia atrás vemos la operación ensayada.
mientras que (digit10s! = 0) / / mientras que digit10s no es igual a 0, ejecute el código siguiente una y otra vez.
Es decir ejecutar el bloque de una y otra vez mientras que digit10s no es igual a cero. Pero ahora digit10s es igual a 0! Así que el bloque se detiene y el Arduino se mueve hacia el siguiente bloque de código.