Hvordan lage meny på LCD ved hjelp av Arduino Uno

Hvordan lage meny på LCD ved hjelp av Arduino Uno
For å bruke mikrokontrollerne til å utføre forskjellige oppgaver, er den mest effektive måten å bruke Arduino -brettene når de gjør grensesnittet med mikrokontrolleren enklere. Arduino gir brukerne et stort utvalg av Arduino -brett som har forskjellige typer mikrokontrollere. Dessuten kan mikrokontrollerne kobles sammen med en rekke periferiutstyr som LCDer og sensorer ved hjelp av Arduino -tavlene. Ved å grensesnitt mot forskjellige enheter med Arduino kan vi gjøre en rekke prosjekter. For eksempel, som å lage en temperaturkontrollert vifte, målingstemperatur, lage brannalarm og mange flere. Vi har laget et lite prosjekt for å lage en meny ved hjelp av Arduino IDE og vise den menyen på LCD. Dessuten kan menyer brukes når du designer et hjemmeautomatisert system eller et hvilket som helst overvåkingssystem.

Hvordan lage en meny ved hjelp av Arduino på LCD

Å lage en meny ved hjelp av Arduino kan være nyttig for å utføre flere oppgaver når det er nødvendig. Praktisk talt kan vi se bruken av menyer i mobiltelefonene våre eller en smart enhet som er i stand til å gjøre noen spesifikke funksjoner. Kort sagt, menyen er en liste over alternativer eller handlinger som man kan gjøre med den respektive enheten, slik at vi har brukt følgende maskinvare for å lage en meny ved hjelp av Arduino på LCD:

  • Arduino Uno
  • Koble til ledninger
  • Ett potensiometer
  • Fire trykknapper
  • En ledet
  • En flytende krystallskjerm (16 × 2)
  • En summer
  • En temperatursensor (LM35)

Skjemaene er gitt nedenfor:

Maskinvareenhet for å lage meny ved hjelp av Arduino

Vi har samlet komponentene på en slik måte at vi først har plassert alle komponentene på en brødplate og deretter ved hjelp av tilkoblingsledningene hver komponent er koblet til Arduino. Vi har lagt ut et bilde nedenfor for maskinvarenheten som tilkoblingene til komponentene enkelt kan forstås.

De grønne ledningene kobler datapinnene til LCD -en med Arduino, mens de grå ledningene kobler trykknappene med Arduino. Temperatursensoren er direkte koblet til Arduino uten noen koblingsledninger fordi koblingsledninger noen ganger forvrenger utgangen til sensoren. Komponentene drives opp ved å bruke 5 volt pinnen til Arduino.

Knappsekvensen er nevnt i bildet ovenfor.

Arduino -kode for å lage en meny

Vi har laget en meny med tre alternativ en er å slå av og på LED, den andre måler temperaturen og den tredje høres ut en alarm:

#include // bibliotek for LCD
LiquidCrystal LCD (7,6, 5, 4, 3, 2); // Arduino -pinner for LCD
int vcc = A0; // A0 PIN -levering av LM35
int vout = a1; // A1 -pinnen for utgangen fra LM35
int GND = A2; // A2 -pinnen for utgangen fra LM35
flyte temp; // variabel for lagring av temperaturverdien
flyteverdi; // lagre verdien av temperatursensoren
const byte upbuttonpin = 12; // arduino pin for up -knapp
const byte downbuttonpin = 11; // Arduino Pin for Down -knappen
const byte rightbuttonpin = 10; // arduino pin for høyre knapp
const byte venstrebuttonpin = 8; // arduino pin for venstre knapp
const byte Buzzerpin = 9; // Arduino Pin for summer
const byte ledpin = 13; // arduino pin for LED
String menuitems [] = // Opprette strengen til alternativene i menyen
"LED -bryter",
"Temperatur",
"Summer Switch"
;
ugyldig menufunksjoner (int -meny, byte høyre, byte til venstre) / * Opprette funksjonene til alternativene som er gitt på menyen * /

if (meny == 1) // for første alternativ

if (høyre == 1) // Hvis høyre knapp trykkes

LCD.setcursor (0, 1); // Angi stedet for dataene på LCD
LCD.print ("off"); // skrive ut alternativet OFF
LCD.setcursor (10, 1); // Angi stedet for dataene på LCD
LCD.trykk ("på <<");// move the cursor on the ON option
DigitalWrite (Ledpin, High); // slå på LED

if (venstre == 1) // Hvis venstre knapp trykkes da

LCD.setcursor (0, 1); // Angi stedet for dataene på LCD
LCD.trykk ("Av <<");// printing the off option
LCD.setcursor (10, 1); // Angi stedet for dataene på LCD
LCD.print ("on"); // skrive ut alternativet ON
DigitalWrite (Ledpin, lav); // slå av LED


if (meny == 2) // Hvis det andre alternativet i menyen er valgt

verdi = analograad (vout); // Lese utgangen fra sensoren
Temp = verdi*0.48; // konvertere analoge verdier til temperaturverdier
LCD.setcursor (0, 1); // Angi stedet for dataene på LCD
LCD.print ("temperatur:"); // vise dataene
LCD.setcursor (12, 1); // Angi stedet for dataene på LCD
LCD.print (temp); // vise verdien av temperaturen

if (meny == 3) // Hvis det er valgt tredje alternativ

if (høyre == 1) // Hvis høyre knapp trykkes

LCD.setcursor (0, 1); // Angi stedet for dataene på LCD
LCD.print ("off"); // Skrive ut OFT -alternativet
LCD.setcursor (10, 1); // Angi stedet for dataene på LCD
LCD.trykk ("på <<");// move the cursor on the ON option
Tone (Buzzerpin, 125); // slå på summeren

if (venstre == 1) // Hvis venstre knapp er trykket på

LCD.setcursor (0, 1); // Angi stedet for dataene på LCD
LCD.trykk ("Av <<");// move the cursor on the off option
LCD.setcursor (10, 1); // Angi stedet for dataene på LCD
LCD.print ("on"); // Skrive ut alternativet On
Notone (summerpin); // slå av summeren



// Opprette malen til menyen
Mal /* variabel for navn på alternativet og for størrelsen på menyen* /
size_t menuitemssize (t (&) [numberOfSize]) return numberOfSize; /* Menyalternativ og antall alternativ*/
int tallofmenuitems = menuitemssize (menuitems) - 1;
int CurrentMenuitem = 0; // Variabel for lagringsalternativ
int forrige menuitem = 1; // Variabel for lagring av det forrige alternativet
byte button_flag = 0;
usignert lang tidligere Millis = millis ();
// Oppsettfunksjon
ugyldig oppsett ()

pinmode (LEDPIN, utgang); // definere pin -modus for LED
PinMode (VCC, utgang); // Definere PIN -modus for forsyningspinne for sensor
pinmode (vout, input); // Definere PIN -modus for utgangspinne på sensoren
pinmode (GND, utgang); // Definere pin -modus for bakkestift på sensoren
// Definere tilstandene for forsynings- og bakkestiftene for sensorene
DigitalWrite (VCC, High); // gir Arduino A0 PIN -en høy tilstand
DigitalWrite (GND, lav); // Å gi Arduino A2 -pinnen lav tilstand
pinmode (upbuttonpin, input_pullup); // Tilordne UP -knappen input_pullup -modus
pinmode (downbuttonpin, input_pullup);/*tilordne UP -knappen input_pullup -modus*/
PinMode (RightButtonPin, input_pullup);/*Tilordne UP -knappen input_pullup -modus*/
pinmode (venstrebuttonpin, input_pullup); /*tilordne UP -knappen input_pullup -modus*/
LCD.Begynn (16,2); // Initialisere dimensjonene til LCD
LCD.Clear (); // tømme LCD
LCD.setcursor (0, 0); // Angi sted for data som skal vises på LCD
LCD.print ("velkommen til"); // data som skal vises på LCD
LCD.setcursor (3, 1); // Angi sted for data som skal vises på LCD
LCD.print ("arduino meny"); // data som skal vises på LCD
forsinkelse (6000); // tid som dataene skal vises på LCD
LCD.Clear (); // tømme LCD
LCD.setcursor (0, 0); // Angi sted for data som skal vises på LCD
LCD.trykk ("Linuxhint.com "); // data som skal vises på LCD
forsinkelse (7000); // tid som dataene skal vises på LCD
LCD.Clear (); // tømme LCD

// Bruke hvis betingelser for å definere funksjonaliteten til hver knapp
ugyldig sløyfe ()

if (DigitalRead (RightButtonPin) == LOW && Button_Flag == 0)/ *Hvis høyre knapp er trykket på */

Menufunksjoner (CurrentMenuitem + 1, 1, 0); // Flytt ett trinn til høyre
knapp_flag = 1;
forrige Millis = millis ();

if (digitalRead (venstrebuttonpin) == low && button_flag == 0)/*Hvis venstre knapp er trykket på*/

menufunksjoner (CurrentMenuitem + 1, 0, 1);
knapp_flag = 1;
forrige Millis = millis ();

if (digitalRead (UPButtonPin) == LOW && Button_Flag == 0) /*Hvis Up -knappen er trykket på* /

++CurrentMenuitem;
if (CurrentMenuitem> NumberOfMenuitems)

CurrentMenuitem = NumberOfMenuitems;

knapp_flag = 1;
forrige Millis = millis ();

ellers if (digitalRead (DownButtonPin) == LOW && Button_Flag == 0) /*Hvis Down -knappen trykkes* /

CurrentMenuitem--;
if (currentMenuitem = 400)

forrige Millis = millis ();
knapp_flag = 0;

For å oppsummere arbeidet med Arduino -koden gitt ovenfor, kan vi si at vi til å begynne med har tildelt pinner til LCD, temperatursensor, summer og trykklapper. Så har vi opprettet en meny ved å ha noen alternativer som å bytte LED, temperaturfølelse og bytte av summer.

Vi har brukt IF -betingelsene for hvert alternativ som vi har gitt i menyen, og etter det har vi laget en mal for å lage menyen og definere noen variabler for å huske alternativene i menyen.

I installasjonsfunksjonen tildeles alle Arduino -pinner sine moduser og dimensjonen til LCD -er initialiseres.

Når vi kommer til Loop -funksjonen, har vi definert funksjonaliteten til hver knapp som brukes i Arduino -programmet. Det er fire knapper som brukes i dette programmet: to er vippeknappene og de to andre brukes som en av/på -bryter for tilkoblede enheter.

Maskinvareimplementering for å lage en meny ved hjelp av Arduino Uno

Bildene av utgangen fra Arduino -programmet på maskinvare er lagt ut i sekvensen av strømmen av Arduino -koden. For å navigere på menyen, trykk på “Up” og “Down” -knapper for å utføre funksjoner, trykk på “Venstre” og “høyre” -knapper.

Det første alternativet med menyen er LED -bryteren:

Når lysdioden er i off -staten:

Når riktig knapp blir trykket, blir LED -en slått på:

Det andre alternativet i menyen er temperatur:

Neste alternativ er bytting av summer:

Når summeren er i på tilstand når riktig knapp trykkes:

Summeren er slått av når venstre knapp trykkes på:

Konklusjon

For å lage forskjellige prosjekter på nybegynneren eller avansert nivå på den mest gjennomførbare måten som kommer til å bruke Arduino -plattformen. Denne plattformen gir en rekke alternativer for brukerne basert på kravene i prosjektet. Tilsvarende er denne plattformen en slags komplett pakke, da den gir begge typer assistanseprogramvare og maskinvare. Så å lage prosjekter som bruker Arduino gir en sjanse til å lære og forstå forskjellige konsepter om kretsløp. Vi har også laget et prosjekt for å lage en meny ved hjelp av et Arduino UNO -brett og vise det på en 16 × 2 LCD.