Բովանդակություն:
![Arduino UNO (ընտրացանկերի և գործառույթների ստեղծում). 4 քայլ Arduino UNO (ընտրացանկերի և գործառույթների ստեղծում). 4 քայլ](https://i.howwhatproduce.com/images/004/image-9747-10-j.webp)
Video: Arduino UNO (ընտրացանկերի և գործառույթների ստեղծում). 4 քայլ
![Video: Arduino UNO (ընտրացանկերի և գործառույթների ստեղծում). 4 քայլ Video: Arduino UNO (ընտրացանկերի և գործառույթների ստեղծում). 4 քայլ](https://i.ytimg.com/vi/AtOTaw1LnEk/hqdefault.jpg)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
![Arduino UNO (ստեղծում է ընտրացանկեր և գործառույթներ) Arduino UNO (ստեղծում է ընտրացանկեր և գործառույթներ)](https://i.howwhatproduce.com/images/004/image-9747-11-j.webp)
![Arduino UNO (ստեղծում է ընտրացանկեր և գործառույթներ) Arduino UNO (ստեղծում է ընտրացանկեր և գործառույթներ)](https://i.howwhatproduce.com/images/004/image-9747-12-j.webp)
Այս ուսանելի դասում մենք ուսումնասիրելու ենք, թե ինչպես ստեղծել ընտրացանկեր, կարդալ ջերմաստիճանը 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ուցադրում է ստեղծողի անունը և թեման, որի համար այն կազմվել է ամսաթվով:
Խորհուրդ ենք տալիս:
Միայն Arduino- ի միջոցով ֆիլմերից տարբեր հնչյունների ստեղծում. 3 քայլ
![Միայն Arduino- ի միջոցով ֆիլմերից տարբեր հնչյունների ստեղծում. 3 քայլ Միայն Arduino- ի միջոցով ֆիլմերից տարբեր հնչյունների ստեղծում. 3 քայլ](https://i.howwhatproduce.com/images/002/image-3421-15-j.webp)
Միայն Arduino- ի միջոցով ֆիլմերից տարբեր հնչյունների ստեղծում. As-salamu alaykum! Ես ուզում էի առաջացնել տարբեր ձայներ, ինչպիսիք են գիշատիչը, optimus prime & իշամեղու տրանսֆորմատորային ֆիլմից: Իրականում ես նայում էի " դարբին " տեսանյութ գիշատիչ սաղավարտ պատրաստելու մասին
Arduino Odometer- ի ստեղծում - մաս I: 4 քայլ
![Arduino Odometer- ի ստեղծում - մաս I: 4 քայլ Arduino Odometer- ի ստեղծում - մաս I: 4 քայլ](https://i.howwhatproduce.com/images/007/image-18714-j.webp)
Արդուինո հեռաչափի ստեղծում - մաս 1: Հեծանվորդների և հեծանիվ վարող օգտվողների համար բավականին տարածված է, որ նրանք պետք է չափեն իրենց արագությունը և անցած տարածությունը: Դրա համար մեզ պետք է մի սարք, որը հայտնի է որպես հեռաչափ: Հեռաչափը պատասխանատու է այդ փոփոխականների չափման և այս տեղեկատվության փոխանցման համար
Տարբեր տեսակների տոնների ստեղծում ՝ օգտագործելով մաթեմատիկական հավասարումներ (MathsMusic) Arduino: 5 քայլ
![Տարբեր տեսակների տոնների ստեղծում ՝ օգտագործելով մաթեմատիկական հավասարումներ (MathsMusic) Arduino: 5 քայլ Տարբեր տեսակների տոնների ստեղծում ՝ օգտագործելով մաթեմատիկական հավասարումներ (MathsMusic) Arduino: 5 քայլ](https://i.howwhatproduce.com/images/002/image-5485-40-j.webp)
Մաթեմատիկական հավասարումների (MathsMusic) միջոցով տարբեր տեսակների ստեղծում Arduino. Նախագծի նկարագրություն. Սկսվել է նոր ճանապարհորդություն, որտեղ գաղափարները կարող են հեշտությամբ իրականացվել բաց կոդով համայնքի միջոցով (Շնորհիվ Arduino): Այսպիսով, ահա մի միջոց · Նայեք ձեր շուրջը և դիտեք ձեր շրջապատը · Բացահայտեք խնդիրներ, որոնք պետք է լինեն
Arduino տոնային գեներատոր `առանց գրադարանի կամ սերիական գործառույթների (ընդհատումներով). 10 քայլ
![Arduino տոնային գեներատոր `առանց գրադարանի կամ սերիական գործառույթների (ընդհատումներով). 10 քայլ Arduino տոնային գեներատոր `առանց գրադարանի կամ սերիական գործառույթների (ընդհատումներով). 10 քայլ](https://i.howwhatproduce.com/images/001/image-2689-38-j.webp)
Arduino Tone Generator Առանց գրադարանի կամ սերիական գործառույթների (ընդհատումներով). Սա այն չէ, ինչին սովորաբար սովորեցնելու հնարավորություն ունեի, ես նախընտրում եմ իմ մետաղագործությունը, բայց քանի որ էլեկտրատեխնիկայի ուսանող եմ և պետք է դասեր անցնեմ միկրոկոնտրոլերների վրա ( Ներկառուցված համակարգերի ձևավորում), ես մտածեցի, որ իմ ձեռնարկներից մեկի վրա ուսանելի կդարձնեմ
SOLIDWORKS- ի մի քանի հիմնական գործառույթների սովորում. Վեց կողմ զառ պատրաստելը. 22 քայլ
![SOLIDWORKS- ի մի քանի հիմնական գործառույթների սովորում. Վեց կողմ զառ պատրաստելը. 22 քայլ SOLIDWORKS- ի մի քանի հիմնական գործառույթների սովորում. Վեց կողմ զառ պատրաստելը. 22 քայլ](https://i.howwhatproduce.com/images/001/image-1571-71-j.webp)
SOLIDWORKS- ի մի քանի հիմնական գործառույթներ սովորելը. Վեց կողմի զառեր պատրաստելը. Այս հրահանգը կանցնի ձեզ այն քայլերով, որոնք անհրաժեշտ են վեց կողքի զառերի եռաչափ մոդել պատրաստելու համար: Մոդելը նախագծելիս դուք նկարելու եք ինքնաթիռների և մակերեսների վրա, արտամղելու և կտրելու 3D ձևեր և ֆիլեի ներքին և արտաքին անկյուններ կամ 3D մոդել: Աշխատանքի ժամանակ