Përmbajtje:

Arduino UNO (krijimi i menyve dhe funksioneve): 4 hapa
Arduino UNO (krijimi i menyve dhe funksioneve): 4 hapa

Video: Arduino UNO (krijimi i menyve dhe funksioneve): 4 hapa

Video: Arduino UNO (krijimi i menyve dhe funksioneve): 4 hapa
Video: Krah Robotik, Realizuar dhe programuar nga Adi zhavo 2024, Korrik
Anonim
Arduino UNO (krijimi i menyve dhe funksioneve)
Arduino UNO (krijimi i menyve dhe funksioneve)
Arduino UNO (krijimi i menyve dhe funksioneve)
Arduino UNO (krijimi i menyve dhe funksioneve)

Në këtë udhëzues ne do të eksplorojmë se si të krijojmë menutë, të lexojmë temperaturën nga një sensor TC74A0 dhe të shfaqim "vlerat" (në këtë rast numrat e celularëve) në një mënyrë të pafundme, por të kufizuar në kujtesën e arduino -s në bord.

Ne do të përdorim

-Vendoret

-Ekran me kristale të lëngëta

-Tastiera e tastierës

Udhëzuesi i përdorimit i përfshirë në hapin përfundimtar.

Hapi 1: Përbërësit

Arduino Uno

· Tastiera 4x4

· Sensori dixhital i temperaturës TC74A0

· Modul LCD I2c 16x2

· Ekran me kristale të lëngët 16x2

· Tela kërcyes

· Tabela e bukës

· Kompjuter personal

· Arduino IDE

· Kabllo transferimi

Hapi 2: Lidhja e Komponentit

SENSORI I TEMPIT DHE LCD I LIDHUR N T S NJAMET LIN ME SDA DHE SCL (A4, A5)

LCD (Moduli I2c)

o SDA në A5 në Arduino

o SCL në A4 në Arduino

o VCC në 5V në Arduino

o GND në GND në Arduino

· Tastiera 4 x 4

o Pin 1 - 8 në tastierë të lidhur me pin 9 - 2 në Arduino respektivisht

Sensori i temperaturës TC74A0

o TC74A0 pin 2 në SDA në Arduino

o TC74A0 pin 3 në GND në Arduino

o TC74A0 pin 4 në SCL në Arduino

o TC74A0 pin 5 deri 5V në Arduino

Hapi 3: Kodi

#include // Përfshin bibliotekat gjatë përpilimit

#përfshi

#përfshi

#përcakto fjalëkalimin_gjatësia 5

#përcakto Komandën_Gjetësia 3

#përcaktoni numrin e celulës 10

int përdorues = 0;

int Shfaq = 0;

adresa int = 72; // tc74a0 ADRESA

int I = 0;

int USER;

int X = 0;

int XY = 0;

int temp;

int tempPre = 0;

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

char Të dhënat [Fjalëkalimi_Length];

char Master [Fjalëkalimi_Lenght] = "5466"; // FJALA E FJALS

char ExitData [Command_Lenght]; //

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

char MenuItem;

char CELLArrayA [10];

char CELLArrayB [10];

char CELLArrayC [10];

const byte RRESHA = 4; // katër rreshta

const byte COLS = 4; // katër kolona

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

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

bajt data_count = 0, master_count = 0;

bool Pass_is_good;

LiquidCrystal_I2C LCD (0x26, 16, 2);

char hexaKeys [RRESHTAT] [COLS] = // Tastiera inicuese

{

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

};

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

void setup ()

{

Serial.filloj (9600); // kjo krijon Serial Monitor

Wire.begin (); // kjo krijon një objekt Wire

lcd.filloni (16, 2);

lcd. backlight ();

lcd.qartë ();

lcd.setCursor (0, 0);

lcd.print ("Ju lutemi Prisni 3"); // EKRONI I NGARKIMIT

vonesa (1000);

lcd.qartë ();

lcd.setCursor (0, 0);

lcd.print ("Ju lutemi prisni 2");

vonesa (1000);

lcd.qartë ();

lcd.setCursor (0, 0);

lcd.print ("Ju lutemi Prisni 1");

vonesë (300);

lcd.qartë ();

String myString = "ARDUINO INSTRUCTABLE";

lcd.setCursor (2, 2);

lcd.print (myString);

vonesë (2500);

për (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)

{

lcd.scrollDisplayLeft ();

vonesë (300);

}

lcd.qartë ();

lcd.print ("Fut fjalëkalimin");

}

lak void ()

{

kaloni (Ekrani) // KU NE MENU KRYESORE JEMI NE

{// A SHTYPI P USRDORUESI A, B, C, D

rasti 0:

{

Fjalëkalimi ();

}

pushim;

rasti 1:

{

lcd.qartë ();

lcd.setCursor (0, 1);

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

lcd.setCursor (0, 0);

lcd.print ("Menyja kryesore");

Shfaq = 2;

vonesë (100);

pushim;

}

rasti 2:

{

char customKey = customKeypad.getKey ();

kaloni (customKey)

{

rasti 'A':

{

Serial.println ("A u shtyp");

StoreUser ();

pushim;

}

rasti 'B':

{

Serial.println ("B u shtyp");

nëse (përdoruesit == 0) {

lcd.qartë ();

lcd.print ("JO P USRDORUES T SA KURSUAR");

vonesë (3000);

lcd.qartë ();

Shfaq = 1;

pushim;

}

DisplayUsers (); pushim;

}

rasti 'C':

{

Serial.println ("C u shtyp"); // P USRDORET GJAT TESTIMIT

int ext = 0;

ndërsa (! ekst) {

char ch;

temp = TempMenu ();

nëse (temp! = tempPre) {

lcd.qartë ();

lcd.print ("Temparature");

lcd.setCursor (0, 1);

lcd.print (temp);

lcd.print ("C");

tempPre = temp;

vonesë (500);

}

ch = customKeypad.getKey ();

nëse (ch == ' *') // MENU T EX TEMPERATURES EXIT (nëse * PRESSED)

{

ext = 1;

lcd.qartë ();

Shfaq = 1;

}

}

pushim;

TempMenu ();

pushim;

}

rasti 'D':

{

lcd.qartë ();

lcd.setCursor (0, 0);

lcd.print ("NUA PRAC");

lcd.setCursor (0, 1);

lcd.print ("JB SCHOEMAN");

vonesë (3000);

lcd.qartë ();

lcd.setCursor (0, 0);

lcd.print ("MAJ 2019");

lcd.setCursor (0, 1);

lcd.print ("CC OOSTHUIZEN");

vonesë (3000);

lcd.qartë ();

Shfaq = 1;

}

}

}

}

}

// FUNKSIONET E ZAKONIT P TOR T C THIRRUR VLERAT OSE PROCEDURAT

fjalëkalimi i pavlefshëm ()

{

char customKey = customKeypad.getKey ();

nëse (customKey) // sigurohet që një çelës është shtypur në të vërtetë, i barabartë me (customKey! = NO_KEY)

{

Të dhëna [data_count] = customKey; // ruani char në grupin e të dhënave

lcd.setCursor (data_count, 1); // lëviz kursorin për të shfaqur çdo shenjë të re

lcd.print ("*"); // print char në kursorin në fjalë

numërimi i të dhënave ++; // shtoni grupin e të dhënave me 1 për të ruajtur shenjën e re, gjithashtu mbani shënim numrin e shenjave të futura

}

nëse (data_count == Fjalëkalimi_Lenght-1) // nëse indeksi i grupit është i barabartë me numrin e karaktereve të pritshme, krahasoni të dhënat me masterin

{

lcd.qartë ();

lcd.setCursor (0, 0);

lcd.print ("Fjalëkalimi është");

nëse (! strcmp (Të dhëna, Master)) // e barabartë me (strcmp (Të dhëna, Master) == 0)

{

lcd.print ("Mirë");

lcd.qartë ();

Shfaq = 1;

}

tjeter

lcd.print ("E keqe");

vonesë (1000); // shtoi 1 vonesë të dytë për t'u siguruar që fjalëkalimi të shfaqet plotësisht në ekran para se të pastrohet.

lcd.qartë ();

clearData ();

lcd.qartë ();

lcd.setCursor (0, 0);

lcd.print ("Fut fjalëkalimin");

}

}

int TempMenu ()

{

Wire.beginTransmetimi (adresa);

Wire.write (0);

Wire.endTransmission ();

Tela. Kërkohet Nga (adresa, 1);

ndërsa (Wire.available () == 0);

int c = Wire.read ();

kthimi c;

}

void clearData ()

{

ndërsa (numër_ i të dhënave! = 0)

{// Kjo mund të përdoret për çdo madhësi të grupit, Të dhënat [numërimi_ i të dhënave--] = 0; // grup i qartë për të dhëna të reja

}

}

void StoreUser ()

{

int ext = 0;

int përdorues;

char ch;

ndërsa (! ekst) {

lcd.qartë ();

lcd.print ("Futni Përdoruesin");

përdorues = përdorues + 1;

lcd.print (përdorues);

int x = 0;

ndërsa (! x) {

për (int i = 0; i <10; i ++) {

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [përdorues - 1] = ch;

}

vonesë (500);

lcd.qartë ();

lcd.print ("Vazhdo");

lcd.setCursor (0, 1);

lcd.print ("* po # jo");

ch = customKeypad.waitForKey ();

nëse (ch == '*') {

x = 1;

}

nëse (ch == '#') {

x = 1;

ext = 1;

lcd.qartë ();

Shfaq = 1;

}

}

përdoruesit ++;

}

}

shfuqizuesit e pavlefshëm ()

{

lcd.qartë ();

për (int i = 0; i <përdoruesit; i ++) {

lcd.print ("Përdoruesi i ruajtur");

lcd.print (i + 1);

për (int u = 0; u <10; u ++) {

lcd.setCursor (u, 1);

lcd.print (Numri i përdoruesit [u]);

}

vonesa (2000);

lcd.qartë ();

Shfaq = 1;

}

}

Hapi 4: UDHZUES P USR PERRDORIMIN

1. Me ndezjen e projektit, do të shfaqet një ekran ngarkimi ose mirëseardhjeje.

2. Do të shfaqet një ekran "Fut fjalëkalimin", ky ekran ju lejon të futni 4 karaktere, shkronja ose numra, fjalëkalimi i saktë është: 5466, kjo do t'ju japë qasje në menunë kryesore.

3. Me futjen e fjalëkalimit të saktë, menuja kryesore do të shfaqet me 4 opsione të mundshme për të lundruar në funksionet e ndryshme të disponueshme.

· A - Shkruani numrat e telefonit celular të përdoruesit.

o Futni 10 shifra për të ruajtur një përdorues në sistem

o Pasi të keni futur 10 shifra, shtypni " *" për të shtuar më shumë përdorues, ose shtypni "#" për të dalë përsëri në menunë kryesore

· B - Shfaq përdoruesit e ruajtur

o Përdoruesit do të lëvizin pranë ekranit, ata shfaqen për 3 sekonda secili, sapo të shfaqen të gjithë përdoruesit faqja do të mbyllet dhe do të kthehet në menunë kryesore.

o Nëse nuk shtohen përdorues në opsionin A të menusë, ai do të shfaqë "JO PERSRDORUES T SA KURSUAR".

· C - Shfaq temperaturën e drejtpërdrejtë

o Shtypni " *" për të dalë përsëri në menunë kryesore

· D - Shfaq tekst të shkurtër

o Shfaq emrin e krijuesit dhe subjektin për të cilin është përpiluar me një datë.

Recommended: