envoyer un seul sms en fonction de l'état de la batterie

Bonjour je suis un élève en TSTI2D et j’ai un projet à réaliser pour fin d’année, il s’agit de faire une borne solaire de recharge.
J’ai fait un programme sur arduino qui consiste à envoyer un message en fonction de la batterie; si le niveau de la batterie est faible, donc inférieur a 80% c’est à dire 9,6 V, le onesheeld envoie un message au téléphone de l’agent d’entretien par bluetooth.
Mon problème et le suivant:
plusieurs messages s’envoient en dépassant le seuil alors que je ne veux qu’un message.
voici le code:

leds_et_bt_en_fonction_de_la_batterie.ino (809 Bytes)

En formatant proprement le code, la réponse est presque évidente… ::slight_smile:

int sensorPin = A0;
int ledpin1 = 7; //led rouge
int ledpin2 = 4; //led vert
int sensorValue = 0;

#define CUSTOM_SETTINGS
#define INCLUDE_SMS_SHIELD
#include <OneSheeld.h>

boolean isMessageSent = false;

void setup() 
{
  pinMode(ledpin1, OUTPUT);
  pinMode(ledpin2, OUTPUT);
  pinMode(sensorPin, INPUT);
  // initialise la communication série à 9600 bits par seconde:
  Serial.begin(9600);
  OneSheeld.begin();
  Serial.print("Le niveau de la batterie est faible");
}

void loop() 
{
  int sensorValue = analogRead(A0);

  if (sensorValue < 660) 
  {
    if (!isMessageSent); 
    {
      SMS.send("0768418435", "Le niveau de la batterie est faible");
      isMessageSent = true;
      digitalWrite(7, HIGH);
      digitalWrite(4, LOW);
    }
  }
  else 
  {
    isMessageSent = false;
    digitalWrite(4, HIGH);
    digitalWrite(7, LOW);
  }
}

cadeau : un peu de lecture .... (syntaxe de la commande if)

D’accord merci ca a marché mais maintenant le problème étant si on change de batterie, l’arduino n’envoie plus de message, j’utilise par exemple un générateur pour remplacer la batterie pour faire des tests je varie la tension au dessus du seuil et en dessous et il n’envoie plus de message… je vois pas trop comment faire doit-on reset l’arduino avant chaque utilisation?

Si le niveau de batterie passe en-dessous du seuil, on envoie un sms.. ok donc IsMessageSent = true, et on n'envoie plus de messages.

Si le niveau de batterie repasse au-dessus du seuil (changement de batterie donc) Que devrait valoir IsMessageSent ?

le problème est que ca envoie plusieurs messages je comprends pas :confused:

Cherchez hysteresis sur internet