- Notifications
You must be signed in to change notification settings - Fork3
dontsovcmc/ArduinoMultiDesktop
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
MultiDesktop little library for easy buttons + screen coding.
I usehttps://github.com/neu-rah/ArduinoMenu for button support and for Menu printing.
The first example with control through Serial:
//We have 2 'buttons' for actions. They are characters readed from Serial, or push buttons of ArduinoMenu library.int8_t codes[] = { '+' , '-' };// The 3rd button - button to change desktopMultiDesktop<2> multi_desktop( '*' , codes);// Create desktopvoid show_1_screen() { /* show smth */ }void up() { /*do smth by press '+' */ }void down() { /*do smth by press '-' */ }// Callback list size == 2 !func desktop1cb[] = { &up, &down };Desktop<2> mainDesktop(&show_1_screen, desktop1cb); // Create another desktopvoid show_2_screen() { /* show smth 2 */ }void led_button() { /* turn led */ }// If you don't want to use some buttons, write 0 !func desktop2cb[] = { &led_button, 0 };Desktop<2> secondDesktop(&show_2_screen, desktop2cb);
Add desktop to MultiDesktop in setup function:
multi_desktop.add_desktop(&mainDesktop);multi_desktop.add_desktop(&secondDesktop);multi_desktop.show();
Enjoy:
void loop() {if (Serial.available()) { char ch = Serial.read();multi_desktop.button_pressed(ch);multi_desktop.show(); }delay(1);}
See examples in source folder:
- serial_2leds_2codes.cpp
- Input '+' '*' from Serial, 2 desktops, 1 actions on each desktop : toggle own LED
- serial_3codes.cpp
- Input '+' '-' '*' from Serial, 3 desktops, 1-2 actions: print smth
- serial_button_3codes.cpp
- Input '+' '-' '*' from Serial or 3 buttons, 3 desktops, 1-2 actions: print smth
- serial_button_led_menu_3codes.cpp
Input '+' '-' '*' from Serial or 3 buttons:
Desktop 1: message
Desktop 2: toggle LED
Desktop 3: start menu
Menu: toggle LED