neu-rah / ArduinoMenu

Arduino generic menu/interactivity system
GNU Lesser General Public License v2.1
934 stars 189 forks source link

Need Help with interface to "Analog" 5-button keyboard. #261

Open TerryKing opened 4 years ago

TerryKing commented 4 years ago

Hi Everyone, I used V2 of ArduinoMenu with good success for the controller for a high-power kiln used for "Warm Glass". You can see the code HERE: https://arduinoinfo.mywikis.net/wiki/Project-GlassKilnController-Code I used a 4-line LCD with Partida's library, and a 5-button "analog" keyboard like this one: http://www.yourduino.com/sunshop/index.php?l=product_detail&p=334

I used:

include // define our 5-button Analog keyboard

and wrote the "int getButton()" routine you can see in the code.

I need your help to write a similar interface for that keyboard with the latest ArduinoMenu version. I don't see the equivalent .h ??

This will be the dashboard and parameter setting (Only in STOPPED Mode!) for "The Little Blue Car" which is a much-rebuilt small electric car I built for my kids, now being tested by a 4 year old Grandson. The current Arduino version with hard-coded parameters can be seen here: http://www.internationalschoolphotos.com/BlueCar2019

THANKS! And I look forward to learning more about the newest version.

Regards, Terry King ...In The Woods In Vermont terry@terryking.us

neu-rah commented 4 years ago

Hi @TerryKing One can use the navigation functions to adapt any input method.

example is here: https://github.com/neu-rah/ArduinoMenu/blob/master/examples/codeCtrl/codeCtrl/codeCtrl.ino

basically you handle your input and then call .doNav(...) function on the root navigation object.

here an example of checking some hardware pin to serve as enter

  if (!digitalRead(SEL_BTN)) {
    delay(SOFT_DEBOUNCE_MS);
    while(!digitalRead(SEL_BTN));
    nav.doNav(enterCmd);
    delay(SOFT_DEBOUNCE_MS);
  }

command code are here: https://github.com/neu-rah/ArduinoMenu/blob/master/src/menuBase.h#L89

a command is not just a code, but has a code can be converted into a sinmple command we can use the code as if.

however some commands might need extra info, for example selCmd needs an index of the option to be selected, on that case we use navCmd(selCmd,n)

@TerryKing you are welcome to join us on gitter https://gitter.im/ArduinoMenu/Lobby or post here.