ENIB 2023 : D2CODE TON CODE
Révision datée du 26 janvier 2023 à 16:27 par Pol (discussion | contributions)
Sommaire
photo de l'équipe
Que fait ce projet ?
On créé un code a décoder.
Liste des composants
- bois
- carton
- peinture
- eau
- tasse
- pinceau
- découpeuse laser
- fils
- bouton poussoir
- led
- arduino
- pc
- patience
Code
byte x;
byte w = 1;
String otv = "";
String KOD = "";
// un tableau de variantes de code
char* kod[6] = {"123","132","213","231","312","321"};
boolean button1WasUp = true;
boolean button2WasUp = true;
boolean button3WasUp = true;
void setup() {
Serial.begin(9600);
// broches pour la connexion des boutons
pinMode(5, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
// broches pour la connexion des LED
pinMode(16, OUTPUT);
pinMode(7, OUTPUT);
pinMode(20,OUTPUT);
}
void loop() {
/// FONCTION DE GÉNÉRATION DE CODE ///
while (w == 1) {
delay(500);
digitalWrite(16, HIGH); digitalWrite(7, HIGH);
delay(100);
digitalWrite(16, LOW); digitalWrite(7, LOW);
x = random(0, 5);
KOD = String(kod[x]);
Serial.print("Kode - ");
Serial.println(KOD);
Serial.println("");
Serial.print("Reponse - ");
w = 2;
}
digitalWrite(20,HIGH);
/// ENTREZ LE PREMIER NUMÉRO ///
while (w == 2) {
// connaître le statut des boutons
boolean button1IsUp = digitalRead(5);
boolean button2IsUp = digitalRead(4);
boolean button3IsUp = digitalRead(2);
// si le bouton a été pressé, ajoutez "1" à la ligne
if (button1WasUp && !button1IsUp) {
delay(10);
button1IsUp = digitalRead(5);
if (!button1IsUp) { otv = otv + "1"; Serial.print("1"); w = 3;}
}
button1WasUp = button1IsUp;
// si le bouton a été pressé, ajoutez "2" à la ligne
if (button2WasUp && !button2IsUp) {
delay(10);
button2IsUp = digitalRead(4);
if (!button2IsUp) { otv = otv + "2"; Serial.print("2"); w = 3;}
}
button2WasUp = button2IsUp;
// si le bouton a été pressé, ajoutez "3" à la ligne
if (button3WasUp && !button3IsUp) {
delay(10);
button3IsUp = digitalRead(2);
if (!button3IsUp) { otv = otv + "3"; Serial.print("3"); w = 3;}
}
button3WasUp = button3IsUp;
}
/// ENTRER LE DEUXIÈME NUMÉRO ///
while (w == 3) {
// connaître le statut des boutons
boolean button1IsUp = digitalRead(5);
boolean button2IsUp = digitalRead(4);
boolean button3IsUp = digitalRead(2);
// si le bouton a été pressé, ajoutez "1" à la ligne
if (button1WasUp && !button1IsUp) {
delay(10);
button1IsUp = digitalRead(5);
if (!button1IsUp) { otv = otv + "1"; Serial.print("1"); w = 4;}
}
button1WasUp = button1IsUp;
// si le bouton a été pressé, ajoutez "2" à la ligne
if (button2WasUp && !button2IsUp) {
delay(10);
button2IsUp = digitalRead(4);
if (!button2IsUp) { otv = otv + "2"; Serial.print("2"); w = 4;}
}
button2WasUp = button2IsUp;
// si le bouton a été pressé, ajoutez "3" à la ligne
if (button3WasUp && !button3IsUp) {
delay(10);
button3IsUp = digitalRead(2);
if (!button3IsUp) { otv = otv + "3"; Serial.print("3"); w = 4;}
}
button3WasUp = button3IsUp;
}
/// ENTREZ LE TROISIÈME NUMÉRO ///
while (w == 4) {
// connaître le statut des boutons
boolean button1IsUp = digitalRead(5);
boolean button2IsUp = digitalRead(4);
boolean button3IsUp = digitalRead(2);
// si le bouton a été pressé, ajoutez "1" à la ligne
if (button1WasUp && !button1IsUp) {
delay(10);
button1IsUp = digitalRead(5);
if (!button1IsUp) { otv = otv + "1"; Serial.println("1"); w = 5;}
}
button1WasUp = button1IsUp;
// si le bouton a été pressé, ajoutez "2" à la ligne
if (button2WasUp && !button2IsUp) {
delay(10);
button2IsUp = digitalRead(4);
if (!button2IsUp) { otv = otv + "2"; Serial.println("2"); w = 5;}
}
button2WasUp = button2IsUp;
// si le bouton a été pressé, ajoutez "3" à la ligne
if (button3WasUp && !button3IsUp) {
delay(10);
button3IsUp = digitalRead(2);
if (!button3IsUp) { otv = otv + "3"; Serial.println("3"); w = 5;}
}
button3WasUp = button3IsUp;
}
/// COMPARER LA RÉPONSE AU CODE ///
if (KOD == otv ) {
Serial.println(""); Serial.println("OUI !"); Serial.println("");
digitalWrite(7, HIGH); delay(1000); digitalWrite(7, LOW);
otv = ""; // effacer la ligne
w = 1; // générer un nouveau code
}
else {
Serial.println(""); Serial.println("NON !"); Serial.println("");
Serial.print("Reponse - ");
digitalWrite(16, HIGH); delay(1000); digitalWrite(16, LOW);
otv = ""; // effacer la ligne
w = 2; // nouvelle tentative de saisie
}
}
Catégories
FABIEN lab
