Pages: [1]   Go Down
Author Topic: Affichage sur LCD display  (Read 1417 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Nouvel utilisateur d'Arduino, je bosse sur un petit projet avec afficheur LCD 16*4. En utilisant la library LCD arduino tout fonctionne correctement. J'ai simplement un petit problème qui va faire certainement rire les experts, mais je me lance tout de même.

Je dois afficher la valeurs en pourcentage de la position d'un potentiomètre. Sur le fond aucun problème. Mais comme ma plage varie de 0% à 100%, j'ai donc de 1 à 3 caractères. Aucun pb pour les afficher sauf que lorsque je passe par la valeur 100% et que je redescends, pour 75% je n'obtiens pas "75" à l'écran mais "750" car il a conserver à l'écran le dernier caractère ("0") du "100%.  :'(

j'ai bien essayer de faire un lcd.clear en début de chaque boucle, mais avec cette technique, la rémanence du lcd fait que l'affichage tremble. C'est particulièrement inconfortable.

Je suis sûr qu'il existe un moyen très simple de gérer ça, mais mes recherches étant restées infructueuses pour le moment je me tourne vers vous car le temps m'est compté pour terminer ce projet.

Voici un petit bout de mon code pour cet affichage, pour le moment je luis demande d'afficher des espaces pour "effacer" à chaque boucle mes caractères est palier au problème. Le problème est que la aussi, la rémanence fait que ce n'est pas très confortable. Ce code se trouve dans ma boucle principale.

sensorTime = analogRead(sensorTimePin);                    
  OnTime = ((1023-sensorTime)*10);                          
  lcd.setCursor(23, 1);
  lcd.print(OnTime);
  lcd.print("     ");

Merci pour vos conseils.
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3230
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Faire un lcd.clear() uniquement lors de changement de la valeur onTime.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok c'est ce que je me disais: un clear uniquement sur changement de valeur.

Ok, je vais donc coder cette détection de changement de valeur... Au boulot.

Merci pour l'info.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 26
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

J'ai eu le même problème d'affichage. Un clear est efficace, mais même si il est rare, il "choque" un peu les yeux. Voilà ma méthode pour éviter ça (mais il y en a surement plein d'autres).

Il y a d'ailleurs trois problèmes : ne pas faire clignoter, ne pas devoir tout réécrire après un clear, et garder les nombres calés à droite. C'est à dire que les unités sont toujours au même endroit (ce qui est beaucoup plus lisible et agréable selon moi, mais les gouts et les couleurs... :-)

En reprenant votre code, et en imaginant que "OnTime" vaut entre 0 et 100 en entiers (pas de virgules, pas de "-", etc.), je ferais (à vérifier si je n'ai pas fait de faute de syntaxe) :

Code:
lcd.setCursor(23, 1);
if(OnTime < 100) lcd.print(" ");
if(OnTime < 10) lcd.print(" ");
lcd.print(OnTime);

En gros, si c'est 100, on affiche 100. Si c'est moins que 100, on ajoute un espace qui va effacer l'éventuel "1" et qui va mettre un espace à la place des centaines pour aligner le reste. Puis, si c'est moins de 10, on ajoute un second espace qui va effacer l'éventuelle dizaine précédente et aligner le dernier chiffre.

C'est basique, ça ne marche pas pour les nombres négatifs (à gérer à part), mais pour votre cas, ça semble convenir, non ?

En espérant que ça vous soit utile.

Frédéric / Strasbourg
« Last Edit: November 25, 2010, 12:02:09 pm by blob » Logged

Toulouse / France
Offline Offline
Full Member
***
Karma: 5
Posts: 238
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

pour palier a ce problème, on peut aussi ajouter un digit et le cacher,

j'avais fait ça pour un compte tour avec afficheur LCD

http://web.tetalab.org/2009/09/23/compteur-rpm-affichage-lcd.html

Lionel
« Last Edit: November 30, 2010, 08:28:07 am by snootlab » Logged

- Distributeur officiel Arduino - France

Pages: [1]   Go Up
Jump to: