Changement d'état boolean avec gsm

Bonjour bonjour.

Je vous expose mon petit souci.

je voudrai allumer une led juste en envoyant un texto.

le souci étant que le code est en boucle (et il faut que je le garde ainsi) et que l'état boolean change mais dès que le programme termine la boucle et se relance l'état boolean reviens a l origine. donc impossible d'éteindre ou d allumer la led.

voici le code si cela peu vous aidez car moi j'ai tout essayer sauf l'idée qui fait que cela fonctionne :slight_smile:

#include <GPRS_Shield_Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>

#define PIN_TX    50
#define PIN_RX    51
#define BAUDRATE  9600
#define PHONE_NUMBER "0XXXXXXXXX"
#define MESSAGE_LENGTH 160
char message[MESSAGE_LENGTH];
int messageIndex = 0;
char phone[16];
char datetime[24];

int LED=7;
boolean onoff = 1;
GPRS gprs(PIN_TX,PIN_RX,BAUDRATE);//RX,TX,PWR,BaudRate

void setup() { 
 
  Serial.begin(9600);
  Serial1.begin(9600);
  // allumage du module GPRS
  digitalWrite (9, HIGH); 
  delay(2000); 
  digitalWrite (9, LOW); 
  delay(3000); 
  // commande terminer pour l 'allumage

  while(!gprs.init()) {
      Serial.print("Erreur d'initialisation\r\n");
      delay(1000);
  }
  delay(3000);  
  Serial.println("Initialisation reussi, vous pouvez envoyer un message");
  delay(1000);
}
void loop() {

   messageIndex = gprs.isSMSunread();
   if (messageIndex > 0) {
      gprs.readSMS(messageIndex, message, MESSAGE_LENGTH, phone, datetime);           
      gprs.deleteSMS(messageIndex);       
      Serial.print("Message recu: ");
      Serial.println(message);

    if (strstr(message,"ON")) {
        #define sms "LED allumee"      
    gprs.sendSMS(PHONE_NUMBER,sms);
    delay(1000); 
    onoff = 1;
      }
      else if (strstr(message,"OFF")) {
        #define sms1 "LED eteinte"     
    gprs.sendSMS(PHONE_NUMBER,sms1);
    delay(1000);
    onoff = 0;
      }
      else {
        #define sms2 "Commande invalide ou mal orthographie. Toutes les commandes doivent commencer par une majuscule."
    gprs.sendSMS(PHONE_NUMBER,sms2);
    delay(1000); 
    }
   }
Serial.print("etat led : ");
Serial.println(onoff);


if (onoff = 1){
  digitalWrite(LED, HIGH);
}
else {
  digitalWrite(LED, LOW);
}
}

merci

Bonjour,

L'erreur est ici

 if (onoff = 1) {

Je suppose que tu veux faire

 if (onoff == 1) {