Pages: [1]   Go Down
Author Topic: lcd et while  (Read 526 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-confuse
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);

}

Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ?
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 1
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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"
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai pas tout compris mais je pense que cet exemple pourrait t'aider :
http://arduino.cc/en/Tutorial/BlinkWithoutDelay
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Region ile de france.
Offline Offline
Sr. Member
****
Karma: 3
Posts: 401
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
 smiley-lol
Logged


Offline Offline
Newbie
*
Karma: 1
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Region ile de france.
Offline Offline
Sr. Member
****
Karma: 3
Posts: 401
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged


France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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)
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: [1]   Go Up
Jump to: