Bonjour,
Les fonctions delay() ne sont pas pris en compte dans l’exécution du programme. Le but est d’appeler sue deux numéros différents.
#include <SoftwareSerial.h>
#define IR_output 2
SoftwareSerial sim800l(10, 11); // RX,TX for Arduino and for the module it's TXD RXD, they should be inverted
void setup() {
pinMode(IR_output, INPUT); //Define pinModes
attachInterrupt(digitalPinToInterrupt(IR_output),detection_IR,CHANGE); //détecte un changement d'état
Serial.begin(9600); //Start the Serial communication with the PC and SIM800L
sim800l.begin(9600);
delay(5000);
}
void loop() {
}
void detection_IR(){
if(digitalRead(IR_output)==HIGH){ //si le signal est à l'état haut
Serial.println("mouvement detecte");
sim800l.println("ATD+xxxxxxxxxx;"); //The number to call don't forget to add the country code
Serial.println("Appelle du Numéro xxxxxxxxxx");
Serial.println("Racrocche automatique dans 20s");
delay(20000);
sim800l.print("ATH");
}
delay (20000);
if(digitalRead(IR_output)==HIGH){ //si le signal est à l'état haut
Serial.println("mouvement detecte");
sim800l.println("ATD+xxxxxxxxxx;"); //The number to call don't forget to add the country code
Serial.println("Appelle du Numéro xxxxxxxxxx");
Serial.println("Racrocche automatique dans 30s");
delay(30000);
sim800l.print("ATH");
}
if(digitalRead(IR_output)==LOW){ //si le signal est à l'état bas
Serial.println("pas de mouvement detecte");
}
}