Bonjour, comment étendre augmenter la portée de lecture du module RFID RC522 de 2cm à 4cm?
J'ai pu voir plein de discussions sur ce sujet, toutes sont fermées et aucune solution qui fonctionne!
Quelqu'un a t-il une solution simple?
Merci
Bonjour, comment étendre augmenter la portée de lecture du module RFID RC522 de 2cm à 4cm?
J'ai pu voir plein de discussions sur ce sujet, toutes sont fermées et aucune solution qui fonctionne!
Quelqu'un a t-il une solution simple?
Merci
la façon dont ça fonctionne c'est que l'antenne rayonne de l'énergie qui est captée par le badge RFID ce qui alimente son circuit interne et lui permet de renvoyer son ID et ses données et faire des transactions.
Pour étendre la portée il faut concevoir votre propre module avec une meilleure antenne et amplificateur pour envoyer plus de puissance... Je ne pense pas que ce soit faisable en bricolant "simplement" un module du marché.
D'autre part il faut aussi que le badge soit de qualité suffisante pour répondre avec assez de puissance. Tous les badges n'ont pas la même qualité.
Si vous voulez mieux, regardez du côté NFC (et les lecteurs PN532) et les badges associés la portée est un peu meilleure et vous devriez avoir vos 4cm
Lorsqu'on a besoin d'étendre la portée d'un lecteur RFID, c'est souvent parce que l'antenne est placée derrière une façade dont l'épaisseur est trop importante.
Sur une alarme, j'ai un lecteur collé derrière une façade PVC de 2mm, sans colonnettes. L'appareil est équipé d'un clavier matriciel dont l'épaisseur est de 10mm. Si le lecteur RFID est fixé sous le clavier, la portée passe à 12mm, et il fonctionne encore.
Par contre, si le but est de vraiment accélérer le passage du badge, pour une application de contrôle d'accès grand public, comme dans un métro, un bus, je comprends qu'un lecteur ayant plus de portée soit nécessaire.
J'ai participé au développement du projet métro de Bruxelles, et effectivement le lecteur RFID avait une portée de 4cm.
Pour résumer, soit on réduit au maximum la distance entre antenne et façade, soit on s'oriente vers un lecteur de gamme industrielle.
Merci pour la réponse. Malheureusement cela ne m'aide pas vraiment.
A quoi sert le registre RFCfgReg ? j'ai pu lire que c'était un registre de gain?
Comment cela se programme ?
Merci
c'est dans la doc
Pour vulgariser, plus le gain est élevé, plus le signal est amplifié, ce qui signifie qu'il devient "plus fort" et plus facile à détecter. Pour le RC522, un gain plus élevé signifie que le récepteur est plus sensible et capable de détecter des signaux RFID plus faibles ou provenant de plus loin donc mettre 48dB sera mieux que de mettre 18dB (si vous regardez la table des configurations possibles)
la bibliothèque a une fonction qui le fait déjà
➜ il faut mettre 0x07 (le 111) (qui sera pris par le masque le 0x07 dans le code) dans les bits 4, 5 et 6 du registre ce qui met le gain à sa valeur max de 48dB
la doc de la bibliothèque dit
- Sometimes I get timeouts or sometimes tag/card does not work.
- Try the other side of the antenna.
- Try to decrease the distance between the MFRC522 and your tag.
- Increase the antenna gain per firmware:
mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max);- Use better power supply.
- Hardware may be corrupted, most products are from china and sometimes the quality is really poor. Contact your seller.
la réponse est "Increase the antenna gain per firmware: mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max);"
donc vous pouvez appeler cela mais ça ne change pas grand chose en pratique. (la valeur par défaut est 33dB je crois)
Les gains possibles que vous pouvez tester sont dans le code
donc je sais que ça ne vous aide pas, mais je ne pense pas que vous puissiez bidouiller simplement un module du marché... La doc technique montre le schéma de principe
et quand vous achetez le module tout fait, les composants sur le module sont adaptés à l'antenne qui est intégrée au PCB.
Merci
J'essaierai.
Bien j'ai essayé et j'ai une suite d'erreur lors de la compilation.
Pour moi ce n'est pas clair.
J'écris quoi et où?
Merci
Dans le setup vous écrivez
XXX.PCD_SetAntennaGain(mfrc522.RxGain_max);
XXX est le nom de la variable représentant l’instance du lecteur
(Postez votre code avec les balises de code)
J'obtiens toujours un message d'erreur que je ne sais résoudre!
saisissez ou collez du code ici
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9 // Configurable, see typical pin layout above
#define SS_1_PIN 10 // Configurable, take a unused pin, only HIGH/LOW required, must be different to SS 2
#define SS_2_PIN 8 // Configurable, take a unused pin, only HIGH/LOW required, must be different to SS 1
#define NR_OF_READERS 2
byte ssPins[] = {SS_1_PIN, SS_2_PIN};
MFRC522 mfrc522[NR_OF_READERS]; // Create MFRC522 instance.
void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin(); // Init SPI bus
for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) {
mfrc522[reader].PCD_Init(ssPins[reader], RST_PIN); // Init each MFRC522 card
Serial.print(F("Reader "));
Serial.print(reader);
Serial.print(F(": "));
mfrc522[reader].PCD_DumpVersionToSerial();
}
MFRC522.PCD_SetAntennaGain(mfrc522.RxGain_max);
}
Arduino : 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Carte : "Arduino Uno"
C:\Users\Poste 1\Documents\Arduino\RFID\lire_UID\lire_UID.ino: In function 'void setup()':
lire_UID:56:8: error: expected unqualified-id before '.' token
MFRC522.PCD_SetAntennaGain(mfrc522[NR_OF_READERS].RxGain_max);
^
exit status 1
expected unqualified-id before '.' token
Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.
ne postez plus JAMAIS une image d'un texte svp..
copier le texte et postez le dans des balises de code.
perso je lis votre truc sur un iPhone et je n'y vois pas grand chose... donc je ne vais pas me fatiguer les yeux à essayer de déchiffrer votre image.
pour votre code, vos instances sont dans le tableau, elle s'appelle mfrc522[reader] donc il faut faire
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9 // Configurable, see typical pin layout above
#define SS_1_PIN 10 // Configurable, take a unused pin, only HIGH/LOW required, must be different to SS 2
#define SS_2_PIN 8 // Configurable, take a unused pin, only HIGH/LOW required, must be different to SS 1
#define NR_OF_READERS 2
byte ssPins[] = {SS_1_PIN, SS_2_PIN};
MFRC522 mfrc522[NR_OF_READERS]; // Create MFRC522 instance.
void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin(); // Init SPI bus
for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) {
mfrc522[reader].PCD_Init(ssPins[reader], RST_PIN); // Init each MFRC522 card
mfrc522[reader].PCD_SetAntennaGain(mfrc522[reader].RxGain_max); // <=== GAIN MAX
Serial.print(F("Reader "));
Serial.print(reader);
Serial.print(F(": "));
mfrc522[reader].PCD_DumpVersionToSerial();
}
}
void loop() {}
Bonjour,
merci pour les infos, pour le résultat il y a pas mal a dire.
J'ai suivi vos indications et cela "fonctionne" enfin pas parfaitement, voici mon constat:
1/ Avec le réglage max 48db pas d'erreur de compilation mais le lecteur ne lit rien.
2/ Avec 43db effectivement le range est augmenté jusque 4 cm environ mais c'est instable, moins rapide jusque parfois ne rien lire!
3/ Avec 38db une amélioration du range jusque 3 cm environ, la lecture semble stable et rapide.
4/ Avec 33db il semble que ce soit la valeur par défaut lecture 2 cm environ max et stable.
Conclusion: il faudra que je fasse des essais pour trouver le compromis distance/rapidité/stabilité.
Merci pour votre aide, jamais je n'aurais pu faire cela seul.
Comme dit précédemment les composants sur la carte et les réglages par défaut sont liés pour ce comportement stable que vous voyez…
Bravo pour les essais cela dit - bonne démarche scientifique
Si ton signal utile est fondu dans le bruit, comme tu amplifies tout, il est peut être possible que l'algorithme n'arrive plus à extraire les données?
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.