Sisukord:
Video: Arduino UNO (menüüde ja funktsioonide loomine): 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
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:
Väga lihtne Arduino kilbi loomine (EasyEDA abil): 4 sammu
Kuidas luua väga lihtne Arduino kilp (kasutades EasyEDA -d): Selles juhendis õpetan teile, kuidas Arduino Uno Shieldi väga lihtsalt luua. Ma ei lähe liiga üksikasjalikult, kuid lisasin video, kus ma minge tarkvara kasutamisele veidi põhjalikumalt. Kasutan veebirakendust EasyEDA, kuna
Arduino odomeetri loomine - I osa: 4 sammu
Arduino odomeetri loomine - I osa: On üsna tavaline, et jalgratturid ja velotrenažööri kasutajad peavad mõõtma oma kiirust ja läbitud vahemaad. Selleks vajame seadet, mida tuntakse läbisõidumõõdikuna. Läbisõidumõõdik vastutab nende muutujate mõõtmise ja selle teabe edastamise eest
Professionaalse välimusega kaugjuhtimispuldi loomine oma Arduino projekti jaoks kodus: 9 sammu (piltidega)
Professionaalse välimusega kaugjuhtimispuldi loomine teie Arduino projekti jaoks kodus: tegin projekti, mis kasutas paari asja juhtimiseks arduino ja IR kaugraamatukogu. Nii et selles juhendis näitan teile, kuidas saate mis tahes kaugjuhtimispulti uuesti kasutada kasutas oma järgmist projekti. Ja hea tualettruumi tegemiseks pole vaja midagi väljamõeldud
Funktsioonide generaator: 4 sammu
Funktsioonigeneraator: Tere kõigile, kas vajate odavat funktsioonigeneraatorit?, Kas te ei taha seda osta? Enamikus projektides …… kasutasin seda traadita jõuülekande moodulite valmistamiseks
Õpetus Arduino UNO-ga neljakohalise ekraaniliidese loomine: 6 sammu (piltidega)
Õpetus Arduino UNO-ga neljakohalise ekraaniliidese loomine: see õpetus õpetab teile mõningaid põhitõdesid neljakohalise ekraani kasutamise kohta Arduino UNO-ga