Arduino Forum

International => Français => Topic started by: pouille on May 19, 2013, 02:32 am

Title: lcd et while
Post by: pouille on May 19, 2013, 02:32 am
bonjour j'ai un souci entre un ecran lcd qui n'affiche pas la valeur "analogique"
il reste figé jusqu'a la fermeture du conctact et la je patauge  :~
pourtant code simple

je joint le code complet


Quote

int _ABVAR_1_tmpcommun;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);


void setup()   {
{
  pinMode( 3 , INPUT);
  pinMode( 13 , OUTPUT);
  pinMode( 2 , INPUT);
   lcd.init();
lcd.backlight();
  _ABVAR_1_tmpcommun = 0; 
}





 void loop()
{
   lcd.setCursor (5,0);
   lcd.setCursor(0, 1);
   lcd.setCursor(1, 0);
  delay(50);


{
    lcd.clear();
    delay(10);
  _ABVAR_1_tmpcommun = analogRead(A1);
          lcd.print("delais : ");
          lcd.print(_ABVAR_1_tmpcommun/10);

}                 
while ( digitalRead( 3) )

{
digitalWrite( 13 , HIGH );

}

digitalWrite( 13 , LOW );
delay( _ABVAR_1_tmpcommun *10);

}

Title: Re: lcd et while
Post by: skywodd on May 19, 2013, 05:04 pm
Bonjour,

Ça sent le code généré par un logiciel graphique ...

Ton code actuel fait exactement ce qui tu lui demande ...
Il lit la tension sur A1, affiche la valeur puis bloque tant que D3 est à HIGH.
Ensuite il fait le delay().

Tu veut faire quoi exactement ?
Title: Re: lcd et while
Post by: pouille on May 19, 2013, 06:44 pm
Merci de m'aider
presque généré par soft graphique M'enfin..
c'est le delay qui me gène l'écran ne rafraîchi pas temps
que le delay n'est pas expiré mais je ne trouve pas de soluce pour qu'il affiche tout le temp
la valeur de "a1"
Title: Re: lcd et while
Post by: skywodd on May 20, 2013, 04:32 pm
J'ai pas tout compris mais je pense que cet exemple pourrait t'aider :
http://arduino.cc/en/Tutorial/BlinkWithoutDelay
Title: Re: lcd et while
Post by: Heloderma-kris on May 21, 2013, 11:12 am
salut c'est normal qu'il attende la fin de delay ,
en utilisant delay ,c'est comme si tu faisai une pause dans le programe donc il n'effectue pas la suite du prog!
maintenant un delay de 50milliseconde ça doit pas trops te géné non ?
sinon c'est que j'ai pas non plus compris ce que tu cherche a fair!
XD
Title: Re: lcd et while
Post by: pouille on May 21, 2013, 01:26 pm
bonjour et Merci de m'aider
le probleme et que le dernier delay() celui avec la variable*10
est tres long plusieurs dizaine de minutes et l'ecran se fige dessus
la synoptique par elle meme est simple un potar fait varier le temp de remise en fonction d'une led
Title: Re: lcd et while
Post by: Heloderma-kris on May 23, 2013, 08:57 am
a tout hasar est ce que sa ne viendrai pas du fait que analogread te renvoi une valeur de 0 a1023 car dans ce cas

500 qui corespond a environ 2.5v te done un delay de 5000 !

mais ci c'est plusieur minute la c'est etrange!

apres que cherche tu a lire sur digitalread(3) car cette boucle peut aussi te poser des probléme ?
"temps que tension sur 3 je mes la 13 a l'etat haut " et ce que cette 13 reste figer aussi pendant le meme laps de temps?
Title: Re: lcd et while
Post by: skywodd on May 23, 2013, 09:43 am
Le délai maximum possible pour analogRead(A1) = 1023 c'est 1023 * 10 = 10230ms -> 10 secondes.

C'est donc ta boucle d'attente sur digitalRead(3) qui bloque ton programme plusieurs minutes.
Ça veut aussi dire que ton câblage sur la broche D3 (un bouton je suppose ?) est foireux car si au bon de 10 minutes tu as suffisamment d'interférences pour faire communiquer la broche c'est pas glorieux ...

Il faut reprendre sur de bonne bases :
-> ton schéma de montage
-> ce que tu veut faire exactement (pas de code ou autre, ton projet lui même)