LCD RS pin to digital pin 12
20
21 * LCD Enable pin to digital pin 11
22
23 * LCD D4 pin to digital pin 5
24
25 * LCD D5 pin to digital pin 4
26
27 * LCD D6 pin to digital pin 3
28
29 * LCD D7 pin to digital pin 2
30
31 * LCD R/W pin to ground
Essai “#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
LiquidCrystal lcd(1, 4, 5, 6, 7, 8); // Initialisation de l'afficheur LCD
#define LED_VERTE 3
#define LED_ROUGE 2
#define MAX_TENTATIVES 3 // Nombre maximal de tentatives autorisées
byte badgeAutorise[4] = {0x07, 0xE7, 0x22, 0x1B}; // Code du badge autorisé
byte carteRFID[4] = {0x23, 0x7F, 0xCC, 0x0E}; // Code de la carte RFID
int tentativesRestantes = MAX_TENTATIVES;
bool badgeDetecte = false; // Indicateur de détection de badge
void setup() {
[Link](9600); // Initialise la communication série
[Link](); // Initie la communication SPI
mfrc522.PCD_Init(); // Initie le lecteur RFID
pinMode(LED_VERTE, OUTPUT);
pinMode(LED_ROUGE, OUTPUT);
[Link](16, 2); // Initialise l'afficheur LCD (16 colonnes, 2 lignes)
[Link]("Security Access"); // Affiche le texte "Security Access" sur la première ligne
delay(2000); // Pause de 2 secondes
[Link](); // Efface l'écran LCD
}
void loop() {
// Recherche de badges RFID
if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) {
if (!badgeDetecte) {
[Link](0, 0); // Place le curseur au début de la première ligne
[Link]("Security Access"); // Affiche le texte d'accueil
return;
badgeDetecte = true; // Un badge a été détecté
// Vérification du badge
byte* id = [Link];
if (compareBytes(id, badgeAutorise, 4)) {
digitalWrite(LED_VERTE, HIGH); // Allume la LED verte
[Link](); // Efface le contenu de l'écran LCD
[Link]("Acces Autorise"); // Affiche le texte "Acces Autorise" sur la première ligne
delay(1000); // Pause de 1 seconde
digitalWrite(LED_VERTE, LOW); // Éteint la LED verte
[Link](); // Efface l'écran LCD
badgeDetecte = false; // Réinitialise l'indicateur de détection de badge
} else if (compareBytes(id, carteRFID, 4)) {
[Link](); // Efface le contenu de l'écran LCD
[Link]("Acces Refuse"); // Affiche le texte "Acces Refuse" sur la première ligne
digitalWrite(LED_ROUGE, HIGH); // Allume la LED rouge
delay(1000); // Pause de 1 seconde
digitalWrite(LED_ROUGE, LOW); // Éteint la LED rouge
tentativesRestantes--;
if (tentativesRestantes == 0) {
// Si plus de tentatives, déclenche l'alarme
alarme();
[Link](); // Efface l'écran LCD
badgeDetecte = false; // Réinitialise l'indicateur de détection de badge
bool compareBytes(byte a[], byte b[], int size) {
for (int i = 0; i < size; i++) {
if (a[i] != b[i]) {
return false;
return true;
void alarme() {
[Link](); // Efface le contenu de l'écran LCD
[Link]("Alarme! Tentatives"); // Affiche le texte "Alarme! Tentatives" sur la première ligne
[Link](0, 1); // Positionne le curseur sur la deuxième ligne
[Link]("epuisees."); // Affiche le texte "epuisees." sur la deuxième ligne
while (true) {
digitalWrite(LED_ROUGE, HIGH); // Fait clignoter la LED rouge en cas d'alarme
delay(500);
digitalWrite(LED_ROUGE, LOW);
delay(500);
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#define SS_PIN 10
#define RST_PIN 9
#define LED_VERTE 3
#define LED_ROUGE 2
#define SERVO_PIN 4
MFRC522 mfrc522(SS_PIN, RST_PIN);
Servo servo;
#define MAX_TENTATIVES 3 // Nombre maximal de tentatives autorisées
#define TEMPS_ATTENTE 5000 // Temps d'attente en millisecondes avant de
fermer la barrière
byte badgeAutorise[4] = {0x07, 0xE7, 0x22, 0x1B}; // Code du badge
autorisé
byte carteRFID[4] = {0x23, 0x7F, 0xCC, 0x0E}; // Code de la carte
RFID
int tentativesRestantes = MAX_TENTATIVES;
bool badgeDetecte = false; // Indicateur de détection de badge
void setup() {
[Link](9600); // Initialise la communication série
[Link](); // Initie la communication SPI
mfrc522.PCD_Init(); // Initie le lecteur RFID
[Link](SERVO_PIN); // Attache le servo moteur au pin 4
[Link](0); // Positionne le servo à 0 degré (fermé) au démarrage
pinMode(LED_VERTE, OUTPUT);
pinMode(LED_ROUGE, OUTPUT);
digitalWrite(LED_VERTE, LOW); // Éteint la LED verte au démarrage
digitalWrite(LED_ROUGE, LOW); // Éteint la LED rouge au démarrage
}
void loop() {
// Recherche de badges RFID
if (!mfrc522.PICC_IsNewCardPresent() || !
mfrc522.PICC_ReadCardSerial()) {
if (!badgeDetecte) {
digitalWrite(LED_VERTE, LOW); // Éteint la LED verte
digitalWrite(LED_ROUGE, LOW); // Éteint la LED rouge
}
badgeDetecte = false;
return;
}
badgeDetecte = true; // Un badge a été détecté
// Vérification du badge
byte* id = [Link];
if (compareBytes(id, badgeAutorise, 4)) {
digitalWrite(LED_VERTE, HIGH); // Allume la LED verte
[Link](90); // Ouvre la barrière à un angle de 90 degrés
delay(TEMPS_ATTENTE); // Attente pendant 5 secondes
[Link](0); // Ferme la barrière à un angle de 0 degré
delay(1000); // Attente supplémentaire pour laisser le temps de
fermer complètement
digitalWrite(LED_VERTE, LOW); // Éteint la LED verte
badgeDetecte = false; // Réinitialise l'indicateur de détection de
badge
} else if (compareBytes(id, carteRFID, 4)) {
digitalWrite(LED_ROUGE, HIGH); // Allume la LED rouge
delay(1000); // Attente de 1 seconde
digitalWrite(LED_ROUGE, LOW); // Éteint la LED rouge
badgeDetecte = false; // Réinitialise l'indicateur de détection de
badge
}
}
bool compareBytes(byte a[], byte b[], int size) {
for (int i = 0; i < size; i++) {
if (a[i] != b[i]) {
return false;
}
}
return true;
}
Le code pour servo moteur et rfid ( barrieere automatique
Regare ce code « #include "Ultrasonic.h"
Ultrasonic ultrasonic(9, 8); // Trig et Echo
void setup() {
[Link](9600);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
}
void loop () {
int dist = [Link](CM); // exemple de changement de
méthode, vérifiez la documentation
[Link](dist);
[Link](" cm");
if (dist < 3) {digitalWrite(12, LOW); digitalWrite(11, HIGH);}
if (dist > 3) {digitalWrite(12, HIGH); digitalWrite(11, LOW);}
delay(100);
}