Mettre plusieurs "delay"?

Bonjour, mon idée dans ce code,c'est de faire en sorte que l'écran défile de "Vitesse" à la caractéristique suivante toutes les 5 secondes,puis que de la caractéristique suivante etc.
Mais quand je le transfère à l'arduino,il revient toujours à vitesse,et rien d'autre...comment faire?

PS: Si le fait que je ne mette qu'une lettre par ligne vous intrigue,c'est parce que Sinon,l'écran transforme ça en chiffres,donc j'utilise cette petite astuce

/*
 * Programme qui servait avant de benchmark de piles LR6, AAA, CR2032 ou tout autre piles inférieur à 5v
 */
 ///variable useless d'un bout de code pecho sur google
 volatile byte half_revolutions = 0;
 unsigned int rpm = 0;
 unsigned int timeold = 0;
 void rpm_fun()
 {
   half_revolutions++;
   //Each rotation, this interrupt function is run twice
 }
/* Valeur de la résistance de charge */
const float charge_resistor = 15.2;
 /* Inclure les bibli */
 #include <LiquidCrystal.h>
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
/* Broche de mesure */
const byte analog_pin = A0;
 
/* Macro de conversion valeur numérique -> tension en volts */
#define ADC_TO_VOLTS(value) ((value / 1023.0) * 5.0)
 
/* setup() */
void setup() {
 
  /* Initialise le lcd */
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0,0);
 
 
}
 
/* loop() */
void loop() {
   
  /* Attend la mise en place d'un accu >1 volts */
  while(analogRead(analog_pin) < 200);
 
  /* Compteur de temps */
  unsigned int time = 0;
   
  /* Résultat de analogRead() */
  unsigned int analog;
 
  /* Mesure la batterie jusqu'a ce quelle atteigne 1 volts*/
  while((analog = analogRead(analog_pin)) > 200) {
 
    /* Mesure de la tension de la batterie (en volts) */
    float vbat = ADC_TO_VOLTS(analog);
 
    /* Calcul du courant traversant la résistance (en mA) */
    float ibat = (vbat * 0.1) / charge_resistor; // I = U / R
 
    /* Calcul de la puissance de la batterie (en mW) */
    float pbat = vbat * ibat; // P = U * I
 
    /* Affiche les résultats  */
    lcd.setCursor(1,0);
    lcd.print('T');
    lcd.print('e');
    lcd.print('n');
    lcd.print('s');
    lcd.print('i');
    lcd.print('o');
    lcd.print('n');
    lcd.print(':');
    lcd.print(vbat);
    lcd.print('V');
      
    ///kek amperage
    lcd.setCursor(1, 1);
    lcd.print('I');
    lcd.print('n');
    lcd.print('t');
    lcd.print('e');
    lcd.print('n');
    lcd.print('s');
    lcd.print('i');
    lcd.print('t');
    lcd.print('e');
    lcd.print(':');
    lcd.print(ibat);
    lcd.print('A');
      
 
    /* Incrémente le compteur de temps */
    ++time;
 
    /* Attend une seconde */
    delay(5000);
    ///lol la on efface l'écran pour afficher VITESSE
    lcd.clear();
    lcd.setCursor(1,0);
    lcd.print('V');
    lcd.print('i');
    lcd.print('t');
    lcd.print('e');
    lcd.print('s');
    lcd.print('s');
    lcd.print('e');
    {
   if (half_revolutions >= 20) { 
     //Update RPM every 20 counts, increase this for better RPM resolution,
     //decrease for faster update
     rpm = 30*1000/(millis() - timeold)*half_revolutions;
     timeold = millis();
     half_revolutions = 0;
     lcd.setCursor(1, 1);
     lcd.print(rpm);
  
     lcd.setCursor(1, 1);
     lcd.print("tr");
     delay(1000);
   }
 }
 
    
    ///lolUS la on affiche AUTONOMIE
    
    delay(500);
    lcd.clear();
    lcd.setCursor(1,0);
    lcd.print('A');
    lcd.print('u');
    lcd.print('t');
    lcd.print('o');
    lcd.print('n');
    lcd.print('o');
    lcd.print('m');
    lcd.print('i');
    lcd.print('e');
    lcd.print(':');
  }
}

Merci d'avance de vos réponses <3

Autre petite astuce : lcd.print("Vitesse:"); avec des guillemets ça ira mieux

/* Attend une seconde */
delay(5000);

non ici tu attends 5s

après l'affichage du texte vitesse, tu as des accolades ouvrante qui encadrent le test if (half_revolutions ...) ... pourquoi ?

enfin, après avoir affiché "autonomie", tu n'as pas de delay, ton programme retourne donc au while et affiche quasi instantanément "Tension"

a quoi sert ta variable time ?

Concernant la vitesse, quelle en est l'intérêt ? Ta variable half_revolutions vaut toujours 0 puisque la seule méthode qui permet d'en modifier la valeur (rpm_fun()) n'est jamais appelée.

Sinon, un petit tour ici te permettra de comprendre tes problèmes d'affichage.

#include <LiquidCrystal.h>

/* Valeur de la résistance de charge */
const float charge_resistor = 15.2;
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
/* Broche de mesure */
const byte analog_pin = A0;
 
/* Macro de conversion valeur numérique -> tension en volts */
#define ADC_TO_VOLTS(value) ((value / 1023.0) * 5.0)
 
void setup() {
  /* Initialise le lcd */
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0,0);
}
 
void loop() {
  /* Attend la mise en place d'un accu >1 volts */
  while(analogRead(analog_pin) < 200);
 
  /* Résultat de analogRead() */
  unsigned int analog;
 
  /* Mesure la batterie jusqu'a ce quelle atteigne 1 volts*/
  while((analog = analogRead(analog_pin)) > 200) {
 
    /* Mesure de la tension de la batterie (en volts) */
    float vbat = ADC_TO_VOLTS(analog);
 
    /* Calcul du courant traversant la résistance (en mA) */
    float ibat = (vbat * 0.1) / charge_resistor; // I = U / R
 
    /* Calcul de la puissance de la batterie (en mW) */
    float pbat = vbat * ibat; // P = U * I
 
    /* Affiche les résultats  */
    lcd.setCursor(1,0);
    lcd.print("Tension:");
    lcd.print(vbat);
    lcd.print('V');
      
    ///kek amperage
    lcd.setCursor(1, 1);
    lcd.print("Intensite:");
    lcd.print(ibat);
    lcd.print('A');
      
    /* Attend 5 secondes */
    delay(5000);
     
    ///lolUS la on affiche AUTONOMIE
    lcd.clear();
    lcd.setCursor(1,0);
    lcd.print("Autonomie:");
 /* ICI il doit manquer du code... */
    delay(5000);
  }
}

B83s:
Autre petite astuce : lcd.print("Vitesse:"); avec des guillemets ça ira mieux

/* Attend une seconde */
delay(5000);

non ici tu attends 5s

après l'affichage du texte vitesse, tu as des accolades ouvrante qui encadrent le test if (half_revolutions ...) ... pourquoi ?

enfin, après avoir affiché "autonomie", tu n'as pas de delay, ton programme retourne donc au while et affiche quasi instantanément "Tension"

Justement je le faisais avant mais ça l'affiche avec des chiffres :c

Merci beaucoup,ce problème la est résolu :slight_smile:

Tu as Skype?

Non je n'ai pas Skype !