Currently I am working on a project that includes using a LCD which is to be controlled by a Rotary Encoder.
This is the data sheet of the Rotary Encoder that I am using:
The LCD has 20 columns and 4 rows.
I have been able to build a program that displays in the LCD the "count" when the Knob is turned left and right.
Now, I want to create a Menu with other sub menus which would be controlled by the Rotary Encoder.
I saw different examples in the forum but they were related to using the Menus with Pushbuttons.
Is there a library that already exists for something like this? Or what is the approach I should have regarding the issue?
Thank you in advance!
Or what is the approach I should have regarding the issue?
First you define EXACTLY what you want to do. "using a LCD which is to be controlled by a Rotary Encoder' is too vague to implement in code. What, EXACTLY, should the rotary encoder control? Brightness? Refresh rate? Some value be displayed? The distance to Mars?
I have not personally used a rotary encoder for any projects so this may not be much use.
But, this link may help you - Storm LED Controller | CORALUX
It is an Arduino based LED light controller but it does use a rotary encoder to navigate a menu structure - the sketch is available for download and it might provide some guidance on how to start your own sketch.
My dosing computer has an encoder driven menu. You are free to look, fork, or borrow anything you want. Maybe it can give you some ideas.
The files you're mostly interested in are DoseInterface.cpp and DoseMenu.cpp.
Thank you all for your kind responses.
@Delta_G and @Magicj I shall look up the pages you have suggested and I hope they shall be helpful.
@PaulS The rotary encoder should just be able to scroll through the menus up and down, select one of the options through the use of the PushButton that the Rotary Encoder has.
Since the LCD Display has 4 Rows, I thought of using the fourth row to let the user know in which option of the menu he is currently in
The same thing with the submenus, be able to scroll through them and select via the Rotary Encoder button.
The purpose of the task is mainly to display values.
Thank you and looking forward to your feedback