Système d’accès par code PIN avec clavier et LED de confirmation

Projet Arduino pour un système d’accès par code PIN avec clavier matriciel 4x4 et LED de confirmation, gestion de saisie et réinitialisation automatique.

Brève Introduction

Système d’accès par code PIN avec clavier et LED de confirmation (arduino)
DESCRIPTION :
Ce projet implémente un système d'accès basé sur un code PIN saisi via un clavier matriciel 4x4. Si le PIN saisi correspond à celui prédéfini, une LED s'allume pour indiquer l'accès autorisé. Le système gère la saisie du code, la suppression et la réinitialisation automatique après un délai d'attente.

NOTES SUPPLÉMENTAIRES :
Le code utilise la bibliothèque Keypad pour gérer le clavier matriciel. La LED s'allume uniquement si le PIN saisi correspond à celui prédéfini. La touche '*' efface la saisie en cours, tandis que '#' confirme la saisie et lance la vérification. Un délai d'attente de 10 secondes est présent pour réinitialiser la saisie en cas d'inactivité.

EXPLICATIONS :
- La bibliothèque Keypad facilite la lecture des touches pressées sur le clavier matriciel, gérant en interne le balayage des lignes et colonnes.
- Le PIN est stocké sous forme de chaîne pour simplifier la comparaison avec la saisie utilisateur.
- La touche '*' sert à effacer la saisie en cas d'erreur lors de la saisie.
- La touche '#' confirme la saisie et active la vérification du PIN.
- La LED connectée au pin 13 s'allume uniquement si le PIN saisi est correct, fournissant un retour visuel immédiat.
- Le délai d'attente de 10 secondes réinitialise automatiquement la saisie si l'utilisateur cesse de taper, évitant les blocages ou saisies partielles.

Code d'Exemple : arduino

#include <Keypad.h>

// Définition des dimensions du clavier
const byte righe = 4; // Nombre de lignes du clavier
const byte colonne = 4; // Nombre de colonnes du clavier

// Mappage des touches du clavier 4x4
char tasti[righe][colonne] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

// Pins connectés aux lignes et colonnes
byte pinRighe[righe] = {9, 8, 7, 6};
byte pinColonne[colonne] = {5, 4, 3, 2};

// Création de l'objet clavier
Keypad tastierino = Keypad( makeKeymap(tasti), pinRighe, pinColonne, righe, colonne );

// LED de confirmation connectée au pin 13
const int pinLED = 13;

// Code PIN correct
const String codicePIN = "1234";

// Variables pour gestion de la saisie du PIN
String inputPIN = "";
unsigned long tempoUltimaPressione = 0;
const unsigned long timeoutInserimento = 10000; // 10 secondes de délai pour réinitialiser la saisie

void setup() {
  pinMode(pinLED, OUTPUT); // Configuration du pin LED en sortie
  digitalWrite(pinLED, LOW); // LED éteinte au démarrage
  Serial.begin(9600); // Pour débogage série
  Serial.println("Système d'accès par PIN prêt.");
}

void loop() {
  char tasto = tastierino.getKey(); // Lit la touche pressée

  if (tasto) { // Si une touche a été pressée
    tempoUltimaPressione = millis(); // Met à jour le temps de la dernière pression

    if (tasto == '*') {
      // '*' utilisé pour effacer la saisie en cours
      inputPIN = "";
      Serial.println("Saisie PIN effacée.");
      digitalWrite(pinLED, LOW); // Éteint la LED si allumée
    } else if (tasto == '#') {
      // '#' utilisé pour confirmer la saisie
      Serial.print("PIN saisi : ");
      Serial.println(inputPIN);

      if (inputPIN == codicePIN) {
        Serial.println("Accès autorisé.");
        digitalWrite(pinLED, HIGH); // Allume la LED pour confirmation
      } else {
        Serial.println("Accès refusé.");
        digitalWrite(pinLED, LOW); // Éteint la LED
      }
      inputPIN = ""; // Réinitialise la saisie après vérification
    } else if (inputPIN.length() < 8) {
      // Ajoute le caractère au PIN saisi (max 8 chiffres)
      inputPIN += tasto;
      Serial.print("Tapé : ");
      Serial.println(inputPIN);
    }
  }

  // Réinitialise la saisie si délai écoulé sans pression
  if (inputPIN.length() > 0 && (millis() - tempoUltimaPressione > timeoutInserimento)) {
    Serial.println("Timeout : saisie PIN réinitialisée.");
    inputPIN = "";
    digitalWrite(pinLED, LOW); // Éteint la LED
  }
}
×
×
×
Veux-tu régénérer la réponse ?
×
Exporter le chat
Choisissez le format d'export
⏳ Generazione PDF in corso…
Allegati
×
⚠️ Vous êtes sur le point de fermer le chat et de passer au générateur d’images. Si vous n’êtes pas connecté, vous perdrez notre conversation. Confirmez-vous ?
👁 Tu consultes une discussion partagée en mode temporaire. Elle ne sera pas enregistrée.
💬
×
Prompts enregistrés
×
Note privée
×
Étiquette
×
Rechercher dans toutes les discussions
×
Vos insights
Analyse en cours…
×
Préférences IA
Nom de l'assistant 30
Longueur des réponses
Modèle IA
Réponses structurées
Inclure des exemples
Utiliser des emojis
Guide-moi, ne résous pas Des indices et des questions plutôt que la réponse toute faite
Plus de réglages →
×
Partager cette discussion
Toute personne ouvrant ce lien pourra consulter la discussion ou l'ajouter à son profil comme discussion personnelle.
⚠️ Attention : les pièces jointes de la discussion seront également partagées. Qui l'ajoutera recevra une copie des fichiers dans son dossier.
Discussion partagée
Quelqu'un a partagé une discussion avec toi. Veux-tu seulement la consulter ou l'ajouter à tes discussions ?
⚠️ Attention : les pièces jointes de la discussion seront également partagées. Qui l'ajoutera recevra une copie des fichiers dans son dossier.
×

📌 Messages enregistrés

Chargement...

×

Historique des discussions

programmes-exemples · HISTORIQUE DU CHAT

Chargement...

Préférences IA

×
  • 🟢 BasiqueRéponses rapides et essentielles pour étudier
  • 🔵 MoyenQualité supérieure pour étude et programmation
  • 🟣 AvancéRaisonnement complexe et analyses détaillées
Expliquer les étapes

Qu'est-ce qu'il faut ?

Arduino Uno (x1)

Clavier matriciel 4x4 (x1)

LED verte 5mm (x1)

Résistance 220Ω (x1)

Fils de connexion

Plaque d'essai (optionnelle)

CONNEXIONS : Clavier 4x4 connecté aux pins numériques Arduino : Lignes -> D9, D8, D7, D6 ; Colonnes -> D5, D4, D3, D2

CONNEXIONS : Anode LED connectée au pin D13 via une résistance 220Ω, cathode à GND

Sujets Similaires

LED clignotant avec bouton d’arrêt
Programme Arduino pour faire clignoter une LED avec un bouton d’arrêt. La LED clignote toutes les 5 ms et s’éteint quand le bouton est pressé.
Feu piéton avec deux LED et bouton
Projet Arduino simple de feu piéton avec deux LED rouge et verte et un bouton pour contrôler le passage en toute sécurité.
Thermomètre de base avec capteur de température et LED d’alerte
Thermomètre Arduino simple avec capteur LM35 et LED d’alerte qui s’allume au-delà de 3 degrés Celsius pour une surveillance efficace.
Alarme porte ouverte avec capteur magnétique et buzzer
Projet Arduino d’alarme porte ouverte utilisant un capteur magnétique reed et un buzzer pour détecter et signaler l’ouverture d’une porte efficacement.
Contrôle d’un ventilateur avec capteur de température on/off
Contrôle d’un ventilateur avec capteur LM35 et Arduino pour allumer ou éteindre selon la température détectée, seuil réglable à 3 degrés Celsius.
LED qui s’allume dans le noir avec une photorésistance
Projet Arduino avec photorésistance pour allumer une LED dans le noir. Seuil ajustable, diviseur de tension et contrôle simple pour détecter l’obscurité.
Sonnette de maison avec bouton et buzzer
Projet Arduino simple pour une sonnette maison avec bouton et buzzer actif. Utilise INPUT_PULLUP et anti-rebond logiciel pour un fonctionnement fiable.
Compteur de personnes avec bouton et afficheur 7 segments
Compteur de personnes simple avec bouton et afficheur 7 segments cathode commune, utilisant Arduino Uno et anti-rebond logiciel pour un comptage précis.