/********************
Arduino generic menu system
control led on/off delays
Rui Azevedo - ruihfazevedo(@rrob@)gmail.com
output: Serial
input: Serial
mcu: nano328p
*/
#include <menu.h>
#include <menuIO/serialOut.h>
#include <menuIO/chainStream.h>
#include <menuIO/serialIn.h>
using namespace Menu;
#define LEDPIN LED_BUILTIN
#define MAX_DEPTH 1
unsigned int timeOn=100;
unsigned int timeOff=900;
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() {
pinMode(LEDPIN, OUTPUT);
Serial.begin(115200);
while(!Serial);
Serial.println("Menu 4.x");
Serial.println("Use keys + - * /");
Serial.println("to control the menu navigation");
}
bool blink(int timeOn,int timeOff) {
return millis()%(unsigned long)(timeOn+timeOff)<(unsigned long)timeOn;
}
void loop() {
nav.poll();
digitalWrite(LEDPIN, blink(timeOn,timeOff));
}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3