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é :
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