ዝርዝር ሁኔታ:

አርዱዲኖ UNO (ምናሌዎችን እና ተግባሮችን መፍጠር) 4 ደረጃዎች
አርዱዲኖ UNO (ምናሌዎችን እና ተግባሮችን መፍጠር) 4 ደረጃዎች

ቪዲዮ: አርዱዲኖ UNO (ምናሌዎችን እና ተግባሮችን መፍጠር) 4 ደረጃዎች

ቪዲዮ: አርዱዲኖ UNO (ምናሌዎችን እና ተግባሮችን መፍጠር) 4 ደረጃዎች
ቪዲዮ: የአርዱብሎክ መተግበሪያን በመጫን ላይ 2024, ሀምሌ
Anonim
አርዱዲኖ UNO (ምናሌዎችን እና ተግባሮችን መፍጠር)
አርዱዲኖ UNO (ምናሌዎችን እና ተግባሮችን መፍጠር)
አርዱዲኖ UNO (ምናሌዎችን እና ተግባሮችን መፍጠር)
አርዱዲኖ UNO (ምናሌዎችን እና ተግባሮችን መፍጠር)

በዚህ መመሪያ ውስጥ ምናሌዎችን እንዴት መፍጠር እንደሚቻል እንመረምራለን ፣ የሙቀት መጠኑን ከ TC74A0 ዳሳሽ ያንብቡ እና “እሴቶችን” (በዚህ ሁኔታ የሞባይል ስልክ ቁጥሮች) በማያልቅ ፣ ግን በቦርዱ ማህደረ ትውስታ ላይ ባለው አርዱinoኖ ብቻ የተወሰነ በሆነ መንገድ ያሳዩ።

እኛ እንጠቀማለን

-አረሪዎች

-ፈሳሽ ክሪስታል ማሳያ

-ቁልፍ ሰሌዳ

የተጠቃሚ መመሪያ በመጨረሻው ደረጃ ውስጥ ተካትቷል።

ደረጃ 1: አካላት

አርዱዲኖ ኡኖ

· 4x4 የቁልፍ ሰሌዳ

· TC74A0 ዲጂታል የሙቀት ዳሳሽ

· I2c 16x2 LCD ሞዱል

· 16x2 ፈሳሽ ክሪስታል ማሳያ

· ዝላይ ሽቦዎች

· የዳቦ ሰሌዳ

· የግል ኮምፒተር

· አርዱዲኖ አይዲኢ

· ገመድ ያስተላልፉ

ደረጃ 2 - የአካል ክፍሎች ሽቦ

TEMP SENSOR እና LCD ተገናኝቷል በተመሳሳይ መስመር ላይ ወደ SDA እና SCL (A4 ፣ A5)

ኤልሲዲ (I2c ሞዱል)

o SDA ወደ A5 በአርዱዲኖ

o SCL ወደ A4 በአርዱዲኖ

o VCC እስከ 5V በአርዱዲኖ

o በአርዲኖ ላይ ከ GND እስከ GND

· 4 x 4 የቁልፍ ሰሌዳ

o በቅደም ተከተል በአርዱዲኖ ላይ ከፒን 9 - 2 ጋር በተገናኘው የቁልፍ ሰሌዳ ላይ 1 - 8 ይሰኩ

TC74A0 የሙቀት ዳሳሽ

o TC74A0 ፒን 2 ለ SDA በአርዱዲኖ ላይ

o TC74A0 ፒን 3 ለ GND በአርዱዲኖ ላይ

o በአርዲኖ ላይ TC74A0 ፒን 4 ወደ SCL

o በአርዲኖ ላይ TC74A0 ፒን ከ 5 እስከ 5 ቮ

ደረጃ 3 ኮድ

#አካትት // ሲያጠናቅቁ ቤተ -መጻህፍት ያካትታል

#ያካትቱ

#ያካትቱ

#ይለፍ ቃልን_ይገልጽ 5

#የትእዛዝ_እስከ_እስከ 3 ድረስ

#የሕዋስ ቁጥር 10 ን ይግለጹ

int ተጠቃሚዎች = 0;

int ማሳያ = 0;

int አድራሻ = 72; // tc74a0 አድራሻ

int እኔ = 0;

int USER;

int X = 0;

int XY = 0;

int temp;

int tempPre = 0;

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

የቻር ውሂብ [የይለፍ ቃል_ ርዝመት];

char Master [Password_Lenght] = "5466"; //ፕስወርድ

char ExitData [Command_Lenght]; //

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

char MenuItem;

ቻር CELLArrayA [10];

ቻር CELLArrayB [10];

ቻር CELLArrayC [10];

const byte ROWS = 4; // አራት ረድፎች

const byte COLS = 4; // አራት ዓምዶች

ባይት ረድፍ ፒኖች [ROWS] = {5, 4, 3, 2};

ባይት ኮልፒንስ [COLS] = {9, 8, 7, 6};

ባይት data_count = 0, master_count = 0;

bool Pass_is_ ጥሩ ነው;

LiquidCrystal_I2C lcd (0x26, 16, 2);

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

{

{'1' ፣ '2' ፣ '3' ፣ 'A'} ፣

{'4' ፣ '5' ፣ '6' ፣ 'B'} ፣

{'7' ፣ '8' ፣ '9' ፣ 'C'} ፣

{'*', '0' ፣ '#' ፣ 'መ'}

};

የቁልፍ ሰሌዳ ብጁ የቁልፍ ሰሌዳ = የቁልፍ ሰሌዳ (makeKeymap (hexaKeys) ፣ ረድፎች ፒን ፣ ኮሊፒንስ ፣ ረድፎች ፣ ኮል);

ባዶነት ማዋቀር ()

{

Serial.begin (9600); // ይህ ተከታታይ ሞኒተርን ይፈጥራል

Wire.begin (); // ይህ የሽቦ ነገርን ይፈጥራል

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 ();

ሕብረቁምፊ myString = "ARDUINO INSTRUCTABLE";

lcd.setCursor (2, 2);

lcd.print (myString);

መዘግየት (2500);

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

{

lcd.scrollDisplayLeft ();

መዘግየት (300);

}

lcd.clear ();

lcd.print ("የይለፍ ቃል ያስገቡ");

}

ባዶነት loop ()

{

ማብሪያ (ማሳያ) // በዋናው ምናሌ ውስጥ እኛ ያለነው

{// ተጠቃሚው ይጫኑ 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 ();

መቀየሪያ (ብጁ ቁልፍ)

{

ጉዳይ 'ሀ':

{

Serial.println ("ሀ ተጭኗል");

StoreUser ();

ሰበር;

}

ጉዳይ 'ለ'

{

Serial.println ("B ተጭኖ ነበር");

ከሆነ (ተጠቃሚዎች == 0) {

lcd.clear ();

lcd.print ("የተቀመጡ ተጠቃሚዎች የሉም");

መዘግየት (3000);

lcd.clear ();

ማሳያ = 1;

ሰበር;

}

ማሳያ ተጠቃሚዎች (); ሰበር;

}

ጉዳይ 'ሐ' ፦

{

Serial.println ("C ተጭኖ ነበር"); // በሙከራ ጊዜ ጥቅም ላይ የዋለ

int ext = 0;

ሳለ (! ext) {

ቻር ቸ;

temp = TempMenu ();

ከሆነ (temp! = tempPre) {

lcd.clear ();

lcd.print ("ሙቀት");

lcd.setCursor (0, 1);

lcd.print (temp);

lcd.print ("C");

tempPre = temp;

መዘግየት (500);

}

ch = customKeypad.getKey ();

ከሆነ (ch == ' *') // ከሙቀት ማውጫ ይውጡ (* ከተጫነ)

{

ext = 1;

lcd.clear ();

ማሳያ = 1;

}

}

ሰበር;

TempMenu ();

ሰበር;

}

ጉዳይ ‹ዲ› ፦

{

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 ();

(ብጁ ኪይ) // አንድ ቁልፍ በትክክል እንደተጫነ ካረጋገጠ ፣ (ብጁ ኪይ! = NO_KEY)

{

ውሂብ [data_count] = customKey; // ቻርትን ወደ የውሂብ ድርድር ያከማቹ

lcd.setCursor (data_count, 1); // እያንዳንዱን አዲስ ቻርተር ለማሳየት ጠቋሚውን ያንቀሳቅሱ

lcd.print ("*"); // በተጠቀሰው ጠቋሚ ላይ የህትመት ቻር

የውሂብ_ቁጥር ++; // አዲስ ቻርትን ለማከማቸት የውሂብ ድርድር በ 1 ይጨምሩ ፣ እንዲሁም የገቡትን የ chars ብዛት ይከታተሉ

}

ከሆነ (data_count == Password_Lenght-1) // የድርድር መረጃ ጠቋሚ ከተጠበቀው የቻርሶች ብዛት ጋር እኩል ከሆነ ፣ መረጃውን ከዋናው ጋር ያወዳድሩ

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("የይለፍ ቃል ነው");

ከሆነ (! strcmp (ውሂብ ፣ ማስተር)) // እኩል (strcmp (ውሂብ ፣ ማስተር) == 0)

{

lcd.print (“ጥሩ”);

lcd.clear ();

ማሳያ = 1;

}

ሌላ

lcd.print ("መጥፎ");

መዘግየት (1000) ፤ // የይለፍ ቃሉ ከመጠራቱ በፊት በማያ ገጹ ላይ ሙሉ በሙሉ መታየቱን ለማረጋገጥ 1 ሰከንድ መዘግየትን አክሏል።

lcd.clear ();

clearData ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("የይለፍ ቃል ያስገቡ");

}

}

int TempMenu ()

{

Wire.begin ማስተላለፊያ (አድራሻ);

Wire.write (0);

Wire.endTransmission ();

Wire.requestFrom (አድራሻ ፣ 1);

እያለ (Wire.available () == 0);

int c = Wire.read ();

መመለስ ሐ;

}

ባዶ ባዶ ውሂብ ()

{

ሳለ (የውሂብ_ቁጥር! = 0)

{// ይህ ለማንኛውም የድርድር መጠን ሊያገለግል ይችላል ፣

ውሂብ [data_count--] = 0; // ለአዲስ ውሂብ ድርድርን ያፅዱ

}

}

ባዶ መደብር ተጠቃሚ ()

{

int ext = 0;

int ተጠቃሚ;

ቻር ቸ;

ሳለ (! ext) {

lcd.clear ();

lcd.print ("ተጠቃሚ አስገባ");

ተጠቃሚ = ተጠቃሚዎች + 1;

lcd.print (ተጠቃሚ);

int x = 0;

ሳለ (! x) {

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

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [ተጠቃሚ - 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;

}

}

ተጠቃሚዎች ++;

}

}

ባዶ ማሳያ ማሳያ ተጠቃሚዎች ()

{

lcd.clear ();

ለ (int i = 0; i <users; 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 ሊሆኑ የሚችሉ አማራጮች ይታያሉ።

· ሀ - የተጠቃሚ የሞባይል ስልክ ቁጥሮችን ያስገቡ።

o ተጠቃሚን ወደ ስርዓቱ ለማስቀመጥ 10 አሃዞችን ያስገቡ

o 10 አሃዞች ከገቡ በኋላ ተጨማሪ ተጠቃሚዎችን ለመጨመር “*” ን ይጫኑ ወይም ወደ ዋናው ምናሌ ለመመለስ “#” ን ይጫኑ።

· ለ - የተቀመጡ ተጠቃሚዎችን ያሳዩ

o ተጠቃሚዎች ማያ ገጹን ያሸብልላሉ ፣ እያንዳንዳቸው ለ 3 ሰከንዶች ይታያሉ ፣ ሁሉም ተጠቃሚዎች እንደታዩ ወዲያውኑ ገጹ ይዘጋል እና ወደ ዋናው ምናሌ ይመለሳል።

o በምናሌ አማራጭ ሀ ውስጥ ምንም ተጠቃሚዎች ካልተጨመሩ “ምንም የተቀመጡ ተጠቃሚዎችን” ያሳያል።

· ሐ - የቀጥታ ሙቀትን ያሳያል

o ወደ ዋናው ምናሌ ለመመለስ “*” ን ይጫኑ

· D - አጭር ጽሑፍ ያሳዩ

o የፈጣሪውን ስም እና የተሰበሰበበትን ርዕሰ ጉዳይ ከቀን ጋር ያሳያል።

የሚመከር: