Menu Arduino

olá a todos, recentemente, comecei um projeto no Arduino, que consiste, em utilizar um LCD Keypad Shield, no qual desenvolvi um menu, e fiz a integração de um sensor neste menu, sendo este sensor o sct-013 20a, não invasivo, quando fui verificar, os resultados, ele funciona, mas quando entro na parte de medições, que seria o "sub menu", ele não atualiza os dados do sensor que seria de amperagem e potência, e ele só atualiza quando eu aperto o select do LCD Keypad Shield, sendo que este deveria atualizar os dados automaticamente, e depois quando apertarmos o botão left voltasse o menu de origem, gostaria de ajudada, por favor,
Agradeço desde já

Programação :

#include <LiquidCrystal.h> // Inclui biblioteca "LiquidCristal.h"
#include "EmonLib.h"

EnergyMonitor emon1;

LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Define Pinos do Display

int Menu = 0; // Inicializa valores para Menu
int estado = 0; // Inicializa valores para estado
int rede = 220.0;
int pino_sct = 1;

void setup() {
lcd.begin(16, 2); // Estabelece caracteres do display
clearPrintTitle();
}

void loop() {
MenuPrincipal();
}

void MenuPrincipal() {
int ValEstado = 0; // Inicializa valores para ValEstado
int x = analogRead (0);
lcd.setCursor(0,0); // Posiciona Cursor

if (x < 80) { // Define valores máximos para UP em ValEstado = 1
}
else if (x < 200) {
ValEstado = 1;
}
else if (x < 400){ // Define valores máximos para Down em ValEstado = 2
ValEstado = 2;
}
else if (x < 600){ // Define ação nula para Left
ValEstado = 4;
}
else if (x < 800){ // Define valores máximos para Select em ValEstado = 3
ValEstado = 3;
}

if (Menu < 0 || Menu > 4) {
Menu = 0;
}

if (ValEstado != estado) {
if (ValEstado == 1) {
Menu = Menu - 1;
displayMenu(Menu);
} else if (ValEstado == 2) {
Menu = Menu + 1;
displayMenu(Menu);
} else if (ValEstado == 3) {
selectMenu(Menu);
}
else if (ValEstado == 4) {
displayMenu(Menu);
}
estado = ValEstado;
}
delay(5);
}

void displayMenu(int x) {
switch (x) {
case 1:
clearPrintTitle();
lcd.print ("--> Medicoes <--"); // Imprime na tela a opção do Menu
break;
case 2:
clearPrintTitle();
lcd.print ("--> Calculos <--"); // Imprime na tela a opção do Menu
break;
case 3:
clearPrintTitle();
lcd.print ("---> Item 3 <---"); // Imprime na tela a opção do Menu
break;
case 4:
clearPrintTitle();
lcd.print ("---> Item 4 <---"); // Imprime na tela a opção do Menu
break;
}
}

void clearPrintTitle() {
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Fisica ");
lcd.setCursor(0,1);
}

void selectMenu(int x) {
switch (x) {
case 1:
clearPrintTitle();
sensor(); // Imprime na tela opção escolhida
break;
case 2:
clearPrintTitle();
lcd.print ("Selec. Item 2"); // Imprime na tela opção escolhida
break;
case 3:
clearPrintTitle();
lcd.print ("Selec. Item 3"); // Imprime na tela opção escolhida
break;
case 4:
clearPrintTitle();
lcd.print ("Selec. Item 4"); // Imprime na tela opção escolhida
break;
}
}

void sensor () {

lcd.begin(16, 2);
lcd.clear();
Serial.begin(9600);
//Pino, calibracao - Cur Const= Ratio/BurdenR. 1800/62 = 29.
emon1.current(pino_sct, 29);
//Informacoes iniciais display
lcd.setCursor(0,0);
lcd.print("Corr.(A):");
lcd.setCursor(0,1);
lcd.print("Pot. (W):");
double Irms = emon1.calcIrms(1480);
//Mostra o valor da corrente
Serial.print("Corrente : ");
Serial.print(Irms); // Irms
lcd.setCursor(10,0);
lcd.print(Irms);

//Calcula e mostra o valor da potencia
Serial.print(" Potencia : ");
Serial.println(Irmsrede);
lcd.setCursor(10,1);
lcd.print(" ");
lcd.setCursor(10,1);
lcd.print(Irms
rede,1);

delay(1000);
}

Ninguem te vai ajudar se vc nao edita seu post e publica seu codigo como tem que publicar.

Selecte o codigo e logo clike em </>