Bonjour tout le monde , mon problème est le suivant :
Quand je veux lire l'identifiant de mon étiquette RFID j'utilise la fonction RFID.read() , le problème avec cette fonction c'est qu'elle lit deux chiffres par exemple :
Si l'identifiant de l'étiquette RFID est 123456
et si j'exécute le programme suivant :
** if (RFID.available() > 0) // si l'étiquette est proche du lecteur**
** {**
** i = RFID.read(); // fonction de lecture**
** Serial.print(i, DEC); // écriture du code en décimal**
** }**
Dans un premier temps i sera égale à 12
Dans un second temps i sera égales à 34
Dans un dernier temps i sera égale à 56
même si dans le moniteur série vous aurez 123456 mais la dernière valeur de i sera 56
mais jamais je ne pourrai avoir i=123456 donc SVP est ce qu'il y'a une possibilité d'avoir i =123456 et merci d'avance .
Re , bein pour la solution que vous avez proposé le code est déformé avec des symboles incompréhensibles de plus pour ce que vous avez écrit
code += i ; ça n'a pas de sens je ne sais pas ce que ça va rapporté vu que code = code + i ( avec code=0 comme initialisation ) dans notre cas voilà ce qui se passerait si le code du tag est 123456 :
code = 0 + 12
code = 12 + 34
code = 46 + 56
à la fin code = 102 alors que nous on veut i =123456
tu y verra le code complet
dont ceci
void detection_RFID(){
if (monModuleRFID.isCard()) {
if (monModuleRFID.readCardSerial()) {
for(int i=0;i<=4;i++)
{
UID_=monModuleRFID.serNum*;_
_ }_
_ }*_
hichamlh:
Re , bein pour la solution que vous avez proposé le code est déformé avec des symboles incompréhensibles de plus pour ce que vous avez écrit
code += i ; ça n'a pas de sens je sais pas ce que ça va rapporté vu que code = code + i ( avec code=0 comme initialisation ) dans notre cas voilà ce qui ce passerai si le code du tag est 123456 :
code = 0 + 12
code = 12 + 34
code = 46 + 56
à la fin code = 102 alors que nous on veut i =123456
justement non ca ne donnerait pas 102
de plus l'exemple est tiré d'un tuto officiel adapté à ton i
Re dans son programme ça ne va pas influencer mais il y 'a bien une chose lorsqu'on met SoftwareSerial(4,5) ça veut dire que dans le code qui sera affiché dans le moniteur série on aura quelque chose de la forme 4 xxxxxxxxx 5 (avec 4 début d'émission et 5 fin de réception pour délimiter le code )
voici l'id de mon tag : 44968484855574850676665685
Lorsque j'exécute son programme j'obtiens un autre code qui est 1007023CBAD
Dans mon cas je veux le vrai code qui est 44968484855574850676665685 qui va être de type char .
J'ai déjà essayé d'autres méthodes voici une :
char data1 ;
char newtag[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
void loop()
{
...
if (RFID.available() > 0)
{
for (int z = 0 ; z < 14 ; z++)
{
data1 = RFID.read();
newtag[z] = data1;
}
RFID.flush();
}
Mais même dans ce cas j'obtiens le code erroné qui est 1007023CBAD.
hichamlh:
Re dans son programme ça ne va pas influencer mais il y 'a bien une chose lorsqu'on met SoftwareSerial(4,5) ça veut dire que dans le code qui sera affiché dans le moniteur série on aura quelque chose de la forme 4 xxxxxxxxx 5 (avec 4 début d'émission et 5 fin de réception pour délimiter le code
hein?
si on suis ton raisonnement, si on met SoftwareSerial(3, 8) ca va commencer par 3 et se terminer par 8?
ce sont les pins 4 et 5 ou 3 et 8 qui sont utilisées.