lenteur sur le temps de réponse du code sur la carte UNO rev3

Bonjour a tous, je me tourne vers vous pour vous demander de l'aide afin d'optimiser un programme.
Je travaille sur un projet Rc voiture avec réception bluetooth hc-05 , relais de changement du sens de rotation et irf3708 , un servo sans pulsation avec micro pont-h , des options supplémentaire comme détecteur d'obstacle avant et arrière, led avant, arrière et , 2 leds pour le seuil des batteries.. et je peut vous expliquer après si quelque chose n'est pas claire dans mon besoin au code.
Mon problème persiste en ajoutant les lignes de lectures de niveaux batteries au code je reçois un lenteur sur le programme et un temps de réponse plus 30 secondes. Par contre le code des batteries fonctionne impeccable seul sur la carte arduino.

Merci d’avance.

car.ino (7.95 KB)

quand je vois des delay(2000); je me dis que ça ne doit pas aider à la réactivité...
faudrait virer TOUS les délais

Re bonjour
Merci pour votre attention, tous les délais sont virés le problème est RÉSOLU et le code fonctionne parfaitement.
Mais je vais essayer une autre façon de les clignoter sans délais pour ne pas mettre le programme en pause pendant le processus delay().

ZARROUKI:
Re bonjour
Merci pour votre attention, tous les délais sont virés le problème est RÉSOLU et le code fonctionne parfaitement.
Mais je vais essayer une autre façon de les clignoter sans délais pour ne pas mettre le programme en pause pendant le processus delay().

étudiez blink without delay pour comprendre comment utiliser millis() pour décider quand faire quelque chose et ne pas bloquer

Merci et en cours.
j'ai utilisé millis() et l'état "ledState" convient-il pour les 2 leds ? juste pour minimiser le volume du code.
Voici la partie niveaux batteries:

int analogValue1 = 0;
   int analogValue2 = 0;
   float voltage1 = 0;
   float voltage2 = 0;
   int ledState  = LOW ;
   const long interval = 500 ;
   unsigned long previousMillis = 0;
   int ledbat1 = 9; //led battery 1
   int ledbat2 = 10; //led battery 2

 void setup() {

    pinMode(ledbat1, OUTPUT); //led battery 1
    pinMode(ledbat2, OUTPUT); //led battery 2
         
    Serial.begin(9600); // Initialize serial communication at 9600 bits per second:
    
 }

 void loop() {
  /***********************BatteryIndicator****************************/
      unsigned long currentMillis = millis();
      if (currentMillis - previousMillis >= interval) {  
           previousMillis = currentMillis;
      if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }
  }
       
    analogValue1 = analogRead(A1);
    voltage1 = analogValue1 * (5.00 / 1023.00) * 2;
    if(voltage1 <= 6.50){
        digitalWrite(ledbat1, ledState);
         }
 
    analogValue2 = analogRead(A0);
    voltage2 = analogValue2 * (5.00 / 1023.00) * 2;
    if(voltage2 <= 6.50){
        digitalWrite(ledbat2, ledState);
         }
 }

pas sûr pourquoi ledState est de la partie mais l'approche pour faire un truc "de temps en temps" est OK

j’essaye ce soire sur la carte et je vais changer s'il faut. merci

Salut, le programme est fluide top, merci pour votre aide