So erstellen Sie ein Menü auf LCD mit Arduino Uno

So erstellen Sie ein Menü auf LCD mit Arduino Uno
Um die Mikrocontroller für die Ausführung verschiedener Aufgaben zu verwenden. Der Arduino bietet seinen Benutzern eine Vielzahl von Arduino -Boards mit unterschiedlichen Arten von Mikrocontrollern. Darüber hinaus können die Mikrocontroller mit einer Reihe von Peripheriegeräten wie LCDs und Sensoren mit Hilfe der Arduino -Boards miteinander verbunden werden. Durch die Schnittstelle verschiedener Geräte mit Arduino können wir eine Reihe von Projekten durchführen. Zum Beispiel wie ein temperaturgesteuerter Lüfter, die Messung der Temperatur, einen Brandalarm und viele mehr. Wir haben ein kleines Projekt zum Erstellen eines Menüs mit Arduino IDE erstellt und dieses Menü auf LCD angezeigt. Darüber hinaus können Menüs verwendet werden.

So erstellen Sie ein Menü mit Arduino auf LCD

Das Erstellen eines Menüs mit Arduino kann nützlich sein, um bei Bedarf mehrere Aufgaben auszuführen. Praktisch können wir die Verwendung von Menüs in unseren Handys oder in einem intelligenten Gerät sehen, das einige spezifische Funktionen erfüllen kann. Kurz gesagt, das Menü enthält eine Liste von Optionen oder Aktionen, die man mit dem jeweiligen Gerät ausführen kann, sodass wir die folgende Hardware zum Erstellen eines Menüs mit Arduino auf LCD verwendet haben:

  • Arduino uno
  • Drähte verbinden
  • Ein Potentiometer
  • Vier Druckknöpfe
  • Eine LED
  • Eine flüssige Kristallanzeige (16 × 2)
  • Ein Summer
  • Ein Temperatursensor (LM35)

Die Schemata ist unten angegeben:

Hardware -Montage zum Erstellen von Menü mit Arduino

Wir haben die Komponenten so zusammengestellt, dass wir zuerst alle Komponenten auf ein Störbrett platziert haben und dann die Verbindungsdrähte mit Arduino mit Arduino miteinander verbunden sind. Wir haben unten ein Bild für die Hardware -Montage gepostet, über die die Verbindungen der Komponenten leicht verstanden werden können.

Die grünen Drähte verbinden die Datenstifte des LCD mit Arduino, während die grauen Drähte die Taste mit Arduino verbinden. Der Temperatursensor ist direkt mit dem Arduino angeschlossen, ohne dass Drähte verbinden. Die Komponenten werden unter Verwendung des 5 Volt Pin von Arduino angetrieben.

Die Tastesequenz wird im obigen Bild erwähnt.

Arduino -Code zum Erstellen eines Menüs

Wir haben ein Menü mit drei Optionen erstellt, um die LED ein- und auszuschalten. Die zweite misst die Temperatur und der dritte ertönt einen Alarm:

#include // Bibliothek für den LCD
Liquidcrystal LCD (7,6, 5, 4, 3, 2); // Arduino -Stifte für die LCD
int vcc = a0; // A0 -Pin -Versorgung von LM35
int vout = a1; // A1 -Pin für die Ausgabe des LM35
int gnd = a2; // A2 -Pin für die Ausgabe des LM35
Float Temp; // Variable zum Speichern des Temperaturwerts
Schwimmerwert; // Speichern Sie den Wert des Temperatursensors
const byte optonpin = 12; // Arduino Pin für UP -Taste
const byte downbuttonpin = 11; // Arduino -Pin für Down -Taste
const byte rightbuttonpin = 10; // Arduino Pin für die rechte Taste
const byte linkerpin = 8; // Arduino Pin für linke Taste
const byte summerpin = 9; // Arduino Pin für Summer
const byte ledpin = 13; // Arduino Pin für LED
String -Menuitems [] = // Erstellen der Zeichenfolge der Optionen im Menü
"LED -Schalter",
"Temperatur",
"Summerschalter"
;
void Menuctions (intmenü, byte rechts, byte links) / * Erstellen der Funktionen der Optionen im Menü * /Erstellen

if (Menü == 1) // für die erste Option

if (rechts == 1) // Wenn die rechte Taste gedrückt wird

LCD.setCursor (0, 1); // Einstellen der Stelle für die Daten auf LCD
LCD.print ("off"); // Drucken Sie die Off -Option
LCD.setCursor (10, 1); // Festlegen der Stelle für die Daten auf LCD
LCD.drucken ("auf <<");// move the cursor on the ON option
DigitalWrite (LEDPIN, High); // Die LED einschalten

if (links == 1) // Wenn der linke Taste gedrückt wird, dann wird dann gedrückt

LCD.setCursor (0, 1); // Festlegen der Stelle für die Daten zu LCD
LCD.ausdrucken <<");// printing the off option
LCD.setCursor (10, 1); // Festlegen der Stelle für die Daten auf LCD
LCD.print ("on"); // Drucken der OP -Option
DigitalWrite (LEDPin, niedrig); // Ausschalten der LED


if (Menü == 2) // Wenn die zweite Option im Menü ausgewählt ist

value = analograd (vout); // Lesen Sie die Ausgabe des Sensors
temp = Wert*0.48; // Analogwerte in Temperaturwerte konvertieren
LCD.setCursor (0, 1); // Einstellen der Stelle für die Daten auf LCD
LCD.print ("Temperatur:"); // Anzeigen der Daten
LCD.setCursor (12, 1); // Festlegen der Stelle für die Daten auf LCD
LCD.Print (Temp); // Anzeige des Temperaturwerts

if (Menü == 3) // Wenn die dritte Option ausgewählt ist

if (rechts == 1) // Wenn die rechte Taste gedrückt wird

LCD.setCursor (0, 1); // Einstellen der Stelle für die Daten auf LCD
LCD.ausdrucken "); // Drucken Sie die Aus -Option
LCD.setCursor (10, 1); // Festlegen der Stelle für die Daten auf LCD
LCD.drucken ("auf <<");// move the cursor on the ON option
Ton (Summerpin, 125); // den Summer einschalten

if (links == 1) // Wenn der linke Taste gedrückt wird

LCD.setCursor (0, 1); // Einstellen der Stelle für die Daten auf LCD
LCD.ausdrucken <<");// move the cursor on the off option
LCD.setCursor (10, 1); // Festlegen der Stelle für die Daten auf LCD
LCD.print ("on"); // Drucken der Option
NOTONE (Summerpin); // Schalten Sie den Summer aus



// Erstellen der Vorlage des Menüs
Vorlage /* Variable für den Namen der Option und für die Größe des Menüs* /
size_t MenuitemSize (t (&) [numbersize]) return numbersize; /* Menüoptionsname und die Anzahl der Option*/
int numbersofMenuitems = MenuitemSize (Menuitems) - 1;
int CurrentMenuitem = 0; // Variable zum Speichern der aktuellen Option
intheruseuitem = 1; // Variable zum Speichern der vorherigen Option
BYTE Button_flag = 0;
nicht signierte lange vorhermillis = millis ();
// Setup -Funktion
void setup ()

PinMode (LEDPIN, Ausgang); // PIN -Modus für LED definieren
PinMode (VCC, Ausgabe); // PIN -Modus für Versorgungsstift für Sensor definieren
PinMode (vout, Eingabe); // Pinmodus für den Ausgangsstift des Sensors definieren
PinMode (GND, Ausgabe); // Pinmodus für den Erdungsstift des Sensors definieren
// die Zustände für die Versorgungs- und Erdungsstifte für die Sensoren definieren
DigitalWrite (VCC, High); // Geben Sie dem Arduino A0 Pin High State
DigitalWrite (GND, niedrig); // dem Arduino A2 Pin niedriger Zustand geben
PinMode (Upbuttonpin, input_pullup); // Zuweisen des UP -Taste input_pullup -Modus
PinMode (DownbuttonPin, input_pullup);/*Zuweisen des UP -Taste input_pullup -Modus*/
PinMode (rechter Buttonpin, input_pullup);/*Zuweisen des UP -Taste input_pullup -Modus*/
PinMode (linksduttonpin, input_pullup); /*Zuweisen des UP -Taste input_pullup -Modus*/
LCD.Beginnen Sie (16,2); // Initialisierung der Dimensionen von LCD
LCD.clear (); // das LCD klären
LCD.setCursor (0, 0); // Einstellung Ort für die angezeigten Daten auf LCD
LCD.print ("Willkommen zu"); // Daten, die auf LCD angezeigt werden sollen
LCD.setCursor (3, 1); // Einstellungsort für Daten auf LCD angezeigt werden
LCD.Print ("Arduino -Menü"); // Daten, die auf LCD angezeigt werden sollen
Verzögerung (6000); // Zeit, für die die Daten auf LCD angezeigt werden
LCD.clear (); // das LCD klären
LCD.setCursor (0, 0); // Einstellungsort für Daten auf LCD angezeigt werden
LCD.drucken ("LinuxHint.com "); // Daten, die auf LCD angezeigt werden sollen
Verzögerung (7000); // Zeit, für die die Daten auf LCD angezeigt werden
LCD.clear (); // das LCD klären

// Verwenden Sie die Bedingungen zur Definition der Funktionalität der einzelnen Taste
Hohlraumschleife ()

if (digitalRead (rechter Buttonpin) == Low && button_flag == 0)/ *Wenn die rechte Taste gedrückt wird */

Menuctions (CurrentMenuitem + 1, 1, 0); // einen Schritt nach rechts bewegen
Button_flag = 1;
vorhermillis = Millis ();

if (digitalRead (linksbr

Menuctions (CurrentMenuitem + 1, 0, 1);
Button_flag = 1;
vorhermillis = Millis ();

if (digitalRead (optonpin) == low && button_flag == 0) /*Wenn die Taste von up gedrückt wird* /

++CurrentMenuitem;
if (CurrentMenuitem> NummerOfMenuitems)

CurrentMenuitem = numbersofMenuitems;

Button_flag = 1;
vorhermillis = Millis ();

sonst if (digitalread (downbuttonpin) == low && button_flag == 0) /*Wenn die Taste abwärts gedrückt wird* /

CurrentMenuitem--;
if (CurrentMenuitem = 400)

vorhermillis = Millis ();
button_flag = 0;

Um die Arbeit des oben angegebenen Arduino -Codes zusammenzufassen, können wir sagen, dass wir zuerst LCD-, Temperatursensor-, Summer- und Push -Tasten Pins zugewiesen haben. Dann haben wir ein Menü erstellt, indem wir einige Optionen wie das Wechseln von LED, Temperaturerfassung und Wechsel von Summer haben.

Wir haben die IF -Bedingungen für jede Option verwendet, die wir im Menü angegeben haben, und danach haben wir eine Vorlage für das Menü erstellt und einige Variablen definiert, um die Optionen im Menü zu erinnern.

In der Setup -Funktion werden allen Arduino -Stiften ihre Modi zugewiesen und die Dimension des LCD wird initialisiert.

Wenn wir zur Schleifenfunktion kommen, haben wir die Funktionalität jeder im Arduino -Programm verwendeten Taste definiert. In diesem Programm werden vier Tasten verwendet: Zwei sind die Schaltflächen und die anderen beiden werden als Ein/Aus -Schalter für die angeschlossenen Geräte verwendet.

Hardware -Implementierung zum Erstellen eines Menüs mit Arduino Uno

Die Bilder der Ausgabe des Arduino -Programms auf Hardware werden in der Abfolge des Arduino -Codes veröffentlicht. Um das Menü zu navigieren, drücken Sie die Tasten „Up“ und „Down“, um Funktionen auszuführen. Drücken Sie die Tasten „Links“ und „Rechte“.

Die erste Option des Menüs ist der LED -Switch:

Wenn die LED im Staat ist:

Wenn der rechte Taste gedrückt wird, wird die LED eingeschaltet:

Die zweite Option im Menü ist die Temperatur:

Die nächste Option ist das Wechsel des Summers:

Wenn der Summer im Status ist, wenn der rechte Taste gedrückt wird:

Der Summer wird ausgeschaltet, wenn der linke Knopf gedrückt wird:

Abschluss

Um verschiedene Projekte auf Anfängern oder fortgeschrittener Ebene zu erstellen, ist die Verwendung der Arduino -Plattform die machbarste Art und Weise, die in den Sinn kommt. Diese Plattform bietet den Benutzern eine Vielzahl von Optionen, die auf den Anforderungen des Projekts basieren. In ähnlicher Weise ist diese Plattform eine Art Komplettpaket, da sie beide Arten von Assistenzsoftware und Hardware bietet. Das Erstellen von Projekten mit Arduino bietet also die Möglichkeit, verschiedene Konzepte über Schaltungen zu lernen und zu verstehen. Wir haben auch ein Projekt zum Erstellen eines Menüs mit einem Arduino Uno -Board erstellt und auf einem 16 × 2 LCD angezeigt.