Bonjour, je suis actuellement en BTS Système Numérique Option Informatique et Réseaux, je travaille sur un projet sur Arduino avec différents capteurs tels que un lecteur RFID ppur des casiers (pêche aux crabes par exemple).

Voici mon code source.cpp,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Info.etatCasier = LecteurRFID.EnvoiEtat(Info.etatCasier);                                             //Changement d'état du casier
  while (Info.etatCasier == true)  
  {         
    Info.Pression = CapteurPression.EnvoiNiveauPression();                            //Récuperation des valeurs
    Info.nbrCrustace = CapteurUltrason.EnvoieContenuCasier();
    Info.longitude = ModuleGPS.EnvoiCoordonee();    
    Info.latitude = ModuleGPS.EnvoiCoordonnees();
 
    if(Info.Pression > 20)                                                            //Alerte en cas de vol
    {
      ModuleSigfox.EnvoiTrameUne(8, 0, 0, Info.Pression); 
      ModuleSigfox.EnvoiTrameDeux(Info.longitude, Info.latitude);
      delay(120000);
    }
    if(TempsEnvoiMessage == 0)                                                        //Envoi des données
    {
       ModuleSigfox.EnvoiTrameUne(8, Info.etatCasier, Info.nbrCrustace, Info.Pression); 
       delay(60000);
       ModuleSigfox.EnvoiTrameDeux(Info.latitude, Info.longitude);                                   //Envoi de la trame Sigfox
       delay(60000);
    }
  }
J'ai appelé la méthode EnvoiEtatCasier() que j'ai crée afin de changer l'état du casier de false à true et ainsi rentrer dans la boucle while et envoyer des données en continu, cependant, je souhaite arreter d'envoyer des données des que je rescanne la carte RFID quand je veux.
J'ai essayé de créer un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if(Info.etatCasier = LecteurRFID.EnvoiEtat(Info.etatCasier) == false)
{
     break; 
}
Pour pouvoir sortir de la boucle while, mais le programme ne me laisse pas le temps pour scanner la carte et envoie de nouveau une nouvelle trame de la méthode : EnvoiTrameUne().
J'aimerais savoir si il y a une possibilité afin de résoudre ce problème.

Merci de votre réponse, n'hésitez pas à me demander si vous ne comprenez pas quelque chose que j'ai dit.