
Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59


Š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:
„Arduino OLED“ekrano meniu su galimybe pasirinkti: 8 žingsniai

„Arduino“OLED ekrano meniu su galimybe pasirinkti: Šioje pamokoje mes sužinosime, kaip sudaryti meniu su pasirinkimo parinktimi naudojant „OLED Display“ir „Visuino“. Žiūrėkite vaizdo įrašą
„Arduino“valdomas žingsninio greičio valdymo meniu: 6 žingsniai

Žingsninio greičio valdymo meniu, sukurtas „Arduino“: ši „SpeedStepper“biblioteka yra perrašyta „AccelStepper“bibliotekoje, kad būtų galima valdyti žingsninio variklio greitį. „SpeedStepper“biblioteka leidžia jums pakeisti nustatytą variklio greitį, o paskui pagreitinti/sulėtinti iki naujo nustatyto greičio, naudojant tą patį algoritmą
„Arduino DHT22“jutiklio ir dirvožemio drėgmės projektas su meniu: 4 žingsniai

„Arduino DHT22“jutiklio ir dirvožemio drėgmės projektas su meniu: Sveiki, vaikinai Šiandien aš jums pristatau savo antrąjį projektą dėl nurodymų. Šiame projekte pristatomas mano pirmojo projekto, kuriame naudoju dirvožemio drėgmės jutiklį ir DHT22 jutiklį, kuris naudojamas temperatūrai ir drėgmei matuoti, mišinys . Šis projektas yra
„Bluetooth“adapterio Pt.2 kūrimas (suderinamo garsiakalbio kūrimas): 16 žingsnių

„Bluetooth“adapterio „Pt.2“kūrimas (suderinamo garsiakalbio kūrimas): Šioje instrukcijoje parodysiu, kaip panaudoti „Bluetooth“adapterį, kad senas garsiakalbis būtų suderinamas su „Bluetooth“.*Jei neskaitėte mano pirmojo nurodymo „Kaip padaryti“„Bluetooth“adapteris " Siūlau tai padaryti prieš tęsiant. C
Mažų robotų kūrimas: vieno kubinio colio „Micro-Sumo“robotų ir mažesnių kūrimas: 5 žingsniai (su nuotraukomis)

Mažų robotų kūrimas: vieno kubinio colio „Micro-Sumo“robotų ir mažesnių kūrimas: Štai keletas smulkių robotų ir grandinių kūrimo detalių. Ši pamoka taip pat apims keletą pagrindinių patarimų ir metodų, kurie yra naudingi kuriant bet kokio dydžio robotus. Man vienas iš didžiausių elektronikos iššūkių yra pamatyti, koks mažas