Мазмұны:

Arduino UNO (мәзірлер мен функцияларды құру): 4 қадам
Arduino UNO (мәзірлер мен функцияларды құру): 4 қадам

Бейне: Arduino UNO (мәзірлер мен функцияларды құру): 4 қадам

Бейне: Arduino UNO (мәзірлер мен функцияларды құру): 4 қадам
Бейне: Lesson 02 Arduino IDE Software | Robojax Arduino Step By Step Course 2024, Шілде
Anonim
Arduino UNO (мәзірлер мен функцияларды құру)
Arduino UNO (мәзірлер мен функцияларды құру)
Arduino UNO (мәзірлер мен функцияларды құру)
Arduino UNO (мәзірлер мен функцияларды құру)

Бұл нұсқаулықта біз мәзірлерді қалай құруды, TC74A0 сенсорынан температураны оқуды және «мәндерді» (бұл жағдайда ұялы телефон нөмірлерін) шексіз, бірақ ардуиноның борттық жадысымен шектелетін түрде көрсетуді қарастырамыз.

Біз қолданатын боламыз

-Массивтер

-Сұйық кристалды дисплей

-пернетақта

Пайдаланушы нұсқаулығы соңғы қадамға енгізілген.

1 -қадам: компоненттер

Ардуино Уно

· 4x4 пернетақта

· TC74A0 цифрлық температура сенсоры

· I2c 16x2 СКД модулі

· 16х2 сұйық кристалды дисплей

· Өтпелі сымдар

· Нан тақтасы

· Дербес компьютер

· Arduino IDE

· Тасымалдау кабелі

2 -қадам: Компонентті сымдар

Температура сенсоры мен СКД SDA мен SCL -ге бір желіде қосылған (A4, A5)

СКД (I2c модулі)

o SDA A5 -тен Arduino -ға

o SCL - A4 форматында Arduino

o Arduino -дағы 5В -қа дейінгі VCC

o GND - Arduino жүйесіндегі GND

· 4 x 4 пернетақта

o Пернетақтадағы 1-8 түйреуіші тиісінше Arduino құрылғысындағы 9 - 2 істікке қосылады

TC74A0 температура сенсоры

o TC74A0 2 түйрегіші Arduino -дағы SDA -ға

o TC74A0 3 түйреуіші Arduino -дағы GND -ге

o TC74A0 4 түйрегіші Arduino -дағы SCL -ге

o TC74A0 түйреуіші Arduino -да 5 -тен 5В -қа дейін

3 -қадам: код

#include // Құрастыру кезінде кітапханалар кіреді

#қосу

#қосу

#құпия сөзді анықтау_ұзындығы 5

#Ұзындықты анықтау пәрмені 3

#ұяшықтың нөмірін анықтаңыз 10

int users = 0;

int Display = 0;

int адресі = 72; // tc74a0 АДРЕС

int I = 0;

int USER;

int X = 0;

int XY = 0;

int temp;

int tempPre = 0;

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

char мәліметтері [Password_Lenght];

char Master [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; // төрт қатар

COLS const байт = 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] = // ИНТИЗУЦИАЛЫҚ ПАРАҚТА

{

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

};

CustomKeypad пернетақтасы = Пернетақта (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

жарамсыз орнату ()

{

Serial.begin (9600); // бұл сериялық мониторды жасайды

Wire.begin (); // бұл Wire нысанын жасайды

lcd.begin (16, 2);

lcd.backlight ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print («Өтінемін 3 күтіңіз»); // ЖҮКТЕУ ЭКРАНЫ

кешіктіру (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print («Өтінемін 2 күтіңіз»);

кешіктіру (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print («Өтінемін, 1 күтіңіз»);

кешіктіру (300);

lcd.clear ();

String myString = «ARDUINO INSTRUCTABLE»;

lcd.setCursor (2, 2);

lcd.print (myString);

кешіктіру (2500);

үшін (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)

{

lcd.scrollDisplayLeft ();

кешіктіру (300);

}

lcd.clear ();

lcd.print («Құпия сөзді енгізу»);

}

бос цикл ()

{

қосқыш (Дисплей) // НЕГІЗГІ МЕНЮДЕ БІЗ

{// ПАЙДАЛАНУШЫ A, B, C, D басқан ба

0 жағдай:

{

Құпия сөз ();

}

үзіліс;

1 -жағдай:

{

lcd.clear ();

lcd.setCursor (0, 1);

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

lcd.setCursor (0, 0);

lcd.print («Негізгі мәзір»);

Көрсету = 2;

кешіктіру (100);

үзіліс;

}

2 -жағдай:

{

char customKey = customKeypad.getKey ();

қосқыш (customKey)

{

«А» жағдайы:

{

Serial.println («A басылды»);

StoreUser ();

үзіліс;

}

«В» жағдайы:

{

Serial.println («B басылды»);

егер (пайдаланушылар == 0) {

lcd.clear ();

lcd.print («САҚТАУЛЫ ПАЙДАЛАНУШЫЛАР ЖОҚ»);

кешіктіру (3000);

lcd.clear ();

Көрсету = 1;

үзіліс;

}

DisplayUsers (); үзіліс;

}

'С' жағдайы:

{

Serial.println («C басылды»); // ТЕСТТЕУ ПАЙДАЛАНУ

int ext = 0;

while (! ext) {

char ch;

temp = TempMenu ();

егер (temp! = tempPre) {

lcd.clear ();

lcd.print («Температура»);

lcd.setCursor (0, 1);

lcd.print (temp);

lcd.print («C»);

tempPre = температура;

кешіктіру (500);

}

ch = customKeypad.getKey ();

if (ch == ' *') // ТЕМПЕРАТУРА МЕНЮІНЕН ШЫҒУ (егер * БАСЫЛҒАН болса)

{

ext = 1;

lcd.clear ();

Көрсету = 1;

}

}

үзіліс;

TempMenu ();

үзіліс;

}

'D' жағдайы:

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print («NUA PRAC»);

lcd.setCursor (0, 1);

lcd.print («JB SCHOEMAN»);

кешіктіру (3000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print («МАМЫР 2019»);

lcd.setCursor (0, 1);

lcd.print («CC OOSTHUIZEN»);

кешіктіру (3000);

lcd.clear ();

Көрсету = 1;

}

}

}

}

}

// МӘНДЕРДІ НЕМЕСЕ ПРОЦЕДУКТЕРДІ ШАҚЫРУҒА АРНАЛҒАН ФУНКЦИЯЛАР

жарамсыз пароль ()

{

char customKey = customKeypad.getKey ();

if (customKey) // (customKey! = NO_KEY) тең болатын кілт шынымен басылғанына көз жеткізеді

{

Деректер [data_count] = customKey; // char массивін деректер массивінде сақтаңыз

lcd.setCursor (data_count, 1); // әр жаңа таңбаны көрсету үшін жүгіргіні жылжытыңыз

lcd.print («*»); // таңбаны көрсетілген курсорға басып шығарыңыз

data_count ++; // жаңа таңбаны сақтау үшін деректер жиынын 1 -ге көбейтіңіз, сонымен қатар енгізілген таңбалар санын қадағалаңыз

}

if (data_count == Password_Lenght-1) // егер массив индексі күтілетін таңбалар санына тең болса, деректерді бастыға салыстырыңыз

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print («Құпия сөз»);

if (! strcmp (Data, Master)) // тең (strcmp (Data, Master) == 0)

{

lcd.print («Жақсы»);

lcd.clear ();

Көрсету = 1;

}

басқа

lcd.print («Нашар»);

кешіктіру (1000); // құпия сөз тазаланғанға дейін экранда толық көрсетілуін қамтамасыз ету үшін 1 секунд кідірісті қосты.

lcd.clear ();

clearData ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print («Құпия сөзді енгізу»);

}

}

int TempMenu ()

{

Wire.beginTransmission (мекенжай);

Wire.write (0);

Wire.endTransmission ();

Wire.requestFrom (мекен -жай, 1);

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

int c = Wire.read ();

қайтару c;

}

clearData () жарамсыз

{

while (data_count! = 0)

{// Мұны кез келген массив өлшемі үшін қолдануға болады, Деректер [data_count--] = 0; // жаңа деректердің массивін тазарту

}

}

жарамсыз StoreUser ()

{

int ext = 0;

int пайдаланушысы;

char ch;

while (! ext) {

lcd.clear ();

lcd.print («Пайдаланушыны енгізу»);

user = users + 1;

lcd.print (пайдаланушы);

int x = 0;

while (! x) {

үшін (int i = 0; i <10; i ++) {

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [user - 1] = ch;

}

кешіктіру (500);

lcd.clear ();

lcd.print («Жалғастыру»);

lcd.setCursor (0, 1);

lcd.print («* иә # жоқ»);

ch = customKeypad.waitForKey ();

егер (ch == '*') {

x = 1;

}

егер (ch == '#') {

x = 1;

ext = 1;

lcd.clear ();

Көрсету = 1;

}

}

пайдаланушылар ++;

}

}

void DisplayUsers ()

{

lcd.clear ();

үшін (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.clear ();

Көрсету = 1;

}

}

4 -қадам: ПАЙДАЛАНУШЫ НҰСҚАУЛЫҒЫ

1. Жобаны қосқаннан кейін жүктеу немесе сәлемдесу экраны пайда болады.

2. «Құпия сөзді енгізу» экраны пайда болады, бұл экран 4 таңбаны, әріптерді немесе сандарды енгізуге мүмкіндік береді, дұрыс пароль: 5466, бұл сізге негізгі мәзірге кіруге мүмкіндік береді.

3. Дұрыс құпия сөзді енгізгеннен кейін, әр түрлі қол жетімді функцияларды шарлау үшін 4 мүмкін болатын негізгі мәзір пайда болады.

· A - пайдаланушының ұялы телефон нөмірлерін енгізіңіз.

o Пайдаланушыны жүйеге сақтау үшін 10 цифр енгізіңіз

o 10 сан енгізілгеннен кейін, қосымша пайдаланушыларды қосу үшін « *» түймесін басыңыз немесе негізгі мәзірге қайту үшін «#» түймесін басыңыз.

· B - Сақталған пайдаланушыларды көрсету

o Пайдаланушылар экранды айналдырады, олардың әрқайсысы 3 секунд бойы көрсетіледі, барлық қолданушылар көрсетілгеннен кейін бет жабылады және негізгі мәзірге оралады.

o Егер А мәзір опциясына бірде -бір пайдаланушы қосылмаған болса, онда ол «САҚталмаған пайдаланушылар жоқ» дегенді көрсетеді.

· C - тірі температураны көрсетеді

o Негізгі мәзірге қайту үшін « *» түймесін басыңыз

· D - қысқа мәтінді көрсету

o Жаратушының аты -жөні мен ол құрастырылған тақырыпты көрсетеді.

Ұсынылған: