Bueno estoy haciendo un proyecto de universidad que en si es hacer un sistema de altos flujos como un estilo ventilador ahorita solo me estoy dedicando a crear lo que es el menu voy a tener un menu que enseñe mi temperatura constante, y me enseñe el FiO2 y FlowRate pondre dos botones debajo de mi display debajo de cada opcion y bueno quiero que cuando apreto mi boton cambie mi display para hacer ajustes y si apreto exit pues regreso a mi menu
logre crear uno que me enseñe el mensaje de bienvenida y luego mi menu y cuando le doy a un boton me cambia el display y se queda ahi pero no logro salir de ahi mi boton exit no hace nada
#include <LiquidCrystal.h>
const int buttonA = 8; //FiO2
const int buttonB = 9; //FlowRate
const int buttonC = 10; //Increment value
const int buttonD = 12; // Decrease Value
const int Exit = 11; //Exit
const int On = 13; //Starts everything off
int buttonNewA;//buttonStateA
int buttonNewB;
int buttonNewC;
int buttonNewD;
int ExitVal;
int OnVal;
int modo;
int salir = 0;
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() { // put your setup code here, to run once:
pinMode(buttonA, INPUT_PULLUP);
pinMode(buttonB, INPUT_PULLUP);
pinMode(buttonC, INPUT_PULLUP);
pinMode(buttonD, INPUT_PULLUP);
pinMode(Exit, INPUT_PULLUP);
pinMode(On, INPUT_PULLUP);
Serial.begin(9600);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Welcome to your");
lcd.setCursor(3,1);
lcd.print("Ventilator");
delay(3000);
}
void Menu(){
float voltageT = analogRead(A0) * 0.004882814;
float degreesC = (voltageT - 0.5) * 100.0;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Menu Temp= ");
lcd.setCursor(11,0);
lcd.print(degreesC);
lcd.setCursor(0,1);
lcd.print("FiO2 // FlowRate");
while(buttonNewA == HIGH && buttonNewB == HIGH && buttonNewC == HIGH){
buttonNewA = digitalRead(buttonA);
buttonNewB = digitalRead(buttonB);
buttonNewC = digitalRead(buttonC);
}
}
void loop() { // put your main code here, to run repeatedly:
buttonNewA = digitalRead(buttonA);
buttonNewB = digitalRead(buttonB);
buttonNewC = digitalRead(buttonC);
buttonNewD = digitalRead(buttonD);
ExitVal = digitalRead(Exit);
OnVal = digitalRead(On);
Menu();
if(buttonNewA == LOW){
modo = 0;
}
if(buttonNewB == LOW){
modo = 1;
}
if(buttonNewC == LOW){
modo = 2;
}
if(ExitVal == LOW){
Menu();
}
switch(modo){
case 0:{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("FiO2= ");
salir = 0;
while(salir == 0){
buttonNewA = digitalRead(buttonA);
}
break;
}
case 1:{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("FlowRate= ");
salir = 0;
while(salir == 0){
buttonNewB = digitalRead(buttonB);
if(buttonNewB == LOW){
salir = 1;
}
}
break;
}
case 2:{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ON ");
delay(5000);
break;
}
}
}
Tengo que añadirle despues un boton para que active todo lo que hice pero alguien me puede ayudar para que mi boton de exit me devuelva a mi display de menu