Rfid Besoins d’aide pour ajouter un tag au code

Bonjour j’ai un code avec un seule tag mais j’ai essayer d’en rajouter un Sans succès je viens ici demander le l’aide pour en rajouter 1 le code contient un servo et un rfid


#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>

#define SS_PIN    10
#define RST_PIN   9
#define SERVO_PIN A5

MFRC522 rfid(SS_PIN, RST_PIN);
Servo servo;

byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF};
int angle = 0; // the current angle of servo motor

void setup() {
  Serial.begin(9600);
  SPI.begin(); // init SPI bus
  rfid.PCD_Init(); // init MFRC522
  servo.attach(SERVO_PIN);
  servo.write(angle); // rotate servo motor to 0°

  Serial.println("Tap RFID/NFC Tag on reader");
}

void loop() {
  if (rfid.PICC_IsNewCardPresent()) { // new tag is available
    if (rfid.PICC_ReadCardSerial()) { // NUID has been readed
      MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);

      if (rfid.uid.uidByte[0] == authorizedUID[0] &&
          rfid.uid.uidByte[1] == authorizedUID[1] &&
          rfid.uid.uidByte[2] == authorizedUID[2] &&
          rfid.uid.uidByte[3] == authorizedUID[3] ) {
        Serial.println("Authorized Tag");

        // change angle of servo motor
        if (angle == 0)
          angle = 90;
        else //if(angle == 90)
          angle = 0;

        // control servo motor arccoding to the angle
        servo.write(angle);
        Serial.print("Rotate Servo Motor to ");
        Serial.print(angle);
        Serial.println("°");
      } else {
        Serial.print("Unauthorized Tag with UID:");
        for (int i = 0; i < rfid.uid.size; i++) {
          Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
          Serial.print(rfid.uid.uidByte[i], HEX);
        }
        Serial.println();
      }

      rfid.PICC_HaltA(); // halt PICC
      rfid.PCD_StopCrypto1(); // stop encryption on PCD
    }
  }
}
	

:warning:

Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans « Les bonnes pratiques du Forum Francophone”

Postez ce que vous avez essayé

À première vue, la seule chose qui attire mon attention dans votre code est

byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF};

Ne devriez-vous pas remplacer ces valeurs par les valeurs réelles de la carte que vous utilisez ?

Je sais mais moi justement je veux rajouter un autre tag ou badge

Très bien. Quel est l'UID du nouveau label ?

Vous dites avoir essayé de le faire, postez votre essai. Vous devriez pouvoir y arriver ce n’est pas difficile - ce serait dommage qu’on vous donne la solution toute mâchée

Il s’agit juste de définir un second tableau et dupliquer le test pour dire si c’est le premier badge OU (opérateur ||) le second alors faire xxxx

Avez vous compris ou se fait la
Comparaison avec le premier badge ?

Slt je comprend à motier se que tu veux dire mais dans tous les cas j’ai plus de temps pour faire le projet je dois le rendre compte pour lundi je vais faire un essayer quand je serais sur mon pc

Rassurez moi, vous ne pensiez quand même pas qu'on allait vous aider à tricher et faire vos devoirs pour vous?

Montrez que vous avez bossé et compris le code que vous avez posté, essayez de le modifier et postez votre code... Je suppose qu'on ne vous a pas donné ce boulot Vendredi soir pour Lundi matin...

il vous reste plus de 20 heures... ça devrait suffire

Bonjour mr notre un notre professeur nous a jamais appris a utiliser une carte arduino moi je fais de l'Arduino car je trouve ca pratique je n'ai jamais a appris a codé , mon projet est déjà bien comme ca je voulais juste l'améliorer , vous dite tricher sans savoir ce que je fais a l'école svp même un ado c'est qui faut pas juger sans savoir .
c'est un site pour demander de l'aide normalement alors pourquoi je ne pourrais avoir de l'aide .
mr vous avez pas des truc a la place de juger sans raison bonne soirée.

bonjour merci de votre aide moi actuellement j'utilise celui-ci {71, 102, 116, 201};
et j'aimerais de rajouter celui-la {183, 253, 11, 217}

on vous aide, on ne fait pas à votre place surtout si c'est un projet scolaire

Si vous avez déjà codé vous même ce que vous avez partagé, vous devriez sans problème pouvoir ajouter une autre carte.

Si vous avez pompé sans comprendre ce code quelque part, je ne vois pas en quoi ce que vous présenterez demain reflètera votre travail....

➜ postez votre meilleure tentative pour rajouter une carte

Si cela fonctionne avec la première, il suffit de définir une nouvelle matrice pour autoriser la seconde :

byte authorizedUID_2[4] = {0xB7, 0xFD, 0x0B, 0xD9};

Et après le premier contrôle de validation, effectuez un autre contrôle pour le nouveau de la même manière que vous faites avec le premier.

rfid.uid.uidByte[0] == authorizedUID_2[0] &&
rfid.uid.uidByte[1] == authorizedUID_2[1] &&
Etc....

Cela, cependant, on vous l'a déjà dit.

Tu remplaces

par

byte authorizedUID[2][4] ={ {0xFF, 0xFF, 0xFF, 0xFF},
                            {0xFF, 0xFF, 0xFF, 0xFF}};

Le [2] peut être n'importe quelle valeur suivant le nombre de tag que tu veux gérer

Ensuite remplacer le test actuel
if (rfid.uid.uidByte[0] == authorizedUID[0] &&
par
if (rfid.uid.uidByte[0] == authorizedUID[i][0] &&
en faisant changer i on peut balayer les différents tags enregistrés

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