Sisukord:

Arduino UNO (menüüde ja funktsioonide loomine): 4 sammu
Arduino UNO (menüüde ja funktsioonide loomine): 4 sammu

Video: Arduino UNO (menüüde ja funktsioonide loomine): 4 sammu

Video: Arduino UNO (menüüde ja funktsioonide loomine): 4 sammu
Video: 30 лучших советов и рекомендаций по Windows 10 на 2020 год 2024, Juuli
Anonim
Arduino UNO (menüüde ja funktsioonide loomine)
Arduino UNO (menüüde ja funktsioonide loomine)
Arduino UNO (menüüde ja funktsioonide loomine)
Arduino UNO (menüüde ja funktsioonide loomine)

Selles juhendis uurime, kuidas luua menüüsid, lugeda temperatuuri TC74A0 andurilt ja kuvada väärtusi (antud juhul mobiiltelefoninumbrid) lõpmatul viisil, kuid piirduda arduino pardamäluga.

Me hakkame kasutama

-Massiivid

-Vedelkristallekraan

-Klaviatuur

Kasutusjuhend on lisatud viimasesse etappi.

Samm: komponendid

Arduino Uno

· 4x4 klahvistik

· TC74A0 digitaalne temperatuuriandur

· I2c 16x2 LCD -moodul

· 16x2 vedelkristallkuvar

· Jumper juhtmed

· Leivalaud

· Personaalarvuti

· Arduino IDE

· Edastuskaabel

Samm: komponentide juhtmestik

TEMP -ANDUR JA LCD ON SAMAL JOONEL ÜHENDATUD SDA JA SCL -iga (A4, A5)

LCD (I2c moodul)

o SDA kuni A5 Arduino

o SCL kuni Arduino A4

o Arduino VCC kuni 5V

o GND kuni GND Arduino'is

· 4 x 4 klaviatuur

o Nupud 1 - 8 klaviatuuril, mis on ühendatud vastavalt Arduino kontaktiga 9 - 2

TC74A0 temperatuuriandur

o TC74A0 tihvt 2 SDA -le Arduinos

o TC74A0 tihvt 3 GND -le Arduinos

o TC74A0 tihvt 4 Arduino SCL -i külge

o TC74A0 tihvt 5 kuni 5 V Arduino peal

3. samm: kood

#include // Sisaldab koostamisel raamatukogusid

#kaasake

#kaasake

#define Password_Lenght 5

#define Command_Lenght 3

#defineeri CellNumber 10

int kasutajad = 0;

int Ekraan = 0;

int aadress = 72; // tc74a0 AADRESS

int I = 0;

int USER;

int X = 0;

int XY = 0;

int temp;

int tempPre = 0;

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

char Andmed [Password_Lenght];

char Master [Password_Lenght] = "5466"; // PAROOL

char ExitData [Command_Lenght]; //

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

char MenuItem;

char CELLArrayA [10];

char CELLArrayB [10];

süsi CELLArrayC [10];

const bait RIDA = 4; // neli rida

const bait COLS = 4; // neli veergu

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

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

baitide andmete arv = 0, põhiarv = 0;

bool Pass_is_good;

LiquidCrystal_I2C LCD (0x26, 16, 2);

char hexaKeys [ROWS] [COLS] = // Klaviatuuri alustamine

{

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

};

Klahvistik customKlaviatuur = Klaviatuur (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

tühine seadistus ()

{

Seriaalne algus (9600); // see loob jadamonitori

Wire.begin (); // see loob traadi objekti

lcd.algus (16, 2);

lcd.taustavalgus ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Palun oodake 3"); // LAADIMISEKRAAN

viivitus (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Palun oodake 2");

viivitus (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Palun oodake 1");

viivitus (300);

lcd.clear ();

String myString = "ARDUINO INSTRUCTABLE";

lcd.setCursor (2, 2);

lcd.print (myString);

viivitus (2500);

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

{

lcd.scrollDisplayLeft ();

viivitus (300);

}

lcd.clear ();

lcd.print ("Sisesta parool");

}

tühine tsükkel ()

{

lüliti (Ekraan) // KUS PEAMENÜÜ ON MEIE

{// KAS KASUTAJA VAJAS A, B, C, D

juhtum 0:

{

Parool ();

}

murda;

juhtum 1:

{

lcd.clear ();

lcd.setCursor (0, 1);

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

lcd.setCursor (0, 0);

lcd.print ("Peamenüü");

Ekraan = 2;

viivitus (100);

murda;

}

juhtum 2:

{

char customKey = customKeypad.getKey ();

lüliti (customKey)

{

juhtum "A":

{

Serial.println ("A vajutati");

StoreUser ();

murda;

}

juhtum „B”:

{

Serial.println ("B vajutati");

kui (kasutajad == 0) {

lcd.clear ();

lcd.print ("EI SALVESTA KASUTAJAT");

viivitus (3000);

lcd.clear ();

Ekraan = 1;

murda;

}

DisplayUsers (); murda;

}

juhtum „C”:

{

Serial.println ("C vajutati"); // KASUTATUD KATSETAMISE AJAL

int ext = 0;

samas (! ext) {

char ch;

temp = TempMenu ();

kui (temp! = tempPre) {

lcd.clear ();

lcd.print ("Temparature");

lcd.setCursor (0, 1);

lcd.print (temp);

lcd.print ("C");

tempPre = temp;

viivitus (500);

}

ch = customKeypad.getKey ();

if (ch == ' *') // VÄLJU TEMPERATUURIMENÜÜ (kui * VAJATATUD)

{

ekst = 1;

lcd.clear ();

Ekraan = 1;

}

}

murda;

TempMenu ();

murda;

}

juhtum "D":

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("NUA PRAC");

lcd.setCursor (0, 1);

lcd.print ("JB SCHOEMAN");

viivitus (3000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("MAI 2019");

lcd.setCursor (0, 1);

lcd.print ("CC OOSTHUIZEN");

viivitus (3000);

lcd.clear ();

Ekraan = 1;

}

}

}

}

}

// VÄÄRTUSTE VÕI KORD

tühine parool ()

{

char customKey = customKeypad.getKey ();

if (customKey) // tagab, et klahvi on tegelikult vajutatud, võrdne (customKey! = NO_KEY)

{

Andmed [andmete_arv] = customKey; // salvesta char andmemassiivi

lcd.setCursor (andmete_arv, 1); // liiguta kursorit iga uue sümboli kuvamiseks

lcd.print ("*"); // prindi sümbol nimetatud kursori juurde

andmete_arv ++; // suurendage andmemassiivi 1 võrra uue sümboli salvestamiseks, jälgige ka sisestatud märkide arvu

}

if (data_count == Password_Lenght-1) // kui massiiviindeks on võrdne eeldatavate märkide arvuga, võrrelge andmeid põhiga

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Parool on");

if (! strcmp (Data, Master)) // võrdne (strcmp (Data, Master) == 0)

{

lcd.print ("Hea");

lcd.clear ();

Ekraan = 1;

}

muidu

lcd.print ("Halb");

delay (1000); // lisas 1 sekundilise viivituse, et veenduda, et parool kuvatakse ekraanil täielikult enne selle kustutamist.

lcd.clear ();

clearData ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Sisesta parool");

}

}

int TempMenu ()

{

Wire.beginTransmission (aadress);

Wire.write (0);

Wire.endTransmission ();

Wire.requestFrom (aadress, 1);

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

int c = Wire.read ();

tagasitulek c;

}

tühine clearData ()

{

samas (data_count! = 0)

{// Seda saab kasutada mis tahes suurusega massiivide puhul, Andmed [andmete_arv--] = 0; // tühjendage massiiv uute andmete jaoks

}

}

tühine StoreUser ()

{

int ext = 0;

int kasutaja;

char ch;

samas (! ext) {

lcd.clear ();

lcd.print ("Sisesta kasutaja");

kasutaja = kasutajad + 1;

lcd.print (kasutaja);

int x = 0;

samal ajal (! x) {

jaoks (int i = 0; i <10; i ++) {

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [kasutaja - 1] = ch;

}

viivitus (500);

lcd.clear ();

lcd.print ("Jätka");

lcd.setCursor (0, 1);

lcd.print ("* jah # ei");

ch = customKeypad.waitForKey ();

kui (ch == '*') {

x = 1;

}

kui (ch == '#') {

x = 1;

ekst = 1;

lcd.clear ();

Ekraan = 1;

}

}

kasutajad ++;

}

}

tühised DisplayUsers ()

{

lcd.clear ();

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

lcd.print ("Salvestatud kasutaja");

lcd.print (i + 1);

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

lcd.setCursor (u, 1);

lcd.print (kasutajaNumber [u]);

}

viivitus (2000);

lcd.clear ();

Ekraan = 1;

}

}

Samm 4: KASUTAJA JUHEND

1. Projekti sisselülitamisel ilmub laadimis- või tervituskuva.

2. Ilmub “Enter Password” ekraan, see ekraan võimaldab teil sisestada 4 tähemärki, tähte või numbrit, õige parool on: 5466, see annab teile juurdepääsu peamenüüle.

3. Õige parooli sisestamisel ilmub peamenüü koos 4 võimaliku funktsiooniga navigeerimiseks.

· A - sisestage kasutaja mobiiltelefoni numbrid.

o Kasutaja süsteemi salvestamiseks sisestage 10 numbrit

o Pärast 10 numbri sisestamist vajutage kasutajate lisamiseks “*” või peamenüüsse naasmiseks “#”

· B - Kuva salvestatud kasutajad

o Kasutajad kerivad ekraanist mööda, neid kuvatakse 3 sekundit, niipea kui kõik kasutajad kuvatakse, suletakse leht ja naaseb peamenüüsse.

o Kui menüüvalikusse A ei lisatud ühtegi kasutajat, kuvatakse ekraanile kiri „NO SAVED USERS”.

· C - kuvab reaalajas temperatuuri

o Põhimenüüsse naasmiseks vajutage “*”

· D - Kuva lühike tekst

o Kuvab looja nime ja teema, mille jaoks see kuupäevaga koostati.

Soovitan: