SOMMAIRE ►
Un projet Arduino simple avec des boutons qui vous demande de deviner le code généré par le microcontrôleur. Si vous le souhaitez, des LED peuvent être connectées à la carte Arduino pour indiquer la saisie correcte et incorrecte du code. Toutes les informations (le chiffre qui a été généré et la réponse de l’utilisateur) seront affichées sur le moniteur du port Arduino IDE. Si vous le souhaitez, un écran OLED 128×64 Arduino optionnel peut être connecté.
Ce dont vous aurez besoin
- Arduino Uno / Arduino Nano / Arduino Mega
- boutons-poussoirs
- LEDs et resistances
- breadboard
- fils de connexion
Matériel supplémentaire sur ce sujet:
Projet Arduino avec boutons « Déchiffrez le code »

L’image ci-dessus montre l’assemblage du circuit du projet avec les boutons du code de devinette. 2 Notez que les boutons sont connectés à l’Arduino sans résistance, car les broches de la carte sont configurées avec INPUT_PULLUP, qui tirera vers le haut des résistances de 20kOhm aux ports dans le microcontrôleur lui-même. Lorsque le bouton correspondant est pressé, les numéros « 1 », « 2 » ou « 3 » seront ajoutés à la chaîne String otv = « »;
Programme Arduino pour projet « Déchiffrez le code »
byte x; byte w = 1; String otv = ""; String KOD = ""; // un tableau de variantes de code char* kod[6] = {"123", "132", "231", "213", "321", "312"}; 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(3, INPUT_PULLUP); // broches pour la connexion des LED pinMode(13, OUTPUT); pinMode(10, OUTPUT); } void loop() { /// FONCTION DE GÉNÉRATION DE CODE /// while (w == 1) { delay(500); digitalWrite(13, HIGH); digitalWrite(10, HIGH); delay(100); digitalWrite(13, LOW); digitalWrite(10, LOW); x = random(0, 5); KOD = String(kod[x]); Serial.print("Kode - "); Serial.println(KOD); Serial.println(""); Serial.print("Reponse - "); w = 2; } /// 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(3); // 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(3); 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(3); // 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(3); 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(3); // 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(3); 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(10, HIGH); delay(1000); digitalWrite(10, 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(13, HIGH); delay(1000); digitalWrite(13, LOW); otv = ""; // effacer la ligne w = 2; // nouvelle tentative de saisie } }
Explication du code Arduino projet Arduino mini:
- le programme utilise six variantes de code, choisies au hasard. Pour deviner le code, il faut appuyer une seule fois sur chaque bouton, mais le nombre d’appuis n’est pas limité;
- après la saisie de trois chiffres (les boutons ont été pressés trois fois), le code généré est comparé à la réponse saisie.
Conclusion. Le code peut être utilisé dans divers projets, comme la création d’une alarme, où le buzzer ne s’éteindra que si le code est correctement saisi. On peut aussi fabriquer une serrure à code, mais dans ce cas, le code ne doit pas être généré à chaque fois (sinon n’importe qui peut l’ouvrir), le code peut être plus complexe, composé de plus de trois numéro.








Je rentre les code copie coller et sa indique il a un code erreurs
Bonjour
J’ai besoin de vos lumières pour raccorder un boitier LED Varad vision ML200 avec 4 fiches en sortie (25,rien,54 42) qui vont se raccorder sur 4 LEDS (25, KL E, JH14, JH08).
J’ai malheureusement tout débranché suite à l’incendie d’un câblage électrique et maintenant je suis perdu
Je ne comprends absolument rien à votre langage codé
Merci d’avance