Mini-projet smart parking avec arduino RFID

mon prblm c'est lorsque j'ouvre le moniteur sérié et je clique sur le
bouton poussoir pour enregistrer un nouveau UID puis je déclenche le bouton le cerveau- moteur
ouvre la porte pour le véhicule passant, mais si je sors de moniteur il n'y a plus
ce dernier UID il réinitialise tout, comme je peux régler ce prblm, pour l'UID doit être enregistré
voilà mon code :</>#include <Servo.h>
#include <SPI.h>
#include <RFID.h>

Servo myservo;
RFID myrfid(9, 8);

// Déclarer la taille du tableau UID et initialiser à 0
const int M = 6;
const int N = 5;
int current=0;
int UID[M][N] = {};

const int bouton = 3;
int pos = 180;

void setup() {
pinMode(bouton, INPUT);

myservo.attach(11);
myservo.write(pos);

Serial.begin(115200);
SPI.begin();
myrfid.init();
}

void loop() {
if(myrfid.isCard())
{
if (myrfid.readCardSerial()) {
if (digitalRead(bouton) == HIGH) {
bool is_new_card = true;
// Vérifier si la carte est déjà stockée dans UID
for (int i = 0; i < M; i++) {
bool test = true;
for (int j = 0; j < N; j++) {
if (UID[i][j] != myrfid.serNum[j]) {
test = false;
break;
}
}
if (test) {
// La carte est déjà stockée dans UID, donc ce n'est pas une nouvelle carte
Serial.println("N'est pas un nouveau UID");
is_new_card = false;
break;
}
}
if (is_new_card)
{
// Stocker l'ID de la nouvelle carte dans UID
if(current<6)
{
for (int j = 0; j < N; j++)
{
UID[current][j] = myrfid.serNum[j];
}
for (int j = 0; j < N; j++) {
Serial.print(UID[current][j]);
Serial.print(" ");
}
Serial.println("Un nouveau UID est enregistré");
current++;
}
else
Serial.println("l'espace est remplit");
}
}
else {
Serial.println(digitalRead(bouton));
// Le bouton est relâché
bool card_found = false;
for (int i = 0; i < M; i++) {
bool test = true;
for (int j = 0; j < N; j++) {
if (UID[i][j] != myrfid.serNum[j]) {
test = false;
break;
}
}
if (test) {
card_found = true;
break;
}
}
if (card_found) {
// Faire tourner le servo de 90 degrés en sens inverse
for (int i = pos; i >= pos-90; i--) {
myservo.write(i);
delay(5);
}
delay(2000);
for (int i = pos-90; i <= pos;i++) {
myservo.write(i);
delay(3);
}
}
}

Serial.println("IDs stockés dans UID :");
for (int i = 0; i < M; i++) {
Serial.print(i + 1);
Serial.print("ème UID : ");
for (int j = 0; j < N; j++) {
Serial.print(UID[i][j]);
Serial.print(" ");
}
Serial.println();
}
}
}
myrfid.halt();
}

Bonjour et bienvenue

Merci de prendre quelques minutes pour lire les bonnes pratiques du forum francophone et les appliquer.

En particulier, la mise en forme du code avec les balises code

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.