Afficher température capter

haifger:
Salut,

je n'ai pas tout regardé en détail, mais cette ligne n'est pas logique :

val3 = analogRead(val);

Si j'ai bien compris, à la fin de la fonction luminosite() (qui est appelée juste avant cette ligne), la valeur de la luminosité ambiante est contenue dans la variable globale val.

val est une variable locale à luminosite().

void luminosite(void)
{
  int i;
  uint16_t val=0;   <----------

Donc les 2 variables sont distinctes.

Si on suit la logique dans laquelle ce programme est écrit, il faudrait supprimer la ligne que j'ai indiqué ci-dessus.
Si on voulait coder proprement il vaudrait mieux supprimer la variable globale et faire retourner la mesure à la fonction luminosité() mais on en est pas encore à ce niveau là.

Il y a toujours une erreur de type de variable sur cette ligne:

  dat= (500 * val2) / 1024;

Il me semble que cela avait déjà été évoqué dans un autre post.
val2 peut retourner une valeur comprise entre 0 et 1023 donc le produit par 500 dépasse largement la capacité d'un int.
Donc:

  dat=(int)( (500L * (long)val2) / 1024);