Paso 6: Sincronización de grupos de LEDs
Uno de los principales problemas con los pasos anteriores fue que cada pieza del proyecto se construyó por separado, pero cuando se suman crean problemas en la programación. Los sensores fotocélula requieren de reacción inmediata para el control de los motores, pero los grupos de LED y motor de vibración necesario longitudes de retrasos para controlarlos. También los grupos de LED parpadear al mismo tiempo a pesar de se supusieron que son tres grupos distintos. Para controlar todo el código que necesitamos, requerimos un contador de tiempo.
Puesta en práctica
Para agregar el contador de tiempo, crear una variable entera en la parte superior cerca de las otras variables. Establece igual a 1 para comenzar con y se incrementará en 1 en el circuito. Después de que el temporizador llega a 24, nos será restablecer a 1 por lo que no aumenta infinitamente. Cada pieza del proyecto serpiente entonces se encenderá encendido o apagado en base a qué hora es. El retraso se añade al final para crear esa pausa para mantener la configuración de encendido/apagado de nuestras piezas.
Jugaba con la sincronización de todo antes nos decidimos por los controles de finales. Uno de los problemas que nos encontramos fue el retraso en el final, teníamos un retraso para las luces y el motor de la vibración, sin embargo, los sensores de fotocelda también se verían afectados por este retraso, que era algo indeseable. Nos decidimos por un cuarto de una demora de segundos, esto nos dio tiempo suficiente para que el LED y el motor de la vibración activar o desactivar y un retardo lo suficientemente pequeño como para los sensores de fotocelda, era casi imperceptible.
Tabla de tiempo
Una vez más, en este paso, encontramos que era más fácil sacar lo que queríamos tiempo prudente, por lo que podríamos ver fácilmente Cuándo encender y apagar cada componente.
Contador de tiempo vibración LED LEDs LEDs
Valor Motor Grupo 1 grupo 2 Grupo 3
1 ON off ON ON
2 ON ON off off
3 ON off off ON
4 off off ON ON
5 off off ON off
6 off ON off ON
7 off off off ON
8 off off ON off
9 off off ON ON
10 off off off ON
11 off off off off
12 off off ON ON
13 off off ON ON
14 off ON off off
15 off off off ON
16 off off ON ON
17 ON off ON off
18 ON ON off ON
19 ON off off ON
20 off off ON off
21 off off ON ON
22 off ON off ON
23 off off off off
24 off off ON ON