เมนูทั่วไป/ระบบการโต้ตอบสำหรับกรอบ Arduino
ระบบการนำทางที่ขับเคลื่อนด้วยรหัสอัตโนมัติหรือรหัสผู้ใช้เต็มรูปแบบ ด้วยระบบนี้คุณสามารถกำหนดเมนูเมนูเมนูย่อยฟิลด์อินพุตและวัตถุการวนซ้ำอื่น ๆ ที่เกี่ยวข้องกับอินพุต/เอาต์พุตทั้งหมดและสามารถโทรหาตัวจัดการที่ผู้ใช้กำหนดเป็นผลมาจากการทำซ้ำของผู้ใช้ ฟังก์ชั่นผู้ใช้สามารถดำเนินการเป็นแอ็คชั่นเดียวที่เรียกว่าคลิก/Enter หรือเป็นฟังก์ชั่นที่ขับเคลื่อนด้วยเหตุการณ์ที่ตอบสนองต่อการมุ่งเน้นเข้า/ออกหรือป้อน/ESC ระบบได้รับการออกแบบให้เป็นระบบการสำรวจที่ไม่ปิดกั้นทำให้งานพร้อมกันทำงาน ทางเลือกระบบสามารถทำงานในโหมดกึ่งอัตโนมัติโดยออกคำสั่งการนำทางจากรหัสผู้ใช้
ดูวิกิ
# 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= 10 ;
unsigned int timeOff= 90 ;
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));
}ปลั๊กอินเป็นชุดเมนูโดยเฉพาะหรือพฤติกรรมที่กำหนดเองและ/หรือการวาด
ปลั๊กอินบางตัวอาจเป็นแพลตฟอร์มที่เฉพาะเจาะจงหรือต้องการฮาร์ดแวร์
แอปพลิเคชัน/บทเรียนบางอย่างที่ใช้ Arduinomenu, (เวอร์ชันปัจจุบันและรุ่นเก่า)
คุณมีอีกไหม? โปรดแจ้งให้เราทราบเกี่ยวกับ Gitter หรือส่งอีเมลถึงฉัน
สคริปต์ Arduino สำหรับเซ็นเซอร์อุณหภูมิและตัวจับเวลา ช่วยให้เปิดเครื่องทำความร้อนและแสงตามกำหนดเวลา
https://github.com/vikulin/lcd_lat
Project-Glasskilncontroller เตาเผาไฟฟ้าเพื่อทำ "แก้วอุ่น"
https://arduinoinfo.mywikis.net/wiki/project-glasskilncontroller
Arduinomenu Demo ttgo t-display การสอนที่ยอดเยี่ยม
https://sites.google.com/site/jmaathuis/arduino/lilygo-tto-t-display-esp32/arduinomenu-demo-ttgo-t-display
การสอน MVC-Interface Arduinomenu
https://zaragozamakerspace.com/index.php/courses/mvc-interface/
เครื่องตัดเทปทองแดงอัตโนมัติ Arduino
https://www.thingiverse.com/thing:3557719
การโหลดมาตรวัดระดับกระโดดผงและการเตือนภัย
https://github.com/nathandarnell/reloading-powder-hopper-level-gauge-and-alarm
Servobox Servo Tester & Monitor
https://github.com/jarkman/servobox
Panobot หุ่นยนต์พาโนรามา
https://github.com/robertfach/panobot
MIDI Sequencer MIDI Performance ไมโครคอนโทรลเลอร์ Teensy-Midi-Looper
https://github.com/newdigate/teensy-midi-looper
AmplifierControl ขั้นตอนการเปิด/ปิดเครื่องขยายเสียงและปิดการถอดรหัสของ Kenwood
https://github.com/petrlab/amplifierControl
Spna an Arduino Port Network Analyzer (SPNA)
https://github.com/tczerwonka/spna
LRDUINO ในรถยนต์หลายระบบเกจ - STM32, SSD1306, MAX31856, ADXL345, ELM327
https://github.com/bennehboy/lrduino
LRDUINOTD5 ในรถยนต์หลายระบบเกจ - STM32, SSD1306, MAX31856, ADXL345, L9637D, TD5 ECU
https://github.com/bennehboy/lrduinotd5
Thom-Radio Internet Radio Build
https://github.com/evfool/thom-radio
midi_drums 7 Chanel Piezo Midi Drum Box พร้อมเมนูบน LCD
https://github.com/sobollion/midi_drums
Balancingrobot
https://github.com/slbarker/balancingrobot
เครื่องวัดน้ำ Swatili 50L พร้อมการควบคุมวาล์ว, LCD, ปุ่ม, RTC และเครื่องอ่านพัลส์เอฟเฟกต์ฮอลล์เอฟเฟกต์
https://github.com/daniel-leonard-robinson/swatili
Fielduino Hardware Pwm Generator โดยใช้เมนูเพื่อเลือกความถี่และ Dutty
https://github.com/neu-rah/fielduino
แนวคิด Arduinomultidesktop Multidesktop สำหรับอุปกรณ์ฮาร์ดแวร์
https://github.com/dontsovcmc/arduinomultidesktop
สมาร์ทกรีนเฮาส์
https://github.com/dontsovcmc/smartgreenhouse/tree/master/src
Console.Arduino Portable Serial Debug Console Project โดยใช้ ILI9341
https://github.com/malachib/console.arduino
Atmel AVR, Atmel Sam, Espressif 32, Espressif 8266, Intel Arc32, Microchip PIC32, Nordic NRF51, NRF52 NRF52, ST STM32, Teensy, Ti MSP430
Arduino IDE - ติดตั้งโดยใช้ Library Manager (Arduinomenu Library - Rui Azevedo)
platformio - http://platformio.org/lib/show/1468/arduinomenu%20Library
เป็นลำดับ
https://www.arduino.cc/en/reference/serial
ห้องสมุด LCD มาตรฐาน Arduino
https://www.arduino.cc/en/reference/liquidcrystal
LCDS ของ M Malpartida
https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/home
ไดรเวอร์ Matthias Hertel PCF8574
https://github.com/mathertel/liquidcrystal_pcf8574
อุปกรณ์ Arduino TFT
https://www.arduino.cc/en/guide/tft
SSD1306ASCII
https://github.com/greiman/ssd1306ascii
tft_espi
กราฟิกและฟอนต์ที่เข้ากันได้กับ Arduino IDE สำหรับ ESP8266 และ ESP32
https://github.com/bodmer/tft_espi
ไดรเวอร์ TFT_HX8357
https://github.com/bodmer/tft_hx8357
อุปกรณ์ GFX ของ Adafruit
https://github.com/adafruit/adafruit-gfx-library
อุปกรณ์ UTFT
http://www.rinkydinkelectronics.com/library.php?id=51
อุปกรณ์ U8GLIB
https://github.com/olikraus/u8glib_arduino
SSD1306, 128x64, SSD1306, 128x32, SSD1306, 64x48, SSD1309, 128x64, SSD1322, 256x64, SSD1325, 128x64, SSD1327, 96x696 UC1608, 240x64, UC1610, 160x104, UC1611, 240x64, UC1611, 240x128, UC1701, 128x64, UC1701, 102x64, ST7565, 128x64 192x32, ST7920, 202x32, LD7032, 60x32, PCD8544, 84x48, TLS8204, 84x48, PCF8812, 96x65, KS0108, 128x64, T6963, 128x64 T6963, 240x128, SBN1661, 122x32, LC7981, 160x80, LC7981, 240x64, LC7981, 240x128, LC7981, 320x64, SSD1351, HT1632
อุปกรณ์ U8G2 และ U8X8
https://github.com/olikraus/u8g2_arduino
SSD1305 128X32_NONAME, SSD1305 128X32_NONAME, SSD1305 128x64_AdaFruit, SSD1305 128x64_AdaFruit, SSD1306 128X64_NONAME SSD1306 128X64_NONAME, SSD1306 128X64_VCOMH0, SSD1306 128X64_ALT0, SH1106 128X64_NONAME, SH1106 128X64_VCOMH0, SH1106 128X64_WINSTAR 128x64_vcomh0, sh1106 128x64_winstar, sh1106 72x40_wise, sh1106 72x40_wise, sh1106 64x32, sh1106 64x32, sh1107 64x128, Sh1107 64x128, Sh1107 SH1107 128x128, SH1107 128x128, SH1122 256x64, SH1122 256x64, SSD1306 128x32_univision, SSD1306 128x32_univision, SSD1306 64x48_er, SSD1306 64 48X64_WINSTAR, SSD1306 48X64_WINSTAR, SSD1306 64X32_NONAME, SSD1306 64X32_1F, SSD1306 64X32_NONAME, SSD1306 64X32_1F SSD1309 128X64_NONAME2, SSD1309 128X64_NONAME2, SSD1309 128X64_NONAME0, SSD1309 128X64_NONAME0, SSD1325 NHD_128X64, SSD1325 ER_256X32, SSD1326 ER_256X32, SSD1327 SEEED_96X96, SSD1327 SEEED_96X96, SSD1327 MIDAS_128X128, SSD1327 MIDAS_128X128 60X32, LD7032 60X32, ST7920 192x32, ST7920 192x32, ST7920 192x32, ST7920 128x64, ST7920 128x64, ST7920 128x64, LS013B7DH03 128x128 MINI12864, PCD8544 84X48, PCF8812 96X65, HX1230 96X68, UC1604 JLX19264, UC1604 JLX19264, UC1608 ERC24064 UC1608 ERC240120, UC1608 240x128, UC1608 240x128, UC1638 160x128, UC1610 EA_DOGXL160, UC1610 EA_DOGXL160 EA_DOGXL240, UC1611 EA_DOGXL240, UC1611 EW50850, UC1611 EW50850, ST7565 EA_DOGM128, ST7565 64128N, ST7565 ZOLEN_128X64 ST7565 ERC12864, ST7565 NHD_C12864, ST7565 JLX12864, ST7565 NHD_C12832, UC1601 128X32, UC1601 128X32 JLX12864, ST7567 Enh_DG128064, ST7567 Enh_DG128064I, ST7588 JLX12864, ST7588 JLX12864, ST75256 JLX256128 ST75256 JLX256160, ST75256 JLX240160, ST75256 JLX240160, ST75256 JLX25664, ST75256 JLX25664, ST75256 JLX172104 TG12864R, IST3020 ERC19264, SBN1661 122x32, SED1520 122x32, KS0108 128x64, KS0108 ERM19264, LC7981 160X80 T6963 240x64, T6963 256x64, T6963 128x64, SSD1322 NHD_256X64, SSD1322 NHD_128X64, SSD1606 172X72 296x128, IL3820 V2_296X128, SED1330 240x128, RA8835 NHD_240X128, RA8835 320X240, MAX7219 32X8, A2Printer 384x240
อุปกรณ์ UCGLIB
https://github.com/olikraus/ucglib_arduino
ST7735, ILI9163, ILI9325, ILI9341, ILI9486, LD50T6160, PCF8833, SEPS225, SSD1331, SSD1351, HX8352C
เทอร์มินัล ANSI อนุกรม
https://github.com/neu-rah/ansistream
Grove RGB LCD I2C 2X16
https://wiki.seeedstudio.com/grove-lcd_rgb_backlight/
เว็บเบราว์เซอร์
เว็บ json
websockets
หมายเหตุ: ESP8266 จะต้องใช้ไลบรารีสตรีมมิ่งแม้ว่าจะไม่ได้ใช้เว็บอินเตอร์เฟสพร้อมกับ #include <menuIO/esp8266Out.h>
ขึ้นอยู่กับไดรเวอร์เอาต์พุตของคุณอาจเป็นหนึ่งใน (สามารถติดตั้งทั้งสองได้)
serial https://www.arduino.cc/en/reference/serial
quadencoder - เครื่องเข้ารหัสทั่วไปโดยใช้ PCINT (Builtin)
ปุ่ม - คีย์บอร์ดดิจิตอลแบบง่าย (Builtin)
แป้นพิมพ์ทั่วไป (ไม่มี PCINT) - กำหนดค่าได้สำหรับคีย์บอร์ดดิจิตอลหรือแบบอะนาล็อก (Builtin)
จอยสติ๊กแบบอะนาล็อก
clickencoder https://github.com/0xpit/encoder
ปุ่มกดเมทริกซ์
http://playground.arduino.cc/code/keypad https://github.com/nullkraft/keypad
PCF8574 Keypad Matrix ที่ใช้ I2C https://github.com/whatnick/i2ckeypad
ผู้ใช้กำหนดอินพุตการเรียกเมนูนำทาง API
เว็บเบราว์เซอร์ (ทดลอง) เมื่อใช้อุปกรณ์ ESP
ห้องสมุดนี้ขึ้นอยู่กับไลบรารีต่อไปนี้:
อาจจำเป็นต้องใช้ประเภทของอินพุตหรือเอาต์พุตทั้งนี้ขึ้นอยู่กับประเภทของอินพุตหรือเอาต์พุต โดยพื้นฐานแล้วห้องสมุดใด ๆ ที่จำเป็นสำหรับอุปกรณ์ของคุณ
ข้อมูลเพิ่มเติมที่
หน้า wiki ปัญหาหรือ r-site.net
โปรดรายงานข้อผิดพลาดปัญหาหรือแนวคิดการปรับปรุงฉันได้ตอบรับข้อเสนอแนะ ขอบคุณ.
ในรายงานปัญหาโปรดระบุไดรเวอร์หรืออุปกรณ์เอาต์พุตหรืออุปกรณ์รวมถึงแพลตฟอร์มเป้าหมาย
ตอนนี้ Encoder ต้องการเริ่มต้น () ที่จะเรียกใช้ในการตั้งค่า (2.x)
อินพุตถูกอ่านจากสตรีมทั่วไปรวมถึงสตรีมง่ายๆสำหรับตัวเข้ารหัสและคีย์บอร์ด
การบรรจุสตรีมหลายรายการสำหรับอินพุตเพื่อผสมสตรีมตัวเข้ารหัสด้วยแป้นพิมพ์เข้ารหัส (โดยปกติจะเป็น 1 หรือ 2 ปุ่ม)
ตัวเลือก Invertfieldkeys ถูกลบออกตอนนี้ Invertion ได้รับการสนับสนุนโดยวัตถุเมนูเฉพาะ
การถดถอย: ยังคงต้องใช้เพื่อลดกรณีอินพุตง่าย ๆ
NumValueInput ย้ายไปที่วัตถุ Menuin
ตัวเลือกพิเศษ ของ Navroot ก่อนหน้านี้เกี่ยวกับวัตถุ Global Options
bool nav2D= false ; // not used
bool canExit= true ; // v4.0 moved from global options
bool useUpdateEvent= false ; // if false, use enterEvent when field value is changed.
idx_t inputBurst= 1 ; // limit of inputs that can be processed before output อนุกรมไม่ได้รับการยอมรับว่าเป็นอินพุตโดยตรงใช้ serialin แทน
ฟังก์ชั่น Printto Member เปลี่ยนจาก:
Used printTo (navRoot&, bool ,menuOut&, idx_t , idx_t );ถึง
Used printTo (navRoot&, bool ,menuOut&, idx_t , idx_t , idx_t = 0 );สิ่งนี้ควรส่งผลกระทบต่อส่วนประกอบที่กำหนดเองเท่านั้น
อินพุตมาจากเมนูคลาสที่ได้มาจากสตรีม แต่รวมถึงฟังก์ชั่นการตั้งค่าสถานะสำหรับการผกผันของแกนฟิลด์ต่อคลาสอินพุต
FALSE = MOUNTE MENU
true = เมนูออก