Innholdsfortegnelse:

Arduino UNO (lage menyer og funksjoner): 4 trinn
Arduino UNO (lage menyer og funksjoner): 4 trinn

Video: Arduino UNO (lage menyer og funksjoner): 4 trinn

Video: Arduino UNO (lage menyer og funksjoner): 4 trinn
Video: Lesson 95: Using L293D 4 DC Motors Shield for Arduino UNO and Mega | Arduino Step By Step Course 2024, Juli
Anonim
Arduino UNO (lager menyer og funksjoner)
Arduino UNO (lager menyer og funksjoner)
Arduino UNO (lager menyer og funksjoner)
Arduino UNO (lager menyer og funksjoner)

I denne instruksen vil vi utforske hvordan du lager menyer, leser temperatur fra en TC74A0 -sensor og viser "verdier" (i dette tilfellet mobiltelefonnumre) på en måte som er uendelig, men begrenset til arduinoens minne om bord.

Vi kommer til å bruke

-Arrays

-LCD-skjerm

-Tastatur

Brukerveiledning inkludert i det siste trinnet.

Trinn 1: Komponenter

Arduino Uno

· 4x4 tastatur

· TC74A0 digital temperatursensor

· I2c 16x2 LCD -modul

· 16x2 flytende krystallskjerm

· Stikkledere

· Brødbrett

· Personlig datamaskin

· Arduino IDE

· Overføringskabel

Trinn 2: Komponentledninger

TEMP SENSOR OG LCD TILKOBLET PÅ SAMME LINJE TIL SDA OG SCL (A4, A5)

LCD (I2c -modul)

o SDA til A5 på Arduino

o SCL til A4 på Arduino

o VCC til 5V på Arduino

o GND til GND på Arduino

· 4 x 4 Tastatur

o Pinne 1 - 8 på tastaturet er koblet til henholdsvis pinne 9 - 2 på Arduino

TC74A0 temp sensor

o TC74A0 pin 2 til SDA på Arduino

o TC74A0 pin 3 til GND på Arduino

o TC74A0 pin 4 til SCL på Arduino

o TC74A0 pin 5 til 5V på Arduino

Trinn 3: Kode

#include // Inkluderer biblioteker når du kompilerer

#inkludere

#inkludere

#define Password_Lengde 5

#define Command_Lenght 3

#define CellNumber 10

int brukere = 0;

int Display = 0;

int adresse = 72; // tc74a0 ADRESSE

int I = 0;

int BRUKER;

int X = 0;

int XY = 0;

int temp;

int tempPre = 0;

char userNum [10] [10] = {{}, {}, {}};

char Data [Password_Lenght];

char Master [Password_Lenght] = "5466"; //PASSORD

char ExitData [Command_Lenght]; //

char Master1 [Command_Lenght] = "**"; //

char MenuItem;

røye CELLArrayA [10];

røye CELLArrayB [10];

røye CELLArrayC [10];

const byte RADER = 4; // fire rader

const byte COLS = 4; // fire kolonner

byte rowPins [ROWS] = {5, 4, 3, 2};

byte colPins [COLS] = {9, 8, 7, 6};

byte data_count = 0, master_count = 0;

bool Pass_is_good;

LiquidCrystal_I2C lcd (0x26, 16, 2);

char hexaKeys [ROWS] [COLS] = // INITIERENDE TASTATUR

{

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}

};

Tastatur customKeypad = Tastatur (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

ugyldig oppsett ()

{

Serial.begin (9600); // dette oppretter Serial Monitor

Wire.begin (); // dette oppretter et Wire -objekt

lcd.begin (16, 2);

lcd.backlight ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Vennligst vent 3"); // LADES SKJERM

forsinkelse (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Vennligst vent 2");

forsinkelse (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Vennligst vent 1");

forsinkelse (300);

lcd.clear ();

String myString = "ARDUINO INSTRUKTABEL";

lcd.setCursor (2, 2);

lcd.print (myString);

forsinkelse (2500);

for (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)

{

lcd.scrollDisplayLeft ();

forsinkelse (300);

}

lcd.clear ();

lcd.print ("Skriv inn passord");

}

hulrom ()

{

bryter (Display) // HVOR I Hovedmenyen ER VI

{// GJORDE BRUKEREN TRYKK A, B, C, D

sak 0:

{

Passord();

}

gå i stykker;

sak 1:

{

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("A B C D");

lcd.setCursor (0, 0);

lcd.print ("Hovedmeny");

Display = 2;

forsinkelse (100);

gå i stykker;

}

sak 2:

{

char customKey = customKeypad.getKey ();

switch (tilpasset tast)

{

sak 'A':

{

Serial.println ("A ble trykket");

StoreUser ();

gå i stykker;

}

sak 'B':

{

Serial.println ("B ble trykket");

hvis (brukere == 0) {

lcd.clear ();

lcd.print ("INGEN LAGrede BRUKERE");

forsinkelse (3000);

lcd.clear ();

Display = 1;

gå i stykker;

}

DisplayUsers (); gå i stykker;

}

sak 'C':

{

Serial.println ("C ble trykket"); // BRUKT UNDER TESTING

int ext = 0;

mens (! ext) {

char ch;

temp = TempMeny ();

hvis (temp! = tempPre) {

lcd.clear ();

lcd.print ("Temparature");

lcd.setCursor (0, 1);

lcd.print (temp);

lcd.print ("C");

tempPre = temp;

forsinkelse (500);

}

ch = customKeypad.getKey ();

if (ch == ' *') // EXIT TEMPERATURE MENU (hvis * TRYKKT)

{

ext = 1;

lcd.clear ();

Display = 1;

}

}

gå i stykker;

TempMeny ();

gå i stykker;

}

sak 'D':

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("NUA PRAC");

lcd.setCursor (0, 1);

lcd.print ("JB SCHOEMAN");

forsinkelse (3000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("MAI 2019");

lcd.setCursor (0, 1);

lcd.print ("CC OOSTHUIZEN");

forsinkelse (3000);

lcd.clear ();

Display = 1;

}

}

}

}

}

// TILPASSETE FUNKSJONER FOR Å RINGE VERDIER ELLER PROSEDYRER

ugyldig passord ()

{

char customKey = customKeypad.getKey ();

hvis (customKey) // sørger for at en tast faktisk trykkes, lik (customKey! = NO_KEY)

{

Data [data_count] = tilpasset nøkkel; // lagre røye i data array

lcd.setCursor (data_count, 1); // flytt markøren for å vise hvert nytt tegn

lcd.print ("*"); // print char ved nevnte markør

data_count ++; // øk dataverdien med 1 for å lagre ny røye, hold også oversikt over antall angitte tegn

}

hvis (data_count == Password_Lenght-1) // hvis matrisindeksen er lik antallet forventede tegn, sammenlign data med master

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Passord er");

hvis (! strcmp (Data, Master)) // lik (strcmp (Data, Master) == 0)

{

lcd.print ("Bra");

lcd.clear ();

Display = 1;

}

ellers

lcd.print ("dårlig");

forsinkelse (1000); // lagt til 1 sekund forsinkelse for å sikre at passordet vises helt på skjermen før det blir slettet.

lcd.clear ();

slett data();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Skriv inn passord");

}

}

int TempMeny ()

{

Wire.beginTransmission (adresse);

Wire.write (0);

Wire.endTransmission ();

Wire.requestFrom (adresse, 1);

mens (Wire.available () == 0);

int c = Wire.read ();

returnere c;

}

void clearData ()

{

mens (data_count! = 0)

{// Dette kan brukes for alle matrisestørrelser, Data [data_count--] = 0; // klar matrise for nye data

}

}

void StoreUser ()

{

int ext = 0;

int bruker;

char ch;

mens (! ext) {

lcd.clear ();

lcd.print ("Skriv inn bruker");

bruker = brukere + 1;

lcd.print (bruker);

int x = 0;

mens (! x) {

for (int i = 0; i <10; i ++) {

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [bruker - 1] = ch;

}

forsinkelse (500);

lcd.clear ();

lcd.print ("Fortsett");

lcd.setCursor (0, 1);

lcd.print ("* ja # nei");

ch = customKeypad.waitForKey ();

hvis (ch == '*') {

x = 1;

}

hvis (ch == '#') {

x = 1;

ext = 1;

lcd.clear ();

Display = 1;

}

}

brukere ++;

}

}

ugyldige DisplayUsers ()

{

lcd.clear ();

for (int i = 0; i <brukere; i ++) {

lcd.print ("lagret bruker");

lcd.print (i + 1);

for (int u = 0; u <10; u ++) {

lcd.setCursor (u, 1);

lcd.print (userNum [u]);

}

forsinkelse (2000);

lcd.clear ();

Display = 1;

}

}

Trinn 4: BRUKERVEILEDNING

1. Når du slår på prosjektet, vises et laste- eller velkomstskjermbilde.

2. Et "Enter Password" -skjermbilde vises, dette skjermbildet lar deg skrive inn 4 tegn, bokstaver eller tall, riktig passord er: 5466, dette gir deg tilgang til hovedmenyen.

3. Når du angir riktig passord, vil hovedmenyen vises med 4 mulige alternativer for å navigere i de forskjellige tilgjengelige funksjonene.

· A - Angi brukerens mobiltelefonnumre.

o Angi 10 sifre for å lagre en bruker i systemet

o Etter at 10 sifre er angitt, trykker du på " *" for å legge til flere brukere, eller trykk "#" for å gå tilbake til hovedmenyen

· B - Vis lagrede brukere

o Brukerne ruller forbi skjermen, de vises i 3 sekunder hver, så snart alle brukerne vises, vil siden lukkes og gå tilbake til hovedmenyen.

o Hvis ingen brukere ble lagt til i menyalternativ A, vil det vise “INGEN LAGrede BRUKERE”.

· C - Viser levende temperatur

o Trykk på " *" for å gå tilbake til hovedmenyen

· D - Vis kort tekst

o Viser skapers navn og emnet den ble satt sammen for med en dato.

Anbefalt: