bonjour
je suis nouveau et débutant dans l Arduino j'ai crée un menu en suivant un tuto dans le quelle je peux naviguer dans des sous menu. et la je bloque je souhaiterai afficher une variable dans mon menu je vous colle mon code la ou je voudrait que ma variable apparaisse.
je voudrait qu il soit afficher sur mon lcd par exemple
2.1 Tmin....................25
et la je bloc impossible d ajouter ma variable 25
NumMenu[21] = (TypeMenu) {
"2.1 T min"
};
je vous mais mon code complet egalement
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int ventilo = 6;
int sonde = 7;
int relais = 8;
int Tmin = 25;
int Tmax= Tmin + 10;
int unsigned Menu = 0;
int unsigned SousMenu = 0;
double Tempo = millis();
double Tempo2 = 0;
int test1 = 0;
int test2 = 0;
int test3 = 0;
int SELECT = A0;
int UP = A1;
int DOWN = A2;
int LEFT = A3;
int RIGHT = A4;
typedef struct {
String Menu;
}
TypeMenu;
TypeMenu NumMenu[100];
void Initialisation() {
NumMenu[10] = (TypeMenu) {
"1. Home "
};
NumMenu[20] = (TypeMenu) {
"2. Temperature"
};
NumMenu[21] = (TypeMenu) {
"2.1 T min"
};
NumMenu[22] = (TypeMenu) {
"2.2 T max"
};
NumMenu[30] = (TypeMenu) {
"3. Humiditer"
};
NumMenu[31] = (TypeMenu) {
"3.1 H min "
};
NumMenu[32] = (TypeMenu) {
"3.2 H max"
};
NumMenu[40] = (TypeMenu) {
"4. Heure"
};
NumMenu[41] = (TypeMenu) {
"4.1 Reglage"
};
NumMenu[42] = (TypeMenu) {
"4.2 Reglage heure"
};
}
void setup() {
pinMode(ventilo, OUTPUT);
pinMode(sonde, OUTPUT);
pinMode(relais, OUTPUT);
Serial.begin(9600);
Initialisation();
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" * TUTORIEL * ");
lcd.setCursor(0, 1);
lcd.print("IHM 3D");
delay(2000);
pinMode(SELECT, INPUT_PULLUP);
pinMode(UP, INPUT_PULLUP);
pinMode(DOWN, INPUT_PULLUP);
pinMode(LEFT, INPUT_PULLUP);
pinMode(RIGHT, INPUT_PULLUP);
}
void loop() {
Regul();
humi();
heure();
bouton();
}
void bouton() {
if ( millis() > Tempo ) {
if (digitalRead(LEFT) == LOW) { /* Bouton LEFT */
SousMenu++;
Tempo = millis() + 250;
AfficheMenu();
} else if (digitalRead(DOWN) == LOW) { /* Bouton Down */
Menu = Menu - 10;
Tempo = millis() + 250;
SousMenu = 0 ;
AfficheMenu();
} else if (digitalRead(UP) == LOW) { /* Bouton Up */
Menu = Menu + 10;
Tempo = millis() + 250;
SousMenu = 0;
AfficheMenu();
} else if (digitalRead(RIGHT) == LOW) { /* Bouton RIGHT */
SousMenu--;
Tempo = millis() + 250;
AfficheMenu();
} else if (digitalRead(SELECT) == LOW) { /* Bouton Select */
Tempo = millis() + 750;
switch (Menu + SousMenu) {
case 21 :
Serial.print("Temp Min");
case 22 :
Serial.print("Temp Max");
case 31 :
Serial.print("Humid Min");
case 32 :
Serial.print("Temp Min");
case 41 :
Serial.print("reglage");
case 42 :
Serial.print("Heure");
}
}
}
}
void AfficheMenu() {
if (Menu == 0 ) {
Menu = 40;
}
if (Menu == 50 ) {
Menu = 10;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(NumMenu[Menu].Menu);
lcd.setCursor(0, 1);
if ( SousMenu < 0 ) {
SousMenu = 0;
}
if (NumMenu[Menu + SousMenu].Menu == "") {
SousMenu = 0;
}
if (Menu + SousMenu > Menu) {
lcd.print(NumMenu[Menu + SousMenu].Menu);
}
}
void Regul() {
if (test1 > 0) {
if ((digitalRead(test1)) == HIGH) {
Serial.print("action on test1");
}
if ((digitalRead(test1)) == LOW) {
Serial.print("action off test1");
}
}
}
void humi() {
if (test2 > 0) {
if ((digitalRead(test2)) == HIGH) {
Serial.print("action on test2");
}
if ((digitalRead(test2)) == LOW) {
Serial.print("action off test2");
}
}
}
void heure() {
if (test3 > 0) {
if ((digitalRead(test3)) == HIGH) {
Serial.print("action on test3");
}
if ((digitalRead(test3)) == LOW) {
Serial.print("action off test3");
}
}
}