Arduino Forum

International => Français => Topic started by: ZARROUKI on Apr 29, 2019, 02:01 pm

Title: lenteur sur le temps de réponse du code sur la carte UNO rev3
Post by: ZARROUKI on Apr 29, 2019, 02:01 pm
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.
Title: Re: lenteur sur le temps de réponse du code sur la carte UNO rev3
Post by: J-M-L on Apr 29, 2019, 02:19 pm
quand je vois des
Code: [Select]
delay(2000); je me dis que ça ne doit pas aider à la réactivité...
faudrait virer TOUS les délais
Title: Re: lenteur sur le temps de réponse du code sur la carte UNO rev3
Post by: ZARROUKI on Apr 30, 2019, 11:11 am
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().
Title: Re: lenteur sur le temps de réponse du code sur la carte UNO rev3
Post by: J-M-L on Apr 30, 2019, 11:16 am
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
Title: Re: lenteur sur le temps de réponse du code sur la carte UNO rev3
Post by: ZARROUKI on Apr 30, 2019, 12:39 pm
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:


Code: [Select]
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);
         }
 }
Title: Re: lenteur sur le temps de réponse du code sur la carte UNO rev3
Post by: J-M-L on Apr 30, 2019, 03:58 pm
pas sûr pourquoi ledState est de la partie mais l'approche pour faire un truc "de temps en temps" est OK
Title: Re: lenteur sur le temps de réponse du code sur la carte UNO rev3
Post by: ZARROUKI on Apr 30, 2019, 04:21 pm
j'essaye ce soire sur la carte et je vais changer s'il faut. merci
Title: Re: lenteur sur le temps de réponse du code sur la carte UNO rev3
Post by: ZARROUKI on May 01, 2019, 12:44 pm
Salut, le programme est fluide top, merci pour votre aide