Arduino Ep.14 | Comment utiliser le module RFID RC522.

Schéma de câblage

 

Code pour lire l'UID sur le serial monitor

#include <SPI.h>
#include <RFID.h>

RFID monModuleRFID(10,9);

int UID[5];

void setup()
{
  Serial.begin(9600);
  SPI.begin();
  monModuleRFID.init();  

}

void loop()
{
    if (monModuleRFID.isCard()) {  
          if (monModuleRFID.readCardSerial()) {        
            Serial.print("L'UID est: ");
            for(int i=0;i<=4;i++)
            {
              UID[i]=monModuleRFID.serNum[i];
              Serial.print(UID[i],DEC);
              Serial.print(".");
            }
            Serial.println("");
          }          
          monModuleRFID.halt();
    }
    delay(1);    
}

Code pour carte d'accès

#include <SPI.h>
#include <RFID.h>

const char DOUT_LED_ROUGE = 2;
const char DOUT_LED_VERTE = 3;

RFID monModuleRFID(10,9);

int UID[5]={};
int MASTERKEY[5]={67,139,127,198,113};

void setup()
{
  Serial.begin(9600);
  SPI.begin();
  monModuleRFID.init();  
  pinMode(DOUT_LED_ROUGE, OUTPUT);
  pinMode(DOUT_LED_VERTE, OUTPUT);
  digitalWrite(DOUT_LED_ROUGE, LOW);
  digitalWrite(DOUT_LED_VERTE, LOW);

}

void loop()
{
    if (monModuleRFID.isCard()) {  
          if (monModuleRFID.readCardSerial()) {        
            Serial.print("L'UID est: ");
            for(int i=0;i<=4;i++)
            {
              UID[i]=monModuleRFID.serNum[i];
              Serial.print(UID[i],DEC);
              Serial.print(".");
            }
            Serial.println("");
          }
          
          if (UID[0] == MASTERKEY[0]
           && UID[1] == MASTERKEY[1]
           && UID[2] == MASTERKEY[2]
           && UID[3] == MASTERKEY[3]
           && UID[4] == MASTERKEY[4])
          {
              digitalWrite(DOUT_LED_VERTE, HIGH);
              delay(500);
              digitalWrite(DOUT_LED_VERTE, LOW);
          }
          else
          {
              digitalWrite(DOUT_LED_ROUGE, HIGH);
              delay(500);
              digitalWrite(DOUT_LED_ROUGE, LOW);
          }          
          monModuleRFID.halt();
    }
    delay(1);    
}

Fichier attaché: 

Commentaires

Portrait de cyril

Salut, je viens de tester sans succé!

A quoi correspond RFID monModuleRFID(10,9);

Normalement si la liaison est en spi il est necessaire de cabler uniquement mosi et miso? SDA et SCK c'est pour l'I2C.

Cabler de reset est t'il necessaire?

Portrait de cyril

? personne pour me renseigner sur les branchements?

Portrait de quentin

A quoi sert la broche irq sur le module Rfid?

Portrait de grattounet

Bonjour Alexandre !!! je fais à la lettre ce que tu dicte de faire et hélas rien ce passe j'ai bien installé les librairies mon câblage et ok et sur 3,3 V :) !!! vérifié 6253 fois et la led rouge du "RFID" s'allume !!! la transmission comporte aucune erreur d'envoie ? et lorsque je passe mon badge devant le module rc522 rien se passe sur le terminal :( aucun signe de détection ? je suis sur arduino 1.67 et Arduino Mega ? ... existe t'il un moyen de détecter si mon module est "HS" Merci (ce que je pense) 

Portrait de Missed-Clic

Bonjour,

J'avais un peu le même souci, avez vous essayé de déplacer la broche RST en 5 et la broche SDA en 53.

En modifiant de même dans l'IDE, ça a fonctionné pour moi, même sur ma carte MEGA.

Comme je débute je ne saurais dire pourquoi ça marche comme ça et pas avec les broches 9 et 10 .... (ça viendra peut être plus tard ;)

Bon courage.

Portrait de Onirix753

Super explications ! :)

En fait je l'ai acheté sur Selectronics.com (our ceux que ça interesse: http://www.selectronic.fr/kit-de-lecture-rfid-13-56mhz-avec-cable.html)

Et ils fournissent une librairies avec qui n'est pas la même qu'ici donc pour ceux qui ont ce code avec la librairie de selectronics ça ne fonctionnera pas ^^

Portrait de jeremy13

bonjour je suis en projet en terminal,j'ai besoin d'aide car je ne sais pas quel programme utiliser pour afficher  un classement d'une une course de karting sur un tableau de bord j'utilise une carte RFID T5577 3915 ,Module RFID 125 kHz 113990041 et un capteur magnetique 1108 merci d'avance

Portrait de micol

Bonjour,

Le schéma en tête de cette page me fait peur.

Relier les sorties de données d'Arduino (5 volts) aux entrées du RC522 qui attendent du 3 volts, voilà qui va dramatiquement réduire l'espérance de vie du module.

Chez moi ça marche ce matin (avec quelques irrégularités dans le temps de lecture du badge) en utilisant un ProMini 3.3 volts.

Hier ça ne fonctionnait pas avec une Mega2560 (avec les adaptation du programme aux pattes concernées) et un 4050 pour passer les infos de 5V en 3.3 volts.

Portrait de STGenève

Bonjour à tous,

j'ai un petit problème je débute avec la RFID-RC522 qui sais comment je peux modifier le num d'une carte 

merci !! :D

Portrait de Missed-Clic

Bonjour,

Pour moi tout c'est bien passé avec la carte Uno, mais pas reussi à faire fonctionner le module avec ma Mega. Du coup encore une fois merci pour le Tuto alex ;)

Portrait de fidele

Bonjour comment ajouter des tags?

Portrait de DebrowTher

Comment on fait un SCHÉMA DE CÂBLAGE ?

Portrait de BIKINI315

Bonjour;

depuis hier, j'essaie de faire fonctionner le programme RFID, j'ai toujours un message d'erreur, pas de librairie RFID.

Je n'arrive pas à trouver cette librairie et l'enregistrer, comment faire?

Merci à celui qui m'aidera.

Portrait de Missed-Clic

Bonjour,

Une fois la librairie souhaité télécharger (au format ZIP généralement)

-ouvrir l'IDE arduino

-Allé dans Croquis

-Inclure Bibliothèque

-Inclure la bibliothèque ZIP

-Indiquer le chemin d'accès où à était enregistrée la bibliothèque (par défaut Fichier "téléchargement" de windows.

Jusqu'à présent en faisant de la sorte je n'ai jamais eu de souci d'import de bibliothèque.

En espérant que les infos te seront utiles.

Bonne continuation

Portrait de EmmettBrown

Bonjour,

J'ai essayé de compiler le premier code (pour lire l'UID sur le serial monitor) après avoir installé les librairies, mais j'ai un problème lors de la compilation: Le message d'erreur est le suivant :

In file included from rfid_read_uid.ino:1:0:
/home/schwartz/sketchbook/libraries/SPI/SPI.h:16:21: fatal error: arduino.h: No such file or directory
 #include <arduino.h>
                     ^
compilation terminated.

Quelqu'un peut m'aider ? Mercid'avance !

Portrait de Antraxe

Bonjour,

pour l'Arduino Mega, il faut en fait connecter :

Pin 53 au lieu de 10

Pin 52 au lieu de 13

Pin 51 au lieu de 11

Pin 50 au lieu de 10 et indiquer "RFID monModuleRFID(53,9);" dans l'IDE.

Bon courage.

Portrait de professeur116

Bonjour, je souhaiterais autoriser plusieurs cartes d'accès, mais je ne sais pas trop quoi ajouter dans le programme pour qu'elles soient reconnues. Pour faire reconnaître ma première carte, j'ai compris qu'il fallait modifier la ligne "int MASTERKEY[5]={67,139,127,198,113};" en remplaçant les cinq valeurs par celle de ma carte, mais ensuite? J'ai essayé d'ajouter une ligne "int MASTERKEY[6]= est de mettre le numéro de la carte que je veux ajouter mais ca ne fonctionne pas, message d'erreur lors de la compilation

Portrait de micol

Bonjour,

Il faut remplacer la ligne par un tableau contenant les numéros de toutes les cartes autorisées.

Regarde le 1er programme de ma page :http://colmard.com/Arduino-lecon27.html

:)

Portrait de Manon7326

Bonjour savez vous comment on pourrait brancher un oscilloscope afin de "visualiser​ l'échange ?

Portrait de Papus li

Bonjour, j'ai fait le bon branchement du module rfid avec arduino mais quand j'essaye de faire passer la carte j'obtiens rien comme affichage, quelqu'un pourrait m'aider?

merci

Portrait de gdlm

Bonjour un grand merci pour votre tuto, il est très clair.

J'ai une carte arduino uno, et le même module RC522. Quand j'approche la carte du lecteur, rien ne se passe.

Pouvez-vous m'aider?

En vous remerciant

Portrait de Marius

Bonjour, j'ai un problème avec la librairie qui est un fichier type .rar je n arrive pas a l'installer quelqu'un peut-il m'aider ?