Բովանդակություն:

Arduino UNO (ընտրացանկերի և գործառույթների ստեղծում). 4 քայլ
Arduino UNO (ընտրացանկերի և գործառույթների ստեղծում). 4 քայլ

Video: Arduino UNO (ընտրացանկերի և գործառույթների ստեղծում). 4 քայլ

Video: Arduino UNO (ընտրացանկերի և գործառույթների ստեղծում). 4 քայլ
Video: BTT GTR v1.0/M5 v1.0 - TFTS 2024, Նոյեմբեր
Anonim
Arduino UNO (ստեղծում է ընտրացանկեր և գործառույթներ)
Arduino UNO (ստեղծում է ընտրացանկեր և գործառույթներ)
Arduino UNO (ստեղծում է ընտրացանկեր և գործառույթներ)
Arduino UNO (ստեղծում է ընտրացանկեր և գործառույթներ)

Այս ուսանելի դասում մենք ուսումնասիրելու ենք, թե ինչպես ստեղծել ընտրացանկեր, կարդալ ջերմաստիճանը TC74A0 սենսորից և ցուցադրել «արժեքները» (այս դեպքում բջջային հեռախոսների համարները) անսահմանափակ, բայց սահմանափակված ինքնաթիռի հիշողությամբ:

Մենք կօգտագործենք

-rանգվածներ

-Հեղուկ բյուրեղյա էկրան

-Ստեղնաշար

Օգտագործողի ուղեցույցը ներառված է վերջին քայլին:

Քայլ 1: Բաղադրիչներ

Արդուինո Ունո

· 4x4 ստեղնաշար

· TC74A0 թվային ջերմաստիճանի տվիչ

· I2c 16x2 LCD մոդուլ

· 16x2 հեղուկ բյուրեղյա էկրան

· Թռիչքային լարեր

· Հացաթուղթ

· Անհատական համակարգիչ

· Arduino IDE

· Փոխանցման մալուխ

Քայլ 2: Բաղադրիչի միացում

EMերմաստիճանի տվիչ և LCD, որոնք միացված են նույն գծին SDA- ին և SCL- ին (A4, A5)

LCD (I2c մոդուլ)

o SDA- ից A5 Arduino- ում

o SCL- ից A4 Arduino- ում

o VCC- ից մինչև 5V Arduino- ով

o GND- ից GND Arduino- ում

· 4 x 4 ստեղնաշար

o Ստեղնաշարի 1 - 8 կապը համապատասխանաբար Arduino- ի 9 - 2 կապին միացված է

TC74A0 ջերմաստիճանի տվիչ

o TC74A0 կապ 2 SDA- ին Arduino- ում

o TC74A0 փին 3 դեպի GND Arduino- ում

o TC74A0 կապում 4 -ը SCL- ին Arduino- ում

o TC74A0 կապում 5 -ից 5 Վ Arduino- ին

Քայլ 3: Կոդ

#ներառել // Կազմելիս ներառում է գրադարաններ

#ներառում

#ներառում

#սահմանեք գաղտնաբառի_երկար 5

#սահմանել հրամանատարության_երկար 3

#սահմանեք բջջային համարը 10

int օգտվողներ = 0;

int Displayուցադրել = 0;

int հասցե = 72; // tc74a0 ՀԱՍRԵ

int I = 0;

int USER;

int X = 0;

int XY = 0;

int ջերմաստիճան;

int tempPre = 0;

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

char Տվյալներ [Գաղտնաբառ_լայնություն];

char Վարպետ [Password_Lenght] = "5466"; // ԱՆՎԱՆ ՈՈՎ

char ExitData [Command_Lenght]; //

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

char MenuItem;

char CELLArrayA [10];

char CELLArrayB [10];

char CELLArrayC [10];

const բայթ ROWS = 4; // չորս տող

const բայթ COLS = 4; // չորս սյունակ

բայթ rowPins [ROWS] = {5, 4, 3, 2};

բայթ colPins [COLS] = {9, 8, 7, 6};

բայթ data_count = 0, master_count = 0;

bool Pass_is_good;

LiquidCrystal_I2C LCD (0x26, 16, 2);

char hexaKeys [ROWS] [COLS] = // INITIATING TYPEAD

{

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

};

Ստեղնաշարի customKeypad = Ստեղնաշար (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

դատարկ կարգավորում ()

{

Serial.begin (9600); // սա ստեղծում է Serial Monitor

Wire.begin (); // սա ստեղծում է Wire օբյեկտ

lcd. սկսել (16, 2);

lcd. լուսարձակը ();

lcd. հստակ ();

lcd.setCursor (0, 0);

lcd.print («Խնդրում ենք սպասել 3»); // Բեռնման էկրան

ուշացում (1000);

lcd. հստակ ();

lcd.setCursor (0, 0);

lcd.print («Խնդրում ենք սպասել 2»);

ուշացում (1000);

lcd. հստակ ();

lcd.setCursor (0, 0);

lcd.print («Խնդրում ենք սպասել 1»);

ուշացում (300);

lcd. հստակ ();

String myString = "ARDUINO INSTRUCTABLE";

lcd.setCursor (2, 2);

lcd.print (myString);

ուշացում (2500);

համար (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)

{

lcd.scrollDisplayLeft ();

ուշացում (300);

}

lcd. հստակ ();

lcd.print («Մուտքագրեք գաղտնաբառը»);

}

դատարկ շրջան ()

{

անջատիչ (Displayուցադրել) // ՈՐՏԵ THE ՄԵՆՔ ՄԵՆՔ ԵՆՔ

{// ՕԳՏԱԳՈՐՈԸ ՄԱՄՈԼ Է Ա, Բ, Գ, Դ

գործ 0:

{

Գաղտնաբառ ();

}

ընդմիջում;

դեպք 1:

{

lcd. հստակ ();

lcd.setCursor (0, 1);

lcd.print («A B C D»);

lcd.setCursor (0, 0);

lcd.print («Հիմնական ընտրացանկ»);

Displayուցադրել = 2;

ուշացում (100);

ընդմիջում;

}

դեպք 2:

{

char customKey = customKeypad.getKey ();

անջատիչ (customKey)

{

դեպք 'A':

{

Serial.println («A- ն սեղմված էր»);

StoreUser ();

ընդմիջում;

}

գործ 'B':

{

Serial.println («B- ն սեղմված էր»);

եթե (օգտվողներ == 0) {

lcd. հստակ ();

lcd.print («ՉԻ ՓՐԿՎԱ US ՕԳՆՈԹՅՈՆՆԵՐ»);

ուշացում (3000);

lcd. հստակ ();

Displayուցադրել = 1;

ընդմիջում;

}

DisplayUsers (); ընդմիջում;

}

գործ 'C':

{

Serial.println («C- ն սեղմված էր»); // ՕԳՏԱԳՈՐՎՈՄ Է ԹԵՍՏԻ ԳՈՐՈՄ

int ext = 0;

իսկ (! ext) {

char ch;

temp = TempMenu ();

եթե (temp! = tempPre) {

lcd. հստակ ();

lcd.print («Temparature»);

lcd.setCursor (0, 1);

lcd.print (ջերմաստիճան);

lcd.print («C»);

tempPre = ջերմաստիճան;

ուշացում (500);

}

ch = customKeypad.getKey ();

եթե (ch == ' *') // ԵԼՔ EMերմաստիճանի ընտրացանկից (եթե * ՍՏԱՎԱ է)

{

ext = 1;

lcd. հստակ ();

Displayուցադրել = 1;

}

}

ընդմիջում;

TempMenu ();

ընդմիջում;

}

դեպք 'D':

{

lcd. հստակ ();

lcd.setCursor (0, 0);

lcd.print ("NUA PRAC");

lcd.setCursor (0, 1);

lcd.print («JB SCHOEMAN»);

ուշացում (3000);

lcd. հստակ ();

lcd.setCursor (0, 0);

lcd.print («ՄԱՅԻՍԻ 2019»);

lcd.setCursor (0, 1);

lcd.print («CC OOSTHUIZEN»);

ուշացում (3000);

lcd. հստակ ();

Displayուցադրել = 1;

}

}

}

}

}

// ԱՐ VALԵՔՆԵՐԻ ORԱՆԳՈԹՅՈՆՆԵՐԻ ԵՎ ԿԱՐԳԵՐ

անվավեր գաղտնաբառ ()

{

char customKey = customKeypad.getKey ();

եթե (customKey) // համոզված է, որ բանալին իսկապես սեղմված է, հավասար է (customKey! = NO_KEY)

{

Տվյալներ [data_count] = customKey; // char- ը պահել տվյալների զանգվածում

lcd.setCursor (տվյալների_հաշիվ, 1); // տեղափոխել կուրսորը ՝ յուրաքանչյուր նոր նշանը ցուցադրելու համար

lcd.print ("*"); // տպել նշանը նշված կուրսորի վրա

տվյալների_հաշիվ ++; // տվյալների զանգվածը ավելացրեք 1 -ով `նոր նշան պահելու համար, ինչպես նաև հետևեք մուտքագրված նշանների քանակին

}

եթե (data_count == Password_Lenght-1) // եթե զանգվածների ինդեքսը հավասար է ակնկալվող նշանների թվին, ապա տվյալները համեմատեք վարպետի հետ

{

lcd. հստակ ();

lcd.setCursor (0, 0);

lcd.print («Գաղտնաբառ է»);

եթե (! strcmp (Տվյալներ, Վարպետ)) // հավասար է (strcmp (Տվյալներ, Վարպետ) == 0)

{

lcd.print («Լավ»);

lcd. հստակ ();

Displayուցադրել = 1;

}

ուրիշ

lcd.print («Վատ»);

ուշացում (1000); // ավելացրել է 1 վայրկյան ուշացում ՝ համոզվելու համար, որ գաղտնաբառը ամբողջությամբ ցուցադրվում է էկրանին, նախքան այն մաքրվելը:

lcd. հստակ ();

clearData ();

lcd. հստակ ();

lcd.setCursor (0, 0);

lcd.print («Մուտքագրեք գաղտնաբառը»);

}

}

int TempMenu ()

{

Wire.beginTransmission (հասցե);

Wire.write (0);

Wire.endTransmission ();

Հաղորդալար. Խնդրում ենք (հասցե, 1);

իսկ (Wire.available () == 0);

int c = Wire.read ();

վերադարձ գ;

}

void clearData ()

{

իսկ (տվյալների_հաշիվ! = 0)

{// Սա կարող է օգտագործվել զանգվածի ցանկացած չափի համար, Տվյալներ [data_count--] = 0; // մաքուր զանգված նոր տվյալների համար

}

}

անվավեր StoreUser ()

{

int ext = 0;

int օգտվող;

char ch;

իսկ (! ext) {

lcd. հստակ ();

lcd.print («Մուտքագրեք օգտվողին»);

օգտվող = օգտվողներ + 1;

lcd.print (օգտվող);

int x = 0;

մինչդեռ (! x) {

համար (int i = 0; i <10; i ++) {

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [օգտվող - 1] = ch;

}

ուշացում (500);

lcd. հստակ ();

lcd.print («Շարունակել»);

lcd.setCursor (0, 1);

lcd.print ("* այո # ոչ");

ch = customKeypad.waitForKey ();

եթե (ch == '*') {

x = 1;

}

եթե (ch == '#') {

x = 1;

ext = 1;

lcd. հստակ ();

Displayուցադրել = 1;

}

}

օգտվողներ ++;

}

}

դատարկ DisplayUsers ()

{

lcd. հստակ ();

համար (int i = 0; i <օգտվողներ; i ++) {

lcd.print («Պահված օգտվող»);

lcd.print (i + 1);

համար (int u = 0; u <10; u ++) {

lcd.setCursor (u, 1);

lcd.print (userNum [u]);

}

ուշացում (2000);

lcd. հստակ ();

Displayուցադրել = 1;

}

}

Քայլ 4: Օգտագործողի ուղեցույց

1. Նախագիծը միացնելուց հետո կհայտնվի բեռնման կամ ողջույնի էկրան:

2. «Մուտքագրեք գաղտնաբառ» էկրանը կհայտնվի, այս էկրանը թույլ է տալիս մուտքագրել 4 նիշ, տառ կամ թիվ, ճիշտ գաղտնաբառը ՝ 5466, սա ձեզ հնարավորություն կտա մուտք գործել հիմնական ընտրացանկ:

3. passwordիշտ գաղտնաբառ մուտքագրելիս կհայտնվի հիմնական ընտրացանկը `առկա տարբեր գործառույթներում նավարկելու 4 հնարավոր տարբերակով:

· A - Մուտքագրեք օգտվողի բջջային հեռախոսահամարները:

o Մուտքագրեք 10 թվանշան ՝ օգտվողին համակարգում պահելու համար

o 10 թվանշան մուտքագրելուց հետո սեղմեք « *» ՝ ավելի շատ օգտվողներ ավելացնելու համար, կամ սեղմեք «#» ՝ հիմնական ընտրացանկ վերադառնալու համար:

· B - savedուցադրել պահպանված օգտվողներին

o Օգտվողները ոլորում են էկրանի վրայով, դրանք ցուցադրվում են յուրաքանչյուրը 3 վայրկյան, բոլոր օգտվողներին ցուցադրվելուն պես էջը կփակվի և կվերադառնա հիմնական ընտրացանկ:

o Եթե ընտրացանկի A տարբերակում ոչ մի օգտվող չի ավելացվել, այն կցուցադրի «ՉԻ ՓՐԿՎԱ US Օգտվողներ»:

· C - ցուցադրում է կենդանի ջերմաստիճանը

o Սեղմեք « *» ՝ հիմնական մենյու վերադառնալու համար

· D - Displayուցադրել կարճ տեքստ

o Disուցադրում է ստեղծողի անունը և թեման, որի համար այն կազմվել է ամսաթվով:

Խորհուրդ ենք տալիս: