Voici un bout de code qui permet d'effectuer quelque chose toutes les 10 secondes en s'appuyant sur millis(). (cf l'exemple "blink without delay" pour la technique)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| void loop()
{
static unsigned long chronometre = 0;
const unsigned long temporisation = 10000UL;
if (millis() - chronometre >= temporisation) { // 10 secondes sont écoulées
// faire ici le test de présence du tag
....
// puis mémoriser le moment de cette vérification
chronometre = millis(); // ou chronometre += temporisation;
}
// ici votre arduino n'est pas bloqué, il peut faire autre chose
// --> notamment écouter le port série pour de l'info des tags et noter dans une autre variable
// le moment (millis()) de réception du dernier caractère reçu
// Ça devrait vous donner une idée
} |
Attention, dans votre code vous faites mais vous avez modifié la taille du buffer
unsigned char buffer[12]; //64 caracteres lus à changer selon longueur tag
donc vous n'avez que 12 cases mémoires, pas 64. Le mieux serait de mettre cela dans une constante et de se référer à cette constante pour la dimension du tableau et les tests.
Partager