Turinys:

„Arduino UNO“(meniu ir funkcijų kūrimas): 4 žingsniai
„Arduino UNO“(meniu ir funkcijų kūrimas): 4 žingsniai

Video: „Arduino UNO“(meniu ir funkcijų kūrimas): 4 žingsniai

Video: „Arduino UNO“(meniu ir funkcijų kūrimas): 4 žingsniai
Video: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, Liepa
Anonim
„Arduino UNO“(meniu ir funkcijų kūrimas)
„Arduino UNO“(meniu ir funkcijų kūrimas)
„Arduino UNO“(meniu ir funkcijų kūrimas)
„Arduino UNO“(meniu ir funkcijų kūrimas)

Šioje pamokoje mes išnagrinėsime, kaip sukurti meniu, nuskaityti temperatūrą iš TC74A0 jutiklio ir parodyti „vertes“(šiuo atveju mobiliųjų telefonų numerius) begaliniu būdu, tačiau apsiribojant arduino atmintimi.

Mes naudosime

-Masyvai

-Skystųjų kristalų ekranas

-Klaviatūra

Į paskutinį žingsnį įtrauktas vartotojo vadovas.

1 žingsnis: komponentai

Arduino Uno

· 4x4 klaviatūra

· TC74A0 skaitmeninis temperatūros jutiklis

· I2c 16x2 LCD modulis

· 16x2 skystųjų kristalų ekranas

· Jumperiniai laidai

· Bandomoji Lenta

· Asmeninis kompiuteris

· „Arduino IDE“

· Perdavimo kabelis

2 žingsnis: komponentų laidai

Temperatūros jutiklis ir skystųjų kristalų ekranas, prijungtas prie tos pačios linijos prie SDA ir SCL (A4, A5)

LCD (I2c modulis)

o SDA į A5 „Arduino“

o SCL į A4 „Arduino“

o VCC iki 5V „Arduino“

o nuo GND iki GND „Arduino“

· 4 x 4 klaviatūra

o 1–8 kaištis klaviatūroje, atitinkamai prijungtas prie „Arduino“9–2 kaiščio

TC74A0 temperatūros jutiklis

o TC74A0 2 kontaktas prie SDA „Arduino“

o TC74A0 3 kaištis į GND „Arduino“

o TC74A0 4 kaištis prie SCL „Arduino“

o TC74A0 kištukas nuo 5 iki 5 V „Arduino“

3 žingsnis: kodas

#include // Į rinkinį įtraukiamos bibliotekos

#įtraukti

#įtraukti

#define Password_Lenght 5

#define Command_Lenght 3

#define CellNumber 10

int vartotojai = 0;

int Ekranas = 0;

int adresas = 72; // tc74a0 ADRESAS

int I = 0;

int USER;

int X = 0;

int XY = 0;

int temp;

int tempPre = 0;

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

char duomenys [Slaptažodis_ilgis];

char Master [Password_Lenght] = "5466"; //SLAPTAŽODIS

char ExitData [Command_Lenght]; //

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

char MenuItem;

char CELLArrayA [10];

char CELLArrayB [10];

anglis CELLArrayC [10];

const baitas ROWS = 4; // keturios eilutės

const baitas COLS = 4; // keturi stulpeliai

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

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

baitų duomenų skaičius = 0, pagrindinis_skaičius = 0;

bool Pass_is_good;

LiquidCrystal_I2C LCD (0x26, 16, 2);

char hexaKeys [ROWS] [COLS] = // INTICIATING KEYPAD

{

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

};

Klaviatūra customKeypad = Klaviatūra (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

negaliojanti sąranka ()

{

Serial.begin (9600); // tai sukuria serijinį monitorių

Wire.begin (); // tai sukuria vielos objektą

LCD. pradžia (16, 2);

lcd.backlight ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Prašome palaukti 3"); // ĮKROVIMO EKRANAS

vėlavimas (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Prašome palaukti 2");

vėlavimas (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Prašome palaukti 1");

vėlavimas (300);

lcd.clear ();

Styga myString = "ARDUINO INSTRUCTABLE";

lcd.setCursor (2, 2);

lcd.print (myString);

vėlavimas (2500);

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

{

lcd.scrollDisplayLeft ();

vėlavimas (300);

}

lcd.clear ();

lcd.print („Įveskite slaptažodį“);

}

tuštumos kilpa ()

{

jungiklis (ekranas) // KUR PAGRINDINĖJE MENIUE MES

{// AR NAUDOTOJAS spaudė A, B, C, D

0 atvejis:

{

Slaptažodis();

}

pertrauka;

1 atvejis:

{

lcd.clear ();

lcd.setCursor (0, 1);

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

lcd.setCursor (0, 0);

lcd.print („Pagrindinis meniu“);

Ekranas = 2;

vėlavimas (100);

pertrauka;

}

2 atvejis:

{

char customKey = customKeypad.getKey ();

jungiklis (customKey)

{

atvejis „A“:

{

Serial.println („A buvo paspaustas“);

„StoreUser“();

pertrauka;

}

atvejis „B“:

{

Serial.println („B buvo paspaustas“);

jei (naudotojai == 0) {

lcd.clear ();

lcd.print ("NĖRA IŠSAUGOTŲ VARTOTOJŲ");

vėlavimas (3000);

lcd.clear ();

Ekranas = 1;

pertrauka;

}

„DisplayUsers“(); pertrauka;

}

atvejis „C“:

{

Serial.println („C buvo paspaustas“); // NAUDOTAS BANDYMO metu

int ext = 0;

nors (! ext) {

char ch;

temp = TempMenu ();

if (temp! = tempPre) {

lcd.clear ();

lcd.print ("Temperatūra");

lcd.setCursor (0, 1);

lcd.print (temp);

lcd.print ("C");

tempPre = temp;

vėlavimas (500);

}

ch = customKeypad.getKey ();

if (ch == ' *') // EXIT TEMPERATURE MENU (jei * PRESSED)

{

ekst = 1;

lcd.clear ();

Ekranas = 1;

}

}

pertrauka;

TempMenu ();

pertrauka;

}

atvejis „D“:

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("NUA PRAC");

lcd.setCursor (0, 1);

lcd.print ("JB SCHOEMAN");

vėlavimas (3000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print („2019 m. GEGUŽĖ“);

lcd.setCursor (0, 1);

lcd.print ("CC OOSTHUIZEN");

vėlavimas (3000);

lcd.clear ();

Ekranas = 1;

}

}

}

}

}

// PASIRINKTINĖS FUNKCIJOS SKAMBTI VERTĖMS ARBA PROCEDŪROMS

negaliojantis slaptažodis ()

{

char customKey = customKeypad.getKey ();

if (customKey) // įsitikina, kad klavišas iš tikrųjų yra paspaustas, lygus (customKey! = NO_KEY)

{

Duomenys [data_count] = customKey; // saugoti char į duomenų masyvą

lcd.setCursor (duomenų_skaičius, 1); // perkelkite žymeklį, kad būtų parodytas kiekvienas naujas simbolis

lcd.print ("*"); // spausdinti char prie minėto žymeklio

data_count ++; // padidinkite duomenų masyvą 1, kad išsaugotumėte naują simbolį, taip pat stebėkite įvestų simbolių skaičių

}

if (data_count == Password_Lenght-1) // jei masyvo indeksas yra lygus laukiamų simbolių skaičiui, palyginkite duomenis su pagrindiniu

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print („Slaptažodis yra“);

if (! strcmp (duomenys, pagrindinis)) // lygus (strcmp (duomenys, pagrindinis) == 0)

{

lcd.print („Geras“);

lcd.clear ();

Ekranas = 1;

}

Kitas

lcd.print („Blogai“);

uždelsimas (1000); // pridėjo 1 sekundės vėlavimą, kad įsitikintumėte, jog slaptažodis yra visiškai rodomas ekrane prieš jį ištrinant.

lcd.clear ();

Išvalyti duomenis();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print („Įveskite slaptažodį“);

}

}

int TempMenu ()

{

Wire.beginTransmission (adresas);

Wire.write (0);

Wire.endTransmission ();

Wire.requestFrom (adresas, 1);

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

int c = Wire.read ();

grįžti c;

}

void clearData ()

{

o (data_count! = 0)

{// Tai galima naudoti bet kokio dydžio masyvui, Duomenys [data_count--] = 0; // išvalyti naujų duomenų masyvą

}

}

void StoreUser ()

{

int ext = 0;

int vartotojas;

char ch;

nors (! ext) {

lcd.clear ();

lcd.print („Įveskite vartotoją“);

vartotojas = vartotojai + 1;

lcd.print (vartotojas);

int x = 0;

kol (! x) {

už (int i = 0; i <10; i ++) {

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [vartotojas - 1] = ch;

}

vėlavimas (500);

lcd.clear ();

lcd.print ("Tęsti");

lcd.setCursor (0, 1);

lcd.print ("* taip # ne");

ch = customKeypad.waitForKey ();

jei (ch == '*') {

x = 1;

}

jei (ch == '#') {

x = 1;

ekst = 1;

lcd.clear ();

Ekranas = 1;

}

}

vartotojai ++;

}

}

negaliojantys „DisplayUsers“()

{

lcd.clear ();

(int i = 0; i <vartotojai; i ++) {

lcd.print („Išsaugotas vartotojas“);

lcd.print (i + 1);

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

lcd.setCursor (u, 1);

lcd.print (userNum [u]);

}

vėlavimas (2000 m.);

lcd.clear ();

Ekranas = 1;

}

}

4 žingsnis: NAUDOTOJO VADOVAS

1. Įjungus projektą, pasirodys įkėlimo arba pasveikinimo ekranas.

2. Atsiras ekranas „Įveskite slaptažodį“, kuriame galėsite įvesti 4 simbolius, raides ar skaičius, teisingas slaptažodis yra: 5466, tai suteiks jums prieigą prie pagrindinio meniu.

3. Įvedus teisingą slaptažodį, pasirodys pagrindinis meniu su 4 galimomis galimybėmis naršyti įvairias galimas funkcijas.

· A - įveskite vartotojo mobiliojo telefono numerius.

o Įveskite 10 skaitmenų, kad išsaugotumėte vartotoją sistemoje

o Įvedę 10 skaitmenų, paspauskite „ *“, jei norite pridėti daugiau vartotojų, arba paspauskite „#“, kad grįžtumėte į pagrindinį meniu

· B - Rodyti išsaugotus vartotojus

o Vartotojai slinks ekrane, jie bus rodomi po 3 sekundes, kai tik visi vartotojai bus rodomi, puslapis bus uždarytas ir grįš į pagrindinį meniu.

o Jei meniu A parinktyje nebuvo pridėta naudotojų, ekrane pasirodys užrašas „NĖRA IŠSAUGOTŲ VARTOTOJŲ“.

· C - rodo gyvą temperatūrą

o Norėdami grįžti į pagrindinį meniu, paspauskite „ *“

· D - Rodyti trumpą tekstą

o Rodo kūrėjo vardą ir temą, kuriai jis buvo sudarytas, su data.

Rekomenduojamas: