این برنامه رو ببین
3 صفحه منو داره
اگه وارد صفحه 2 و 3 شد اما 5 ثانیه هیچ اکشنی انجام نشد برمیگرده به صفحه اول :
کد:
#include <LCD_GFX.h>
#include <NOKIA5110.h>
NOKIA5110 display = NOKIA5110(7, 6, 5, 4, 3);
int mpage = 0;
int flag8 = 0;
int oldflag8 = 0;
int counter = 0;
long long previousMillis = 0;
unsigned long currentMillis = 0;
void setup() {
Serial.begin(9600);
display.begin();
display.setContrast(60);
display.display(); // show splashscreen
delay(2000);
display.clearDisplay(); // clears the screen and buffer
pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
Serial.println("End of setup");
}
void loop() {
keyAction();
}
void showData(String data) {
display.println(data); //Write a Text
display.setTextSize(1);
display.display();
display.clearDisplay();
display.setCursor(0, 15);
display.println("Counter="); //Write a Text
display.setTextSize(1);
display.display();
display.clearDisplay();
display.setCursor(50, 15);
display.println(counter); //Write a Text
display.setTextSize(1);
display.display();
display.clearDisplay();
}
void keyAction()
{
currentMillis = millis();
if ( digitalRead(8) == LOW ) {
previousMillis = currentMillis;
flag8++;
delay(200);
}
if ( digitalRead(9) == LOW ) {
previousMillis = currentMillis;
counter++;
delay(200);
}
menuProcess() ;
menuTimeProcess() ;
}
void menuProcess() {
if ( flag8 == 0) {
Serial.println("first");
showData("Main menu");
oldflag8 = flag8;
}
if ( flag8 == 1) {
Serial.println("second");
showData("submenu1");
}
if ( flag8 == 2) {
Serial.println("Third");
showData("submenu2");
}
if ( flag8 == 3) {
flag8 = 0;
}
}
void menuTimeProcess() {
long diff = currentMillis - previousMillis;
if ( diff > 5000 ) {
flag8 = 0;
}
}