Stap 2: Het programma wijzigen
Het programma gekoppeld is geschreven met de fundamentele Arduino bibliotheken van Wire.h en LiquidCrystal.h, dus er niets anders u moet kunt downloaden naast dit programma.
Een van de dingen die je moet wijzigen is de array van menu itemnamen op regel 27 en de programmering inhoud voor elk submenu. Ik ben begonnen met 10 mogelijk menu-items in het programma. Als u wilt dat wijzigen 10 of minder enkel lijn 27 om uw hoofdmenu-structuur te creëren.
String menuItems[] = {"ITEM 1", "ITEM 2", "ITEM 3", "ITEM 4", "ITEM 5", "ITEM 6"};
Bijvoorbeeld, zou kunnen je doen minder items:
String menuItems[] = {"DISTANCE", "TIME", "REPEAT", "DIRECTION", "START", "ABOUT"};
Of u kunt meer (maximaal 10 natuurlijk):
String menuItems[] = {"DISTANCE", "DELAY", "RANDOMIZE", "TIME", "REPEAT", "DIRECTION", "START", "ABOUT"};
Dan 10 items hebt toe te voegen extra "gevallen" aan de "switch/case" sectie die begint op lijn 167. Je hebt ook om toe te voegen extra menuItemX [] (waar X 11, 12, 13, etc.) vervallen van functies aan de onderkant van het programma.
Nadat u de menustructuur hebt gemaakt wilt u is het tijd om de inhoud voor elke één van die sub-menu's maken. De eerste menuItem nietig functie begint op lijn 275. Ik heb in sommige standaardcode te drukken 'Sub Menu X' voor elk menu-item evenals een code om te wachten op een terug-knop worden ingedrukt. Hieronder als voorbeeld van wat je kan doen in het submenu. Dit is de sub-spijskaart die mij ben using te wijzigen en opslaan van de variabele "savedDistance". De omhoog en omlaag knoppen worden gebruikt om de afstand en wanneer terug wordt gedrukt dumpt het terug naar het hoofdmenu.
void menuItem1() { // Function executes when you select the 1st item from main menu int activeButton = 0; lcd.clear(); lcd.setCursor(0, 1); drawInstructions(); lcd.setCursor(0, 0); lcd.print("DISTANCE: "); lcd.print(savedDistance); lcd.print(" in"); while (activeButton == 0) { int button; readKey = analogRead(0); if (readKey < 790) { delay(100); readKey = analogRead(0); } button = evaluateButton(readKey); switch (button) { case 2: button = 0; savedDistance = savedDistance + 1; savedDistance = constrain(savedDistance,0,36); lcd.setCursor(10,0); lcd.print(" "); lcd.setCursor(10,0); lcd.print(savedDistance); lcd.print(" in"); break; case 3: button = 0; savedDistance = savedDistance - 1; savedDistance = constrain(savedDistance,0,36); lcd.setCursor(10,0); lcd.print(" "); lcd.setCursor(10,0); lcd.print(savedDistance); lcd.print(" in"); break; case 4: // This case will execute if the "back" button is pressed button = 0; lcd.clear(); lcd.setCursor(2,0); lcd.print("-- VALUES --"); lcd.setCursor(2,1); lcd.print("-- STORED --"); delay(1500); activeButton = 1; break; } } }
Deze functie genereert de afstand menu weergegeven in de afbeelding hierboven.