This is a project I worked on briefly that involved interacting with hardware using an LCD character display and a thumbstick. The display was used to show the status of the hardware, change preferences, and store preferences in the Arduino's non-volatile memory. Whilst the hardware aspect of the project is likely not of interest to anyone, the creation of the menu system on the LCD was implemented using a C++ class that should be flexible and useful enough for other's to use. The "tastulator" project in the repository should serve as a useful example of how the system works. Once it's up and running, you can strip out the tastulator stuff and just keep the LCDmenu class.