Hi,
My question is how to display generic menu on LCD (5110 Nokia). At the moment I am working on code from examples.
#include <menu.h>
#include <menuIO/serialOut.h>
#include <menuIO/chainStream.h>
#include <menuIO/serialIn.h>
#include <Adafruit_GFX.h> //Nokia 5110 LCD library for graphics
#include <Adafruit_PCD8544.h> //more about Nokia LCD => https://lastminuteengineers.com/nokia-5110-lcd-arduino-tutorial/
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
int pinLcdBL = 9; //pin for LCD backlight (use PWM pin for dimming)
int contrast = 57; //contrast for LCD 0-100
using namespace Menu;
#define LEDPIN LED_BUILTIN
#define MAX_DEPTH 1
unsigned int timeOn=10;
unsigned int timeOff=90;
MENU(mainMenu, "Blink menu", Menu::doNothing, Menu::noEvent, Menu::wrapStyle
,FIELD(timeOn,"On","ms",0,1000,10,1, Menu::doNothing, Menu::noEvent, Menu::noStyle)
,FIELD(timeOff,"Off","ms",0,10000,10,1,Menu::doNothing, Menu::noEvent, Menu::noStyle)
,EXIT("<Back")
);
serialIn serial(Serial);
MENU_INPUTS(in,&serial);
MENU_OUTPUTS(out,MAX_DEPTH
,SERIAL_OUT(Serial)
,NONE//must have 2 items at least
);
NAVROOT(nav,mainMenu,MAX_DEPTH,in,out);
void setup() {
display.begin(); //Initialize Display
display.setContrast(contrast); // change the LCD contrast
display.clearDisplay(); // Clear the display buffer.
display.display();
//display some text on LCD
display.println("Menu 4.x");
display.println("Use keys + - * /");
display.println("to control the menu navigation");
display.display();
pinMode(LEDPIN, OUTPUT);
Serial.begin(9600);
while(!Serial);
}
bool blink(int timeOn,int timeOff) {return millis()%(unsigned long)(timeOn+timeOff)<(unsigned long)timeOn;}
void loop() {
nav.poll();
digitalWrite(LEDPIN, blink(timeOn,timeOff));
}
As far as I was able to figure it out a part of the code to display text on LCD should be (plus additional stuff like size, cursor position etc.):
display.println("text");
display.display();
It won't work without display.display();