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();
}