Paso 6: El código, parte 1
Primero un poco de historia sobre cómo el regulador envía los datos. Para recibir datos desde el controlador, se establece el pin de strobe en alto, luego lee el primer bit de datos (bit menos significativo). Para obtener el segundo bit, cambiar el pin de reloj y luego leer el pin de datos. Continúa haciendo esto 16 veces. El estado del controlador es un número de 2 bytes, los bytes menos significativos 12 que contiene los botones que actualmente se presiona y los bytes más significativos 4 siendo inútil.Para que las primeras 7 líneas son bastante simples, porque ellos sólo asignan nombres a los pines 3 regulador y la espiga indicadora juego.
Líneas 8 y 20 declaran los datos hexadecimales utilizados para detectar que tecla del controlador. Cada valor hexadecimal se enciende un poco separado en la secuencia de datos, para que manera puede usar cambios de bit para determinar si un determinado botón está presionado, o utilizar un bit a bit y.
La variable 'matriz' es sólo una matriz de enteros largos 30 ints. Esto almacena la secuencia de Prensas para el juego.
'pos' es una variable de posición. Más en eso más adelante.
'timeForPress' es cuánto tiempo tienes que pulsar los botones.
Lo siguiente es el método setup(). Empezamos por siembra el generador de números aleatorios y luego ajustar el modo de perno para cada uno de los pines 2-9. A continuación abrir comunicación serial, para la depuración y establecer la secuencia de botones para todos 4. Hice este b y c el sistema de numeración para los LEDs sólo va hasta 3, así que el 4 es esencialmente sólo un marcador de posición. Ahora set timeForPress a 1000 y llamar al método genSequence(), que llena nuestro array con números aleatorios enteros entre 0 y 3(inclusive). A continuación, establece nuestra posición a 0, para demostrar que aún no ha comenzado el juego, y luego parpadea el indicador de juego para demostrar que el juego está a punto de comenzar.