Besoins d'aide pour une fréquence de raffraichissement

Salut j'ai fait un programme dans mon TP de lycée mais je souhaite l'améliorer en augmentent la fréquence de rafraichissement de l'écran LCD du shield sur ma carte arduino Uno.
mon programme consiste à afficher la valeur du potentiomètre sur mon écran LCD ainsi que d'allumer un LED plus ou moins puissamment en fonction de la valeur de l'écran LCD. mon prof me conseille d'utiliser la fonction millice() mais je ne trouve pas des information claire sur la toile
Voici mon code :

#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

int ledPin = 6;
int sensorValue = analogRead(A0);
int val;
void setup() {
// set up the LCD's number of columns and rows:
Serial.begin(9600);
lcd.clear();
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("Potentiometre");
lcd.setCursor(0,1);

}

void loop() {
int sensorValue = analogRead(A0);
lcd.setCursor(0,1);
lcd.clear();
lcd.print("Potentiometre");
lcd.setCursor(0,1);
lcd.print(sensorValue);
delay(1);
val=map(sensorValue,0,1023,0,255);
analogWrite(ledPin,val);
}

Bonjour

mon prof me conseille d'utiliser la fonction millice()

cette fonction millice n'existe pas et d'ailleurs les milices on s'en passe...

Il s'agit plutôt de la fonction millis()
Voici une explication parmi d'autres :
https://forum.arduino.cc/index.php?topic=503368.0

Autre chose voir içi comment bien poster du code dans un message
https://forum.arduino.cc/index.php?topic=394754.0

Ceci dit une petite temporisation de duréee 1ms est présente dans la boucle et il n'est pas certain qu'il soit possible d'augmenter la fréquence de rafraichissement .

mon prof me conseille d'utiliser la fonction millice() mais je ne trouve pas des information claire sur la toile

Normal: voir
millis() - Arduino Reference pour la doc officielle (pas la peine de se disperser avec un mot clef aberrant)
et regarder dans les exemples d'arduino (je ne sais pas très bien naviguer dans l'IDE) l'exemple blinkWithoutDelays
Ensuite, je vous conseillerais, une fois la fonction millis() bien gérée, de regarder ce qui se passe si on affiche la même chose: normalement, l'écran doit clignoter un peu, ce qui est désagréable.
Pour lutter contre ce desagremant, il faut garder un mémoire la valeur précédente -i.e la valeur du dernier rafraichissement, initialisée à une valeur improbable- et {n'afficher et ne mettre à jour} la valeur precedente que si la valeur précedente diffère de la valeur suivante.

Nota; afficher toutes les millisecondes doit être très fatiguant pour les yeux et baisser le temps de rafraichissement doirt augmenter ce phénomène; par contre, il ne fait pas de mal pour la commande d'un servo. Vous pouvez aller voir du côté de [/b]micros[/b] comment augmenter la fréquence de mise à jour du servo (l'utilisation de fonctions non bloquantes permet de gérer des tas de delays efficacement).

hello
meri de lire le lien donné par al1fch et de corriger ton post

pour te répondre, la tempo dans ta loop est inutile.
en la supprimant, tu vas rafraichir plus vite ton écran.

de plus tu initialise le ldc à chaque tour de loop et tu ecrit "potentiomètre" également à chaque tour de loop

corrigé, ton prog devient:

#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

int ledPin = 6;
int sensorValue = 0;
int val;
void setup() {
  lcd.begin(16, 2);
  lcd.print("Potentiometre");
  pinMode(ledPin,OUTPUT);digitalWrite(ledPin,LOW);
}

void loop() {
    sensorValue = analogRead(A0);
    lcd.setCursor(0,1);
    lcd.print(sensorValue);
    val=map(sensorValue,0,1023,0,255);
    analogWrite(ledPin,val);
}

Ce code clignotera de façon insupportable pour un oeil normal: le suivant y remediera:

#include <LiquidCrystal.h>
uint16_t previousValue=5555; // aucun CAN ne peut sortir cette valeur
const uint16_t EPS = 3; // bruit du CAN
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

int ledPin = 6;
int sensorValue = 0;
int val;
void setup() {
  lcd.begin(16, 2);
  lcd.print("Potentiometre");
  pinMode(ledPin,OUTPUT);digitalWrite(ledPin,LOW);
}

void loop() {
    sensorValue = analogRead(A0);
    if (abs(previousValue - sensorValue) > EPS)
         lcd.setCursor(0,1);
         lcd.print("                "); // met des blancs: cas où on passe de 100 à 98; sinon, on voit 980     
         lcd.setCursor(0,1); // on revient à gauche
         lcd.print(sensorValue);
         previousValue = sensorValue;
    }
    val=map(sensorValue,0,1023,0,255);
    analogWrite(ledPin,val);
// regarder du côte de delayMicroseconds() ou micros()
}