Etape 14 : Le code
led1 int = 2 ; Cela définit le numéros de noms. Il est utilisé plus tard pour conduit [i]
led2 int = 3 ;
led3 int = 4 ;
led4 int = 5 ;
int i = -1 ; J’affecte -1, utilisé pour tirer au hasard seulement le code quand setup() ; est appelée.
int j = 0 ; J se réinitialise à 0 pour un nouveau j de ronde, sert à en tant qu’index lorsque le bon code est appelé.
#include / / inclut la bibliothèque de servo
Servo servo1 ; Servo de nom
double code [4] = {1, 1, 1, 1} ; Crée un tableau appelé code, c’est se compose de 4 chiffres.
corriger les double [5] = {0, 0, 0, 0, 0} ; Crée un tableau appelé correct, c’est se compose de 5 chiffres et sert à vérifier si tous les nombres ont été devinés correctement.
double conduit [4] = {2, 3, 4, 5} ; Crée un tableau appelé led, c’est se compose de 4 chiffres et est utilisée pour activer les leds lorsque l’index est appelée.
void setup() {}
Le programme d’installation est également utilisé pour réinitialiser le programme lorsque le code correct a été saisi.
initialiser une communication série à 9600 bits/s :
Serial.Begin(9600) ;
corriger les double [5] = {0, 0, 0, 0, 0} ; Réinitialise le tableau correct
Définit la LED (2 à 5) et les touches (9 à 12) pour être reconnu en tant qu’entrée sortie.
pinMode (9, entrée) ;
pinMode (10, entrée) ;
pinMode (11, entrée) ;
pinMode (12, entrée) ;
pinMode (sortie 2) ;
pinMode (3, sortie) ;
pinMode (sortie 4) ;
pinMode (5, sortie) ;
SERVO1.Attach(1) ; attache le servo sur la broche 1
SERVO1.Write(90) ; Réglez le Servo sur cette position
Delay(2000) ; Maintenez cette position pendant 2000ms remettre le couvercle
SERVO1.Write(170) ; Verrouillez le couvercle
J’ai = -1 ; rend aléatoire le code si j’ai = -1
digitalWrite (led1, faible) ; Réinitialise tous les LED
digitalWrite (led2, faible) ;
digitalWrite (DEL3, faible) ;
digitalWrite (led4, faible) ;
analogWrite (8, random(0,255)) ; Définissez le RGB pour une couleur au hasard
analogWrite (7, random(0,255)) ;
analogWrite (6, random(0,255)) ;
}
Sub generateCode()
{
Alternez le code si j’ai = -1
randomSeed(random()) ;
pour (int i = 0; i < 4; i ++)
{
corriger [0] = 0 ;
corriger [1] = 0 ;
corriger [2] = 0 ;
corriger [3] = 0 ;
corriger [4] = 0 ;
Code [i] = random(1,5) ;
}
déboguer le code si vous n’avez pas de comprendre le code.
Serial.println("code") ;
Serial.println(code[0]) ;
Serial.println(code[1]) ;
Serial.println(code[2]) ;
Serial.println(code[3]) ;
}
void retry() {}
Si le code est incorrect, que cette fonction est appelée
Serial.Begin(9600) ;
corriger les double [5] = {0, 0, 0, 0, 0} ;
i = 0 ; J’ai mis à 0 si le code n’est pas réinitialisé.
digitalWrite (led1, faible) ;
digitalWrite (led2, faible) ;
digitalWrite (DEL3, faible) ;
digitalWrite (led4, faible) ;
}
void loop() {}
Si (j’ai == -1) {}
generateCode() ; générer un nouveau code si j’ai = -1
i ++ ;
}
// code 1 ////////////////////////
Le code suivant lirai si l’entrée est égale au nombre α la position courante.
Si le nombre et la position est correcte la led s’allume et le tableau « correct » aura la valeur 1 pour ce poste
Si le numéro est correct, mais la position est erronée, le voyant lumineux clignote lentement puis continuer vers la position suivante, Correct n’est pas définie à 1
Si le nombre n’est pas correct du tout la led va clignoter rapidement et continuer vers la position suivante, Correct n’est pas définie à 1
Si tout est correct est = à 1. Les leds clignotent et le servo va changer de position pour permettre à la boîte pour ouvrir. le réglage de la fonction s’appelle le jeu recommencer.
Si l’un des nombres dans le tableau « correct » est 0, la led rouge clignote une fois et la nouvelle tentative de fonction est appelée.
Si (digitalRead(9) == haut) / / si la touche >
{
Si (code [i] == 1) {/ / si le code est correct à touche appuyée
digitalWrite((led[i]), HIGH) ; Tournez ledon
i ++ ; indice d’avance
corriger [i] = 1 ; la valeur index correct 1
Delay(250) ;
}
ElseIf (code [1] == 1 ou code [2] == 1 ou code [3] == 1 ou code [4] == 1) {}
Serial.println ("droite, mais mauvais emplacement") ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ; délai de bouton ne soient une entrée dans souvent pendant 1 Appuyez sur.
digitalWrite((led[i]), faible) ; A code de clignotement lent.
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
i ++ ;
Delay(250) ;
}
ElseIf (code [i]! = 1) {}
Serial.println("Wrong") ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
i ++ ;
Delay(250) ;
}
}
Si (digitalRead(10) == HIGH)
{
Si (code [i] == 2) {}
digitalWrite((led[i]), HIGH) ;
i ++ ;
corriger [i] = 1 ;
Delay(250) ;
}
ElseIf (code [1] == 2 ou code [2] == 2 ou code [3] == 2 ou code [4] == 2) {}
Serial.println ("droite, mais mauvais emplacement") ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
i ++ ;
Delay(250) ;
}
ElseIf (code [i]! = 2) {}
Serial.println("Wrong") ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
i ++ ;
Delay(250) ;
}
}
Si (digitalRead(11) == HIGH)
{
Si (code [i] == 3) {}
digitalWrite((led[i]), HIGH) ;
i ++ ;
corriger [i] = 1 ;
Delay(250) ;
}
ElseIf (code [1] == 3 ou le code [2] == code [3] ou 3 == 3 ou code [4] == 3) {}
Serial.println ("droite, mais mauvais emplacement") ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
i ++ ;
Delay(250) ;
}
ElseIf (code [i]! = 3) {}
Serial.println("Wrong") ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
i ++ ;
Delay(250) ;
}
}
Si (digitalRead(12) == HIGH)
{
Si (code [i] == 4) {}
digitalWrite((led[i]), HIGH) ;
i ++ ;
corriger [i] = 1 ;
Delay(250) ;
}
ElseIf (code [1] == 4 ou le code [2] == 4 ou code [3] == 4 ou code [4] == 4) {}
Serial.println ("droite, mais mauvais emplacement") ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
Delay(500) ;
digitalWrite((led[i]), faible) ;
Delay(500) ;
digitalWrite((led[i]), HIGH) ;
i ++ ;
Delay(250) ;
}
ElseIf (code [i]! = 4) {}
Serial.println("Wrong") ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
Delay(200) ;
digitalWrite((led[i]), faible) ;
Delay(200) ;
digitalWrite((led[i]), HIGH) ;
i ++ ;
Delay(250) ;
}
}
vérifie si l’ensemble du code est correctement inscrite.
Si (digitalRead(led4) == haute et corriger [1] == 1 et corriger [2] == 1 et corriger [3] == 1 et corriger [4] == 1) {}
Si (j < = 20) {}
digitalWrite (led2, faible) ;
digitalWrite (led1, faible) ;
digitalWrite (DEL3, faible) ;
digitalWrite (led4, faible) ;
Delay(100) ;
digitalWrite (led2, HIGH) ;
digitalWrite (led1, HIGH) ;
digitalWrite (DEL3, HIGH) ;
digitalWrite (led4, HIGH) ;
Delay(100) ;
j ++ ;
i = 0 ;
int i = 0 ;
SERVO1.Write(90) ;
}
ElseIf (j > 20)
{
j = 0 ;
Setup() ;
}}
Si elle est pas correcte, réessayer
ElseIf (digitalRead(led4) == haute et corriger [1] == 0 ou digitalRead(led4) == haute et corriger [2] == 0 ou digitalRead(led4) == haute et corriger [3] == 0 ou digitalRead(led4) == haute et corriger [4] == 0) {}
Delay(2000) ;
digitalWrite (led4, faible) ;
digitalWrite (led2, faible) ;
digitalWrite (led1, faible) ;
digitalWrite (DEL3, faible) ;
Delay(600) ;
digitalWrite (led4, HIGH) ;
Delay(600) ;
i = 0 ;
int i = 0 ;
Retry();}}