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
#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