Go Down

Topic: Lecteur RFID 134,2 khZ (Read 65 times) previous topic - next topic

KranJer

Bonjour,

Voila quelques temps que je m'intéresse de prêt à l'électronique et la programmation.
L'arduino me semble parfait pour découvrir et enrichir mes connaissances.

J'apprend pas à pas avec des tutos, des vidéos et autres.


Ce que j'aimerai faire, pouvoir lire un tag et qu'il s'affiche sur le moniteur série en décimal.

J'ai trouvé un module RFID 134,2 khZ (WL-134) pour lequel je ne trouve pas vraiment de documentation afin de tenter l'écriture du code.

J'ai bien trouvé un code sur ce forum qui me permet de lire les informations en hexadecimal mais je suis un peu perdu pour les obtenir en décimal.

Voici le code trouvé :
Code: [Select]


const byte tailleMessageMax = 11;
char messageBrut[tailleMessageMax + 1]; // +1 car on doit avoir un caractère de fin de chaîne en C, le '\0'
char message[tailleMessageMax];

const char marqueurDeFin = 3;

boolean ecouter()
{
  static byte indexMessage = 0; // static pour se souvenir de cette variable entre 2 appels consécutifs. initialisée qu'une seule fois.
  boolean messageEnCours = true;

  while (Serial.available() && messageEnCours)
  {
    int c = Serial.read();
    if (c != -1)
    {
      Serial.print(F("Octet lu: 0x")); Serial.print(c, HEX); // ici c est un entier, on affiche le code ASCII en Hexadécimal
      Serial.print(F("\t[")); Serial.print((char) c); Serial.println(F("]"));
      switch (c)
      {
        case marqueurDeFin:
          Serial.println(F("Fin de chaine"));
          messageBrut[indexMessage] = '\0'; // on termine la c-string
          indexMessage = 0; // on se remet au début pour la prochaine fois
          messageEnCours = false;
          break;
        default:
          if (indexMessage <= tailleMessageMax - 1) messageBrut[indexMessage++] = (char) c; // on stocke le caractère et on passe à la case suivante
          else //Serial.println(F("j'ignore!"));
            break;
      }
    }
  }
  return messageEnCours;
}

void setup()
{
  Serial.begin(9600, SERIAL_8N2);
}

void loop()
{
  if (! ecouter())
  {
    // on a reçu le marqueur de fin
    while (Serial.available())
    {
      Serial.read();
    }
    if (sizeof(messageBrut) > 9)
    {
      for (int i = 0; i <= tailleMessageMax + 1; i++)
      {
        message[i] = messageBrut[i + 1];

        Serial.print(atoi(message[i]));
      }
      Serial.print(F("Phrase retenue : [")); Serial.print(message); Serial.println(F("]"));
      Serial.println(sizeof(messageBrut));
    }
  }



  // ici on peut faire autre chose



}


Est-ce quelqu'un a déjà réalisé un montage de ce genre ? Pourrai-t-il m'aider ?

Bien à vous

J-M-L

#1
Apr 17, 2019, 06:44 pm Last Edit: Apr 17, 2019, 06:46 pm by J-M-L
vous avez trouvé ça où ?? ça me dit quelque chose...

pourquoi voulez vous afficher l'ID en décimal?

sinon d'après vous c'est quoi cette ligne:
Code: [Select]
Serial.print(F("Octet lu: 0x")); Serial.print(c, HEX); // ici c est un entier, on affiche le code ASCII en Hexadécimal
--> regardez la doc de println() pour afficher en décimal
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

KranJer

#2
Apr 17, 2019, 07:37 pm Last Edit: Apr 17, 2019, 07:50 pm by KranJer
Bonjour,

J'ai trouvé ce post sur le forum : http://forum.arduino.cc/index.php?topic=516199.0

Ce que je ne comprend pas c'est que même si je change de tag les informations qui s'affichent sont les mêmes...

Je cherche à afficher l'ID d'un animal, merci pour votre réponse je regarde votre doc et vais essayer

Pour la ligne je suppose que c'est l'affichage des données du tag en hexadecimal ?




Go Up