Arduino Uno menymall (2 / 3 steg)
Steg 2: Ändra programmet
Programmet fäst är skriven med de grundläggande Arduino bibliotek av Wire.h och LiquidCrystal.h så det borde vara inget annat för dig att hämta förutom detta program.
En av de saker som du måste ändra är utbudet av menyn Artikelnamn på rad 27 och programmering innehållet för varje undermeny. Jag har börjat med 10 möjliga menyalternativ i programmet. Om du vill ändra 10 eller färre bara linje 27 att skapa din huvudsaklig menyn struktur.
Sträng menuItems [] = {"Punkt 1", "Artikel 2", "Punkt 3", "Punkt 4", "Punkt 5", "Punkt 6"};
Du kan till exempel göra färre objekt:
Sträng menuItems [] = {"avstånd", "Tid", "Repetera", "Riktning", "START", "Om"};
Eller kan du lägga till mer (upp till 10 förstås):
Sträng menuItems [] = {"avstånd", "Fördröjning", "Slumpmässigt", "Tid", "Repetera", "Riktning", "START", "Om"};
Bortom 10 objekt måste du lägga till ytterligare "fall" i avsnittet "switch/case" började en rad 167. Du måste också lägga till ytterligare menuItemX [] (där X är 11, 12, 13, etc.) upphäva funktioner längst ned i programmet.
När du har skapat menystrukturen du är det dags att skapa innehåll för var och en av dessa undermenyer. Den första menuItem void-funktionen börjar på rad 275. Jag lägger i några standardkod att skriva ut "Sub-menyn X" för varje menyobjekt samt en kod för att vänta på en bakåt-knapp vara intryckt. Nedan som ett exempel på vad du kan göra i submenyn. Detta är önskad undermeny som jag använder för att ändra och lagra variabeln "savedDistance". Den upp och ner knappar används för att markera avstånd och när ryggen trycks det dumpar tillbaka till huvudmenyn.
void menuItem1() {/ / funktion körs när du väljer 1: a artikeln från huvudmenyn
int activeButton = 0;
LCD.Clear();
lcd.setCursor (0, 1);
drawInstructions();
lcd.setCursor (0, 0);
LCD.Print ("avstånd:");
LCD.Print(savedDistance);
LCD.Print ("i");
medan (activeButton == 0) {
int knappen;
readKey = analogRead(0);
om (readKey < 790) {
Delay(100);
readKey = analogRead(0);
}
knappen = evaluateButton(readKey);
Växla (knappen) {
fall 2:
knappen = 0;
savedDistance = savedDistance + 1.
savedDistance = constrain(savedDistance,0,36);
lcd.setCursor(10,0);
LCD.Print("");
lcd.setCursor(10,0);
LCD.Print(savedDistance);
LCD.Print ("i");
bryta;
fall 3:
knappen = 0;
savedDistance = savedDistance - 1;
savedDistance = constrain(savedDistance,0,36);
lcd.setCursor(10,0);
LCD.Print("");
lcd.setCursor(10,0);
LCD.Print(savedDistance);
LCD.Print ("i");
bryta;
fall 4: / / detta fall kommer att köra om "tillbaka"-knappen trycks
knappen = 0;
LCD.Clear();
lcd.setCursor(2,0);
LCD.Print ("--värden--");
lcd.setCursor(2,1);
LCD.Print ("--lagrade--");
Delay(1500);
activeButton = 1;
bryta;
}
}
}
Den här funktionen genererar avstånd menyn som visas på bilden ovan.