imbriquer 2 code en 1 ??

bonjour tout le monde,

nouveau avec arduino j'ai commencer un peut a utiliser l'arduino avec le starter kit et fait tout les projet du livre

voila j'arrive a un problème,

j'ai fait fonctionner un capteur de température TMP36 et a afficher la température sur un ecran LCD 16x2

apre j'ai fait fonctionner une photoresistance est a afficher la valeur sur l’écran LCD

mon problème est que je souhaiterai afficher les 2 en même temps sur l’écran LCD et je ne trouve rien pour m'aider a cela
j'arrive a faire que la température s'affiche en haut et la valeur photorésistance en bas du LCD

mais a imbriquer les 2 code dans 1 seul ^^' si vous pouvez m'aider a faire cela ou si vous connaissez un tuto qui explique cela pour que je comprenne mieux se principe se serait super
j'ai tenter plusieurs méthode mais aucune on marchés j'ai eux des erreur par ci par la ^^'

voici donc le code pour la température

#include <LiquidCrystal.h>

int temperature = A0;

byte degrees[8] = {
  B00000,
  B01000,
  B10100,
  B01000,
  B00000,
  B00000,
  B00000,
  B00000,
};

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

//--------------------------------------------------------------------

void setup(){
  lcd.begin(16, 2);
  lcd.clear();
  lcd.createChar( 0, degrees );
}

int lastTemp = -100;

//--------------------------------------------------------------------

void loop(){
  float temp = lectureTemp();
  if( abs(temp-lastTemp)<0.2 )
    return;
  lastTemp = temp;

  lcd.setCursor(0,0);
  lcd.print( temp );
  lcd.write((byte) 0 );
  lcd.print( "c" );

  lcd.print( "      " );

  delay(3000);
  
}


float lectureTemp(){
 int valeur = analogRead(temperature);  
 float tension = valeur * 5.0;
 tension /= 1024.0; 
 float temperature = ((tension * 1000) - 500) / 10;
 
 return temperature;
}

et voici le code de la photorésistance

#include <LiquidCrystal.h>

int photoresist = A1;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

//--------------------------------------------------------------------

void setup() {
  lcd.begin(16, 2);
  lcd.clear();
  pinMode(A0, INPUT);
}


//--------------------------------------------------------------------

void loop() {
int val = display_lux_tempsExec();
}
 
int display_lux_tempsExec()
{
int val = analogRead(A1) ;
lcd.setCursor(0, 1);
lcd.print(val);
lcd.print(" lux ");
return val ;

}

je vous remercie par avance pour votre aide et je vous souhaite un agréable weekend.

Bonjour,

Tu fusionnes les deux parties définition
Tu fusionnes les deux setup
Tu fusionne les deux loop
Si il y a des fonctions externes tu les ajoutes toutes.

Dans ton cas comme le 2eme programme est le plus simple tu parts du 1er programme
Dans les définitions tu ajoutes la définition de A1
Dans le setup tu ajoutes le pinMode...
Dans la loop tu ajoutes int val = display_lux_tempsExec();
Tu ajoutes le fonction int display_lux_tempsExec()

Et Voila!

ah oui en effet simple, enfaite je viens de voir que dans mais essaie précédent je n'avais pas fusionner les fonction j'ajouter le code avec en plus les {}
se qui provoquer des erreur en cascade dans le code, ducoup je comprend un peut mieux le principe ^^

je viens de tout fusionner
voici donc le resultat fonctionnel ^^

#include <LiquidCrystal.h>

int temperature = A0; // temperature

byte degrees[8] = {
  B00000,
  B01000,
  B10100,
  B01000,
  B00000,
  B00000,
  B00000,
  B00000,
};

int photoresist = A1; // photoresistance 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

//--------------------------------------------------------------------

void setup(){
  
//--partie temperature
  lcd.begin(16, 2);
  lcd.clear();
  lcd.createChar( 0, degrees );
  
//----partie photoresistance 
    lcd.begin(16, 2);
  lcd.clear();
  pinMode(A0, INPUT);
}

int lastTemp = -100;

//--------------------------------------------------------------------

void loop(){
  
//--partie temperature
  float temp = lectureTemp();
  if( abs(temp-lastTemp)<0.2 )
    return;
  lastTemp = temp;

  lcd.setCursor(0,0);
  lcd.print( temp );
  lcd.write((byte) 0 );
  lcd.print( "c" );

  lcd.print( "      " );

  delay(3000);
  
//----partie photoresistance 
  int val = display_lux_tempsExec();
}
int display_lux_tempsExec()
{
int val = analogRead(A1) ;
lcd.setCursor(0, 1);
lcd.print(val);
lcd.print(" lux ");
return val ;
}

//--partie convertion temperature
float lectureTemp(){
 int valeur = analogRead(temperature);  
 float tension = valeur * 5.0;
 tension /= 1024.0; 
 float temperature = ((tension * 1000) - 500) / 10;
 
 return temperature;
}

grand merci pour l'explication qui en plus a etait vraiment rapide !! , je copie ter mot pour les ajouter a mon cahier ^^
très bonne continuation et un très bon fin weekend

Bravo! Tu vois ce n'était pas très difficile.

je mais a jour le code que j'avais partager , car apre reutilisation j'ai vue que je n'avais pas ajouter Serial.println pour avoir les donnée sur le moniteur serie ^^

voici donc le code final

#include <LiquidCrystal.h>

int temperature = A0; // temperature

byte degrees[8] = {
  B00000,
  B01000,
  B10100,
  B01000,
  B00000,
  B00000,
  B00000,
  B00000,
};

int photoresist = A1; // photoresistance 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

//--------------------------------------------------------------------

void setup(){
  Serial.begin(9600);
  
//--partie temperature
  lcd.begin(16, 2);
  lcd.clear();
  lcd.createChar( 0, degrees );
  
//----partie photoresistance 
    lcd.begin(16, 2);
  lcd.clear();
  pinMode(A1, INPUT);
}

int lastTemp = -100;

//--------------------------------------------------------------------

void loop(){
  
//--partie temperature
  float temp = lectureTemp();
  if( abs(temp-lastTemp)<0.2 )
    return;
  lastTemp = temp;

  lcd.setCursor(0,0);
  lcd.print( temp );
  lcd.write((byte) 0 );
  lcd.print( "c" );

  lcd.print( "      " );
 
  delay(3000);
  
//----partie photoresistance 
  int val = display_lux_tempsExec();
}
int display_lux_tempsExec()
{
int val = analogRead(A1) ;
lcd.setCursor(0, 1);
lcd.print(val);
lcd.print(" lux ");
delay(3000);
Serial.println(photoresist=val);
return val ;
}

//--partie convertion temperature
float lectureTemp(){
 int valeur = analogRead(temperature);  
 float tension = valeur * 5.0;
 tension /= 1024.0; 
 float temperature = ((tension * 1000) - 500) / 10;
  Serial.println(temperature);
 return temperature;
}

Ceci n'est pas bon

Serial.println(photoresist=val);

Je suppose que tu veux faire

Serial.println(val);

oui exact, j'ai rajouter photoresist pour rien, mais cela fonctionner tout de même ^^"
j'ai changer le code pour ta solution et cela fonctionne aussi bien ,

merci pour la réponse , et l'aide apporter au sujet ^^