Arduino Anstieg Stück 15 Joystick OLED-Multi-Level-Menü

Joystick OLED Multi-Level-Menü

Da mehr und mehr Bedarf an Mensch-Computer-Interaktion, Information eingebettete Geräte mit Bildschirmen benötigen mehr und mehr, mehr in der Tiefe mit der verschiedenen Menütasteneingabe, verschiedenen Schaltvorgänge zu zeigen. Wie praktisch Management Umschaltvorgang zwischen verschiedenen Menüs oder? Benpian Multi-Level-Menü Ideen durch Experimente vorstellen zu erreichen.

Einleitung 1. Das Multi-Level-Menü

In einer Vielzahl von Screen-Bedienung ist das Multi-Level-Menü eine Art des Denkens oder eine feste Programmplanungsrahmen. Einfach, wenn die Taste ausgelöst wird, genommen, um die aktuelle Schnittstelle Tasten müssen die Schlüsseldefinition gemäß aus dem Array-Index springen, und dann eine Funktion als Reaktion auf die Index-Schnittstelle durchzuführen.

2. Realisierung

1. Zunächst einmal müssen wir eine Struktur definieren, wobei die Struktur umfasst typischerweise eine Schnittstellenelement variable Indexnummer, die Schnittstellenfunktion Zeiger und Variablen an die eigentlichen Schlüssel für Indexschlüssel gespeicherten Darstellung entspricht. Wobei die Schnittstellenindexnummer wird die entsprechende Funktion Zeiger.

typedef struct
{
  unsigned char index;
  unsigned char up;
  unsigned char down;
  unsigned char left;
  unsigned char right;
  void (*operation)(void);
} KEY_TABLE;

Dieses Experiment definiert vier Tasten, der oben definiert, unten, links, rechts vier Schlüsselvariablen.

2. Struktur Typdefinitionen eine Anordnung von Strukturen zu definieren, um die Anzahl der Schnittstellen ist die Anzahl die Anzahl der Elemente in dem Array.

KEY_TABLE table[9] =
{
  {0, 0, 0, 0, 0, (*menu11)},
  {1, 0, 0, 0, 0, (*menu12)},
  {2, 0, 0, 0, 0, (*menu21)},
  {3, 0, 0, 0, 0, (*menu22)},
  {4, 0, 0, 0, 0, (*menu23)},
  {5, 0, 0, 0, 0, (*menu31)},
  {6, 0, 0, 0, 0, (*menu32)},
  {7, 0, 0, 0, 0, (*menu33)},
  {8, 0, 0, 0, 0, (*menu34)},
};

Dieses Experiment definiert die Schnittstelle 9, die Array-Elemente, um neun, wobei die Schnittstellenindex Zahl von 0 bis 8, jeweils mit dem Schnittstellenfunktionszeiger entspricht. Ein Menü in dem vorliegenden Experiment 2, drei Nebenmenü, hat das Menü drei vier.

3. Drücken Sie die OK-Taste, muss jede Schnittstelle Index springen. Dieser Schritt bestimmt die Beziehung zwischen der Schaltschnittstelle, sehr wichtig. Bevor ein Menü kann zwischen der Beziehung, die durch Veredelung Skizze, die folgenden Korrelationsdiagramm zwischen der Grenzfläche 9, wie gezeigt in den vorliegenden Experimenten umgeschaltet werden.

Multi-Level-Menüstruktur

Einige Beispiele:

Der Index ist 0, das heißt unter menu11 Schnittstelle, Bestimmen, {0, 0, 0, 0, 0, (* menu11)} Werte von vier Schlüsselvariablen:

  • Wenn die Aufwärtstaste gedrückt wird, wird die Anzeige menu11 Schnittstelle, das heißt der Schnittstellenindex 0, dann ist die Zeit, nach oben = 0;
  • Wenn die Taste gedrückt wird, wird die Anzeige menu12 Schnittstelle, das heißt der Schnittstellenindex 1 ist, dann ist die Zeit, nach unten = 1;
  • Wenn die linke Taste gedrückt wird, wird die Anzeige menu11 Schnittstelle, das heißt der Schnittstellenindex 0, dann ist die Zeit, nach unten = 0;
  • Wenn die rechte Taste gedrückt wird, wird die Anzeige menu21 Schnittstelle, das heißt der Schnittstellenindex 2, dann ist die Zeit, nach unten = 2;

Daher erhalten {0, 0, 1, 0, 2, (* menu11)}

5 ist in dem Index, das heißt die Schnittstelle bestimmt menu31 {5, 0, 0, 0, 0, (* menu31)} Werte von vier Schlüsselvariablen:

  • Wenn die Aufwärtstaste gedrückt wird, wird die Anzeige menu31 Schnittstelle, das heißt der Schnittstellenindex 5, dann ist die Zeit, nach oben = 5;
  • Wenn die Taste gedrückt wird, wird die Anzeige menu32 Schnittstelle, das heißt der Schnittstellenindex 6 ist, dann ist die Zeit, nach unten = 6;
  • Wenn die linke Taste gedrückt wird, wird die Anzeige menu21 Schnittstelle, das heißt der Schnittstellenindex 2, dann ist die Zeit, nach unten = 2;
  • Wenn die rechte Taste gedrückt wird, wird die Anzeige menu31 Schnittstelle, das heißt der Schnittstellenindex 5, dann ist die Zeit, nach unten = 5;

Daher geben {5, 5, 6, 2, 5, (* menu31)}

Jump Beziehung zwischen jeder Schnittstelle hergestellt nach dem tatsächlichen Bedarf, die folgenden intakte Struktur Arrayvariable vorliegenden experimentelle Situation.

KEY_TABLE table[9] =
{
  {0, 0, 1, 0, 2, (*menu11)},
  {1, 0, 1, 1, 4, (*menu12)},
  {2, 2, 3, 0, 5, (*menu21)},
  {3, 2, 3, 0, 7, (*menu22)},
  {4, 4, 4, 1, 4, (*menu23)},
  {5, 5, 6, 2, 5, (*menu31)},
  {6, 5, 6, 2, 6, (*menu32)},
  {7, 7, 8, 3, 7, (*menu33)},
  {8, 7, 8, 3, 8, (*menu34)},
};

Die eigentliche Schlüsselfunktion entsprechend den Rückgabewert, eine Indexnummer zu erhalten, um eine Schlüsselschnittstelle entspricht, und dann finden und eine entsprechende Funktion entsprechend die Indexnummer der Schnittstelle auszuführen.

switch (keyValue)//获取按键对应序号
    {
      case 1: funIndex = table[funIndex].right; break;
      case 2: funIndex = table[funIndex].left; break;
      case 3: funIndex = table[funIndex].down; break;
      case 4: funIndex = table[funIndex].up; break;
    }
current = table[funIndex].operation;//根据需要获取对应需要执行的函数
(*current)();//执行获取到的函数

3. Experimentelle Materialien

  • Uno R3 Development Board
  • Unterstützung von USB-Datenkabel
  • Brotplatte und Tragseil
  • Biaxial Modul Wipptasten
  • OLED-Display

4. Versuchsdurchführung

1 das Prinzipschaltbild eines Gebäudes.

VCC OLED-Bildschirm, GND ist auf 3,3 V Entwicklungsplatine verbunden, GND, SDA und SCL OLED-Bildschirm A4 und A5 sind mit der Entwicklung Platine verbunden. Biaxial Wipptaste Modul VCC, GND Entwicklungsplatine 5 V angeschlossen sind, GND, X-Achsen-Ausgangsmodul, Y-Achsen-Ausgabekarten sind mit den analogen Stifte A0, A1 verbunden.

Prinzip ist unten dargestellt:

experimentelle Pläne

Physikalische Verbindung ist unten dargestellt:

Physikalischer Anschlussplan

2. Erstellen Sie eine neue Skizze, kopieren Sie den Code Ersatz automatisch generierten Code und speichern.

Aufgrund des langen Code, vollständiger Code ist am Ende des Artikels zur Verfügung.

3. Development Board-Anschluss, und stellen Sie die Portnummer auf die Art des Boards entsprechen, zum Download bereit.

Herunterladen

Die experimentellen Ergebnisse

Multi-Interface Übergänge:

experimentelle Ergebnisse


Keine öffentliche Besorgnis „TonyCode“ hinter den Kulissen Antwort „Verbesserung“ den Textcode zu erhalten.
Arduino lernen Austauschgruppe: 868 283 450
mehr begrüße ich die Aufmerksamkeit der Öffentlichkeit Zahl. Fegen Sie den Mikro-Kanal der Fanger Wei - Code zu folgen:
Micro Channel-Scan-Code hinzugefügt öffentliche Nummer: TonyCode

Veröffentlicht 63 Originalarbeiten · erntete Lob 250 · Ansichten 230.000 +

Ich denke du magst

Origin blog.csdn.net/TonyIOT/article/details/104013813
Empfohlen
Rangfolge