compteur avec un arduino uno

bonjours je suis étudiant en électromécanique et je dois réaliser un projet de régulation de température avec un arduino uno et j'aimerais réaliser un "compteur" pour pouvoir réglé ma température max et min a l'aide de 2 bouton poussoir un switch et un LCD en gros j'aimerais que lorsque je met le switch en position 1 l'LCD affiche Tmax et qu'avec un impulsion d'un BP la température max admise augmente et qu'avec l'autre BP la température max admise diminue et que lorsque je met le switch en position 2 il se passe la même chose pour la température min et que lorsque mon switch est en position 3 il m'affiche juste la température max et min merci de votre aide

bonjours je suis étudiant en électromécanique et je dois réaliser un projet de régulation de température
avec un arduino uno et j’aimerais réaliser un “compteur” pour pouvoir réglé ma température max et min a l’aide de 2 bouton poussoir un switch et un LCD en gros j’aimerais que lorsque je met le switch en position 1 l’LCD affiche Tmax et qu’avec un impulsion d’un BP la température max admise augmente et qu’avec l’autre BP la température max admise diminue et que lorsque je met le switch en position 2 il se passe la même chose pour la température min et que lorsque mon switch est en position 3 il m’affiche juste la température max et min j’ai un début de programme que j’ai commencer moi même si vous saviez me dire ce qui n’irais pas

const int pinBP1 = 0;// crée un identifiant pour la broche utilisée avec le bouton poussoir
const int pinBP2 = 1;// crée un identifiant pour la broche utilisée avec le bouton poussoir
// Les variables sont modifiées au cours du programme

#include <LiquidCrystal.h> // on importe la bibliothèque
LiquidCrystal monEcran(13,12,11,10,9,8); // on crée l'objet écran

int buttonPushCounter = 0;   // variable pour le comptage du nombre d'appuis sur le bouton poussoir
int buttonState = 0;         //Variable pour l'état actuel du bouton poussoir
int lastButtonState = 0;     // Variable pour l'état précédent du bouton poussoir
int pin 2=0;
int pin 3=0;

void setup(){
 pinMode(pinBP1,INPUT);// met la broche en entrée
 pinMode(pinBP2,INPUT);// met la broche en entrée
 pinMode(pin 2,INPUT);//selection du mode
 pinMode(pin 3,INPUT);//selection du mode
 monEcran.begin(16,2); //on initialise la communication avec 16 colonnes et deux lignes
 monEcran.clear(); // on efface l'écran
 monEcran.print("teste 1"); // on écrit Bonjour
 monEcran.setCursor(0,1); //on passe à la ligne suivante
 monEcran.print("teste2"); // on finit d'écrire
}

void loop(){
 if (pin 2 ==HIGH){
 buttonState = digitalRead(pinBP1); // lit l'état actuel du bouton poussoir et le mémorise dans la variable

 // compare l'état actuel du bouton poussoir à l'état précédent mémorisé
 if (buttonState != lastButtonState) {
   // si l'état du bouton poussoir a changé et est HAUT, on incrémente la variable de comptage
   
 }
}

hello
ton code est insuffisant
je viens de t’en faire un que j’ai beaucoup commenté mais pas testé

#include <LiquidCrystal.h> // on importe la bibliothèque
LiquidCrystal monEcran(13,12,11,10,9,8); // on crée l'objet écran

// Les constantes 
const int BPplus   = 4;// cree un identifiant pour la broche utilisée avec le bouton poussoir plus
const int BPmoins  = 5;// cree un identifiant pour la broche utilisée avec le bouton poussoir moins
//les inters peuvent etre un inverseur avec point milieu
const int intermax = 6;// cree un identifiant pour la broche utilisée avec l inter max
const int intermin = 7;// cree un identifiant pour la broche utilisée avec l inter min

// Les variables sont modifiées au cours du programme
int temperature_max = 20;//par defaut. a voir pour  float
int temperature_min = 10;//par defaut. a voir pour  float
int temperature     = 15;//par defaut. a voir pour  float 

void setup(){
 pinMode(BPplus,  INPUT_PULLUP);// met la broche BPplus en entrée avec validation de la résistence de pullup
 pinMode(BPmoins, INPUT_PULLUP);// met la broche BPplus en entrée avec validation de la résistence de pullup
 pinMode(intermax,INPUT_PULLUP);// met la broche BPplus en entrée avec validation de la résistence de pullup
 pinMode(intermin,INPUT_PULLUP);//met la broche BPplus en entrée avec validation de la résistence de pullup
 monEcran.begin(16,2); //on initialise le LCD 16x2
 //monEcran.clear(); // on efface l'écran
}
//on suppose qu'un appui sur un BP, ou un inter établit un contact entre GND et l'entrée concernée
//et on ne sait pas comment tu as lu la température reelle (mise par defaut a 15)
void loop()
{
    if(digitalRead(intermax)==0)//inter max etablit un contact avec GND
      {
        delay(200); //on attends la fin des rebonds
        monEcran.setCursor(0,1); 
        monEcran.print(temperature_max);
        if(digitalRead(BPplus)==0)//BPplus etablit un contact avec GND
          {
            delay(200);//on attends la fin des rebonds
            temperature_max++;//on incremente la temperature maxi
          }
    
        if(digitalRead(BPmoins)==0)//BPmoins etablit un contact avec GND
          {
            delay(200);//on attends la fin des rebonds
            temperature_max--;//on decremente la temperature maxi
          }
      }
     if(digitalRead(intermin)==0)//inter mini etablit un contact avec GND
      {
        delay(200); //on attends la fin des rebonds
        monEcran.setCursor(0,1); 
        monEcran.print(temperature_min);
        if(digitalRead(BPplus)==0)//BPplus etablit un contact avec GND
          { 
            delay(200);//on attends la fin des rebonds
            temperature_min++;//on incremente la temperature mini
          }
    
        if(digitalRead(BPmoins)==0)//BPmoins etablit un contact avec GND
          {
            delay(200);//on attends la fin des rebonds
            temperature_min--;//on decremente la temperature mini
          }
      } 
      
   monEcran.setCursor(0,0);             //colonne 0, ligne 0
   monEcran.print("mini reelle maxi"); 
   monEcran.setCursor(0,1);             //colonne 0, ligne 1
   monEcran.print(temperature_min);     
   monEcran.setCursor(6,1);             //colonne 6, ligne 1
   monEcran.print(temperature);
   monEcran.setCursor(13,1);            //colonne 13,ligne 1
   monEcran.print(temperature_max);
}

super merci beaucoup je vais le tester maintenant je te renvois un msg quand je l'aurais tester pour te dire quoi et encore merci

j'ai une erreur de compilation quand je veux téléverser dans la carte ca me met

collect2.exe: error: ld returned 5 exit status

exit status 1 Erreur de compilation pour la carte Arduino/Genuino Uno

et je capte ma température avec un capteur de température LM35DZ que je viens seulement de câbler

hello chez moi ca compile sans problème

dans l'IDE arduino, en haut à gauche

fichier preferences afficher les résultats détaillés pendant la compilation , le téléversement

il faut cocher ces deux cases pour avoir des infos sur les erreurs

Pourquoi poster 2 fois le même sujet - c’est nul

c’est bon maintenant merci mais le soucis maintenant c’est que l’augmentation et la diminution des valeur ne se fait pas et j’ai intégré au programme le capteur de température qui semble fonctionner j’entent le relais basculer l’or du passage a une certaine température après pour en revenir au bouton poussoir ça vient peut être d’un mauvais câblage de ma part j’y amène le 5V et repart sur mon arduino directe c’est bien comme cela qu’il faut procédé ?

#include <LiquidCrystal.h> // on importe la bibliothèque
LiquidCrystal monEcran(13,12,11,10,9,8); // on crée l'objet écran

// Les constantes 
const int BPplus   = 0;// cree un identifiant pour la broche utilisée avec le bouton poussoir plus
const int BPmoins  = 1;// cree un identifiant pour la broche utilisée avec le bouton poussoir moins
//les inters peuvent etre un inverseur avec point milieu
const int intermax = 2;// cree un identifiant pour la broche utilisée avec l inter max
const int intermin = 3;// cree un identifiant pour la broche utilisée avec l inter min

// Les variables sont modifiées au cours du programme
int temperature_max = 20;//par defaut. a voir pour  float
int temperature_min = 10;//par defaut. a voir pour  float
int temperature     = 15;//par defaut. a voir pour  float 

int capteur = 5;

void setup(){
 pinMode(BPplus,  INPUT_PULLUP);// met la broche BPplus en entrée avec validation de la résistence de pullup
 pinMode(BPmoins, INPUT_PULLUP);// met la broche BPplus en entrée avec validation de la résistence de pullup
 pinMode(intermax,INPUT_PULLUP);// met la broche BPplus en entrée avec validation de la résistence de pullup
 pinMode(intermin,INPUT_PULLUP);// met la broche BPplus en entrée avec validation de la résistence de pullup
 monEcran.begin(16,2); //on initialise le LCD 16x2
 //monEcran.clear(); // on efface l'écran
 pinMode(4,OUTPUT);// commande de la resistance chauffante
 pinMode(5,OUTPUT);// commande des ventilateur pour refroidire piece 

}
//on suppose qu'un appui sur un BP, ou un inter établit un contact entre GND et l'entrée concernée
//et on ne sait pas comment tu as lu la température reelle (mise par defaut a 15)
void loop()
{
  int valcapt = analogRead (capteur);
  float temperature =valcapt/10;
    if(digitalRead(intermax)==0)//inter max etablit un contact avec GND
      {
        delay(200); //on attends la fin des rebonds
        monEcran.setCursor(0,1); 
        monEcran.print(temperature_max);
        if(digitalRead(BPplus)==0)//BPplus etablit un contact avec GND
          {
            delay(200);//on attends la fin des rebonds
            temperature_max++;//on incremente la temperature maxi
          }
    
        if(digitalRead(BPmoins)==0)//BPmoins etablit un contact avec GND
          {
            delay(200);//on attends la fin des rebonds
            temperature_max--;//on decremente la temperature maxi
          }
      }
     if(digitalRead(intermin)==0)//inter mini etablit un contact avec GND
      {
        delay(200); //on attends la fin des rebonds
        monEcran.setCursor(0,1); 
        monEcran.print(temperature_min);
        if(digitalRead(BPplus)==0)//BPplus etablit un contact avec GND
          { 
            delay(200);//on attends la fin des rebonds
            temperature_min++;//on incremente la temperature mini
          }
    
        if(digitalRead(BPmoins)==0)//BPmoins etablit un contact avec GND
          {
            delay(200);//on attends la fin des rebonds
            temperature_min--;//on decremente la temperature mini
          }
      } 

      if(temperature > 20){
        digitalWrite(4,LOW);//on arrete la resistance
        digitalWrite(5,HIGH);//on met en route les ventilo
      }

      if (temperature<10){
        digitalWrite(4,HIGH);
        digitalWrite(5,LOW);
      }
   monEcran.setCursor(0,0);             //colonne 0, ligne 0
   monEcran.print("mini reelle maxi"); 
   monEcran.setCursor(0,1);             //colonne 0, ligne 1
   monEcran.print(temperature_min);     
   monEcran.setCursor(6,1);             //colonne 6, ligne 1
   monEcran.print(temperature);
   monEcran.setCursor(13,1);            //colonne 13,ligne 1
   monEcran.print(temperature_max);
}

Bonjour,

Il ne faut pas que tu essaies de traiter les boutons plus/moins à l’intérieur du test des boutons min/max Il faut positionner un indicateur avec les boutons min/max et ensuite incrémenter/décrémenter avec les boutons plus/moins.