Paso 14: El código
int led1 = 2; Esto establece números en nombres. Esto se utiliza más adelante para led [i]
int led2 = 3;
led3 int = 4;
led4 int = 5;
int i = -1; Se establece en -1, utilizado para aleatorizar sólo el código cuando setup(); se llama.
int j = 0; J se restablece a 0 para un nuevo redondo, j se utiliza para el índice cuando se llama el código correcto.
#include / / incluye la librería servo
Servo1 servo; Servo de nombre
doble código [4] = {1, 1, 1, 1}; Crea un array llamado código, es consiste en 4 dígitos.
corregir doble [5] = {0, 0, 0, 0, 0}; Crea un array llamado correcto, consta de 5 dígitos y se usa para ver si todos los números han sido conjeturados correctamente.
doble led [4] = {2, 3, 4, 5}; Crea una matriz led, es consiste en 4 dígitos y se utiliza para activar el LED cuando el índice se llama.
void setup() {}
Configuración también se utiliza para reiniciar el programa cuando se ha ingresado el código correcto.
inicializar comunicaciones serie a 9600 bps:
Serial.Begin(9600);
corregir doble [5] = {0, 0, 0, 0, 0}; Restablece la matriz correcta
Establece el LED (2 a 5) y los botones (de 9 a 12) para ser reconocido como entrada como salida.
pinMode (9, entrada);
pinMode (10, entrada);
pinMode (11, entrada);
pinMode (12, entrada);
pinMode (2, salida);
pinMode (3, salida);
pinMode (4, salida);
pinMode (5, salida);
servo1.Attach(1); se fija el servo en el pin 1
servo1.Write(90); Ponga el Servo en esta posición
Delay(2000); Mantenga esta posición de 2000ms reajustar la tapa
servo1.Write(170); cerradura de la tapa
i = -1; Aleatoriza el código si i = -1
digitalWrite (LED 1, bajo); Restablece todos los LED
digitalWrite (led2, LOW);
digitalWrite (LED 3, bajo);
digitalWrite (led4, LOW);
analogWrite (8, random(0,255)); Establecer el RGB en un color al azar
analogWrite (7, random(0,255));
analogWrite (6, random(0,255));
}
void generateCode()
{
aleatorizar el código si i = -1
randomSeed(random());
para (int i = 0; i < 4; i ++)
{
corregir [0] = 0;
corregir [1] = 0;
corregir [2] = 0;
corregir [3] = 0;
corregir [4] = 0;
código [i] = random(1,5);
}
depurar código para no tener que averiguar el código.
Serial.println("Code");
Serial.println(Code[0]);
Serial.println(Code[1]);
Serial.println(Code[2]);
Serial.println(Code[3]);
}
void retry() {}
Si el código es incorrecto de que esta función se llama
Serial.Begin(9600);
corregir doble [5] = {0, 0, 0, 0, 0};
i = 0; me puse a 0 por lo que el código no se restablece.
digitalWrite (LED 1, bajo);
digitalWrite (led2, LOW);
digitalWrite (LED 3, bajo);
digitalWrite (led4, LOW);
}
void loop() {}
Si (i == -1) {}
generateCode(); generar un nuevo código si i = -1
i ++;
}
// code 1 ////////////////////////
El siguiente código será leída si la entrada es igual al número en la posición actual.
Si el número y la posición es correcta el led se encenderá y la "correcta" de la matriz se establecerá en 1 para esa posición
Si el número es correcto, pero la posición es incorrecta, el led parpadeará lentamente y continuar a la siguiente posición, correcta no está establecido en 1
Si el número no es correcto el led parpadeará rápido y continuar a la siguiente posición correcta no está establecido en 1
Si todo correcto es = a 1. El LED parpadeará y el servo cambiará de posición para permitir que la caja abrir. la configuración de la función se llama para que el juego para comenzar de nuevo.
Si alguno de los números en la matriz "correcto" es 0 el led rojo parpadeará una vez y el reintento de función se llama.
Si (digitalRead(9) == HIGH) / / si se presiona el botón >
{
Si (código [i] == 1) {/ / si el código es correcto botón pulsado
digitalWrite((led[i]), HIGH); Gire ledon
i ++; Índice de avance
corregir [i] = 1; el valor correcto Índice 1
Delay(250);
}
else if (código [1] == 1 o código [2] == 1 o código [3] == 1 o código [4] == 1) {}
Serial.println ("a la derecha, pero la ubicación incorrecta");
digitalWrite((led[i]), HIGH);
Delay(500); retrasar para que botón no entrado a menudo durante 1 Pulse.
digitalWrite((led[i]), baja); LED parpadea lentamente código.
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
i ++;
Delay(250);
}
else if (código [i]! = 1) {}
Serial.println("Wrong");
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
i ++;
Delay(250);
}
}
Si (digitalRead(10) == HIGH)
{
Si (código [i] == 2) {}
digitalWrite((led[i]), HIGH);
i ++;
corregir [i] = 1;
Delay(250);
}
else if (código [1] == 2 o código [2] == 2 o código [3] == 2 o código [4] == 2) {}
Serial.println ("a la derecha, pero la ubicación incorrecta");
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
i ++;
Delay(250);
}
else if (código [i]! = 2) {}
Serial.println("Wrong");
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
digitalWrite((led[i]), HIGH);
Delay(200);
i ++;
Delay(250);
}
}
Si (digitalRead(11) == HIGH)
{
Si (código [i] == 3) {}
digitalWrite((led[i]), HIGH);
i ++;
corregir [i] = 1;
Delay(250);
}
else if (código [1] == 3 o código [2] == 3 o código [3] == 3 o código [4] == 3) {}
Serial.println ("a la derecha, pero la ubicación incorrecta");
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
i ++;
Delay(250);
}
else if (código [i]! = 3) {}
Serial.println("Wrong");
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
i ++;
Delay(250);
}
}
Si (digitalRead(12) == HIGH)
{
Si (código [i] == 4) {}
digitalWrite((led[i]), HIGH);
i ++;
corregir [i] = 1;
Delay(250);
}
else if (código [1] == 4 o código [2] == 4 o código [3] == 4 o código [4] == 4) {}
Serial.println ("a la derecha, pero la ubicación incorrecta");
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
Delay(500);
digitalWrite((led[i]), baja);
Delay(500);
digitalWrite((led[i]), HIGH);
i ++;
Delay(250);
}
else if (código [i]! = 4) {}
Serial.println("Wrong");
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
Delay(200);
digitalWrite((led[i]), baja);
Delay(200);
digitalWrite((led[i]), HIGH);
i ++;
Delay(250);
}
}
comprueba si todo el código se ingresa correctamente.
Si (digitalRead(led4) == alta y corregir [1] == 1 y corregir [2] == 1 y corregir [3] == 1 y corregir [4] == 1) {}
Si (j < = 20) {}
digitalWrite (led2, LOW);
digitalWrite (LED 1, bajo);
digitalWrite (LED 3, bajo);
digitalWrite (led4, LOW);
Delay(100);
digitalWrite (led2, HIGH);
digitalWrite (LED 1, HIGH);
digitalWrite (LED 3, alto);
digitalWrite (led4, HIGH);
Delay(100);
j ++;
i = 0;
int i = 0;
servo1.Write(90);
}
else if (j > 20)
{
j = 0;
Setup();
}}
Si no correcto, vuelva a intentarlo
else if (digitalRead(led4) == alta y corregir [1] == 0 o digitalRead(led4) == alta y corregir [2] == 0 o digitalRead(led4) == alta y corregir [3] == 0 o digitalRead(led4) == alta y corregir [4] == 0) {}
Delay(2000);
digitalWrite (led4, LOW);
digitalWrite (led2, LOW);
digitalWrite (LED 1, bajo);
digitalWrite (LED 3, bajo);
Delay(600);
digitalWrite (led4, HIGH);
Delay(600);
i = 0;
int i = 0;
Retry() ;}}