#define m1 7
#define m2 6
#define ELV 5
#define Sensor 2
#define m3 3 //melangeur
#define m4 11
#define ozane 4
#define souffleur 10
#define Res 12
#define ELV2 9
bool m1_Status = LOW;
bool m2_Status = LOW;
bool ELV_Status = LOW;
bool m3_Status = LOW;
bool m4_Status = LOW;
bool ozane_Status = LOW;
bool souffleur_Status = LOW;
bool Res_Status = LOW;
bool ELV2_Status = LOW;
int Sensor_Value = 0;
bool Start_Command = true;
unsigned long startTime = 0;
bool Start_command2=true;
unsigned long previousMillis_For_M3 = 0;
long interval_For_M3 = 1000;
unsigned long currentMillis_for_m3=0;
unsigned long previousMillis_For_M4 = 0;
long interval_For_M4 = 3000;
unsigned long currentMillis_for_m4=0;
unsigned long ozane_StartTime=0;
long Time_ozane = 5000;
void setup() {
// initialize digital pin as an output.
pinMode(m1, OUTPUT);
pinMode(m2, OUTPUT);
pinMode(ELV, OUTPUT);
pinMode(Sensor, INPUT);
Serial.begin(9600);
pinMode(m3, OUTPUT);
pinMode(m4, OUTPUT);
pinMode(ozane, OUTPUT);
pinMode(souffleur, OUTPUT);
pinMode(Res, OUTPUT);
pinMode(ELV2, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
Sensor_Value = digitalRead(Sensor);
if (Start_Command == true) {
if (Sensor_Value == HIGH ) { // Changed to HIGH
if(ELV_Status == LOW){
startTime = millis(); // record the start time
Serial.println(startTime);
ELV_Status = HIGH;
}
if (millis() - startTime >= 5000) { // check if 10 seconds have passed
m2_Status = HIGH;
}
if (millis() - startTime >= 10000) { // check if 10 seconds have passed
m1_Status = HIGH;
}
} else {
m1_Status = LOW;
m2_Status = LOW;
ELV_Status = LOW;
if(Start_command2==true){
currentMillis_for_m3 = millis();
currentMillis_for_m4 = millis();
if(ozane_Status==LOW){
ozane_Status=HIGH;
ozane_StartTime = millis();
Serial.println(ozane_StartTime);
}
souffleur_Status=HIGH;
if(currentMillis_for_m3 - previousMillis_For_M3 >= interval_For_M3){
previousMillis_For_M3=currentMillis_for_m3;
if(m3_Status==LOW){
m3_Status=HIGH;
}
else{
m3_Status=LOW;
}
}
if(currentMillis_for_m4 - previousMillis_For_M4 >= interval_For_M4){
previousMillis_For_M4=currentMillis_for_m4;
if(m4_Status==LOW){
m4_Status=HIGH;
}
else{
m4_Status=LOW;
}
}
if (ozane_Status == HIGH && millis() - ozane_StartTime >= Time_ozane) {
ozane_Status = LOW; // Turn off LED1
//Res_Status = HIGH; // Turn on LED2
Serial.println("reda");
}
}
}
}
Serial.println(ozane_Status);
digitalWrite(ELV, ELV_Status); // Update LED1 state
digitalWrite(m1, m1_Status);
digitalWrite(m2, m2_Status); // Update LED2 state
digitalWrite(m3, m3_Status);
digitalWrite(m4, m4_Status);
digitalWrite(ozane, ozane_Status);
digitalWrite(souffleur, souffleur_Status);
digitalWrite(Res,Res_Status);
digitalWrite(ELV2, ELV2_Status);
}