ENIB 2023 : D2CODE TON CODE : Différence entre versions
(→photo de l'équipe) |
(→fin) |
||
(6 révisions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 4 : | Ligne 4 : | ||
==Que fait ce projet ? == | ==Que fait ce projet ? == | ||
+ | On créé un code a décoder. | ||
==Liste des composants== | ==Liste des composants== | ||
− | * | + | * bois |
− | * | + | * carton |
− | * | + | * peinture |
+ | * eau | ||
+ | * tasse | ||
+ | * pinceau | ||
+ | * découpeuse laser | ||
+ | * fils | ||
+ | * bouton poussoir | ||
+ | * led | ||
+ | * arduino | ||
+ | * pc | ||
+ | * patience | ||
==Code== | ==Code== | ||
<pre> | <pre> | ||
− | + | 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 | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
</pre> | </pre> | ||
Ligne 19 : | Ligne 183 : | ||
[[Catégorie:Enib2023]] | [[Catégorie:Enib2023]] | ||
+ | |||
+ | FABIEN lab | ||
+ | |||
+ | ==fin== | ||
+ | [[Fichier:boite.jpg|600px]] | ||
+ | [[Fichier:cable.jpg|600px]] | ||
+ | |||
+ | [[Catégorie:Arduino]] |
Version actuelle datée du 15 janvier 2024 à 15:59
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