pause dans mon programme

Bonjour j’ai fait un programme pour un projet domotique .le but c’est surtout de faire du multi tache .pour cela j’ai creé plusieurs fonction.mais je me rend compte que mon programme fait quand même une pose quand j’envoi les instructions.
pouvez vous me dire si ma manière de faire le code est bonne ou pas.

/*Cablage sejour :PIN 4
 *        chambre:PIN 3
 *        capteur dht11 :PIN 8
 *        servo  :PIN 5
 *        ldr    :PIN 0 analogique
 *        led du ldr: PIN 2
 *        
 *        BLUETOOTH : 6 ET 7
 *        
 * 
 * 
 * 
 * 
 * 
 */
//commande de la porte et de l'éclairage
#include<SoftwareSerial.h>
#include <Servo.h>
//ajout du capteur temperature
#include "DHT.h"
#define DHTPIN 8
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

SoftwareSerial HC06(6,7); //declaration  du module PORT TX=6 RX=7

const char SEJOUR1=4;// la led sera cnnecté à la broche 2
const char CHAMBRE1=3;

//photo resistance
int val = 0;
int sensorPin = 0; //entrer analogique ldr //entrer analogique du ldr resistance de 1kohms
int ledPin = 2;

Servo monServo;


float h = 0;
float t = 0;

String messageRecu; // variable qui stockera linformation reçu du module

void setup() 

{
  Serial.begin(9600); //inialisation des liaison serie
  HC06.begin(9600); //inialisation des liaison serie
  dht.begin();

  pinMode(SEJOUR1,OUTPUT);
  digitalWrite(SEJOUR1,HIGH);
  pinMode(CHAMBRE1,OUTPUT);
  digitalWrite(CHAMBRE1,HIGH);
  pinMode(ledPin, OUTPUT);
  monServo.attach(5);
  monServo.write(0);
  delay(500);
  monServo.detach();
 
  

 

  
  // put your setup code here, to run once:

}

void loop() 
{
  
 eclairage();
 hum_temp();
 economie();
 

}

void eclairage()
{
while(HC06.available()) //boucle pour detecter la presence
                          //d'information venan du hc06
  {
    delay(3);
    char c = HC06.read(); //lecture caractere par carectere
    messageRecu += c;

  }
  if (messageRecu.length()>0)
  {
    Serial.println(messageRecu);
    if (messageRecu == "SEJOUR:1")
        {
          digitalWrite(SEJOUR1,LOW);
        }

      else if (messageRecu == "SEJOUR:0")
        {
          digitalWrite(SEJOUR1,HIGH);
        }
        

       else if (messageRecu == "CHAMBRE1:1")
        {
          digitalWrite(CHAMBRE1,LOW);
        }

      else if (messageRecu == "CHAMBRE1:0")
        {
          digitalWrite(CHAMBRE1,HIGH);
        }

      else  if (messageRecu == "GARAGE:1")
        {
          monServo.attach(5);
          monServo.write(90);
          delay(300);
          monServo.detach();
          
        }

     else if (messageRecu == "GARAGE:0")
        {
         monServo.attach(5);
         monServo.write(0);
         delay(300);
         monServo.detach();
         
         
        }
        
       messageRecu=""; // A mettre à fin du programme 
  }  
}

void economie()
{
val = analogRead(sensorPin);
  Serial.println(val);
  if (val > 400) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
  delay(1000);
}

void hum_temp()
{
   h = dht.readHumidity();
        t = dht.readTemperature();
        if (isnan(t) || isnan(h)){
                
                Serial.println( "Lecture impossible !");
                
                delay(100);
                
                
                
        }
        else
        {
                Serial.println("Humidite :");
                Serial.println(h);
                HC06.print(h); //envoi de lhumidite
                HC06.print("% \t\t");
                Serial.print(" %\t");
                Serial.println("Temperature :");
                Serial.println(t);
                HC06.print(t);
                HC06.print(" °C \t");
                Serial.print(" C \t");

               
        }
        delay(500);
}

bonjour,
pas de mltitaches possible.
par contre si tu mets des delays un peu partout, ca bloque pendant le temps indiqué le code, donc normal.

tu entends quoi par pause?

Bonjour,

fidele:
Bonjour j'ai fait un programme pour un projet domotique .le but c'est surtout de faire du multi tache .pour cela j'ai creé plusieurs fonction.mais je me rend compte que mon programme fait quand même une pose quand j'envoi les instructions.
pouvez vous me dire si ma manière de faire le code est bonne ou pas.

Comme le signal infobarquee, nativement le multi-tâche n'est pas possible.
Par contre cela reste un problème de soft. Le sujet a déjà fait l'objet de plusieurs posts (faire une recherche sur le forum)
Voici 2 liens vers du multi-tâche préempif :

Il faut bien poser le problème, de ce que l'on voit de ton programme tu ne cherches pas réellement à faire du multitâche. Tu veux juste gérer plusieurs capteurs et une liaison sans fil.
En plus tu n'as pas besoin de tout gérer à la milliseconde près. La température et l'humidité par exemple sont des paramètres qui évoluent relativement lentement.
En ce qui concerne les delay(). Dans une optique multi entrées/sorties, il faut bannir cette instruction qui bloque l'exécution du programme. Il faut utiliser millis() qui est un compteur de temps écoulé interne avec lequel on peut rythmer des événements. Regarde l'exemple blinkWithoutDelay qui se trouve dans les exemples installés avec l'IDE.

Merci pour vos reponses.