ዝርዝር ሁኔታ:

አንድ ፒን 4 × 4 የቁልፍ ሰሌዳ 10 ደረጃዎች
አንድ ፒን 4 × 4 የቁልፍ ሰሌዳ 10 ደረጃዎች

ቪዲዮ: አንድ ፒን 4 × 4 የቁልፍ ሰሌዳ 10 ደረጃዎች

ቪዲዮ: አንድ ፒን 4 × 4 የቁልፍ ሰሌዳ 10 ደረጃዎች
ቪዲዮ: እንዴት የረሳነዉን የስልችን ፓተርን በቀላሉ መክፈት እነደሚቻል how to reset lost pattern or pin code 2024, ታህሳስ
Anonim
አንድ ፒን 4 × 4 የቁልፍ ሰሌዳ
አንድ ፒን 4 × 4 የቁልፍ ሰሌዳ

የቁልፍ ሰሌዳ ባየሁ ቁጥር እሱ በብዙ ፒኖች ይመጣል ፣ የእርስዎ የአርዱዲኖ ፒኖች ትልቅ ብክነት ነው ፣ ስለዚህ የቁልፍ ሰሌዳውን በአንድ እና በአንድ ፒን ብቻ ማስኬድ እንችላለን?.መልሱ እዚህ አለ።

ደረጃ 1 - የቁሳቁሶች ሂሳብ

የቁሳቁሶች ሂሳብ
የቁሳቁሶች ሂሳብ

ሃርድዌር

01 አርዱዲኖ UNO

02 የዳቦ ሰሌዳዎች

01 LCD ከ I2C ጋር

16 የግፋ አዝራሮች

04 ተቃዋሚዎች 1.5 ኪ

04 resistors 620 Ω

04 ተቃዋሚዎች 220 Ω

08 resistors 100 Ω

01 ተከላካይ 1 ኪ

07 ዝላይ ሽቦዎች

ሶፍትዌር

Arduino IDE በእርስዎ ፒሲ ላይ ተጭኗል

ደረጃ 2 - መርሃግብራዊ እና ሲክሬም

ዕቅድ እና ሲክሬም
ዕቅድ እና ሲክሬም
ዕቅድ እና ሲክሬም
ዕቅድ እና ሲክሬም

ሁሉም ሀሳቡ 4*4 የማትሪክስ የግፊት አዝራሮች በአቀባዊ ከመሬት ጋር በአቀባዊ የተገናኘ እና በአግድም በሌላ መሪ (የአዝራር መሪ) እና የ 1.5 kΩ ፣ 620Ω ፣ 220Ω ፣ እና 100Ω ፣ የ መርሃግብሩ እንደሚታየው 4 ረድፎቹ በአራት 100Ω ተቃዋሚዎች ተገናኝተዋል።

አንድ አዝራር በጫኑ ቁጥር ወረዳውን ይዘጋሉ እና አሁኑኑ በተለየ መንገድ እና በተለዋዋጭ ሰንሰለቶች ውስጥ ያልፋል ፣ ለዚህም ነው ፒን A0 ለእያንዳንዱ የግፊት ቁልፍ የተለየ የአናሎግ ንባብ የሚቀበለው። አሁን የሚያስፈልግዎት ነገር ኮድ ማውጣት ነው።

ደረጃ 3 - ኮዱ

#ያካትቱ

#ያካትቱ

LiquidCrystal_I2C lcd (0x3f, 20, 4);

int አዝራር = A0;

int readvalue;

ባዶነት ማዋቀር ()

{

Serial.begin (9600);

lcd.begin ();

pinMode (አዝራር ፣ ግቤት);

lcd.backlight ();

lcd.print ("ሰላም ዓለም");

መዘግየት (2000);

lcd.clear ();

lcd.print ("አንድ ፒን 4*4 የቁልፍ ሰሌዳ");

መዘግየት (2000); }

ባዶነት loop ()

{

readvalue = analogRead (አዝራር);

Serial.println (readvalue);

ከሆነ (readvalue == 852) {lcd.clear (); lcd.print ("A");}

ሌላ {ከሆነ (readvalue == 763) {lcd.clear (); lcd.print ("B");}

ሌላ {ከሆነ (readvalue == 685) {lcd.clear (); lcd.print ("C");}

ሌላ {ከሆነ (readvalue == 965) {lcd.clear (); lcd.print ("D");}

ሌላ {ከሆነ (readvalue == 565) {lcd.clear (); lcd.print ("9");}

ሌላ {ከሆነ (readvalue == 614) {lcd.clear (); lcd.print ("6");}

ሌላ {ከሆነ (readvalue == 360) {lcd.clear (); lcd.print ("3");}

ሌላ {ከሆነ (readvalue == 335) {lcd.clear (); lcd.print ("#");}

ሌላ {ከሆነ (readvalue == 396) {lcd.clear (); lcd.print ("8");}

ሌላ {ከሆነ (readvalue == 349) {lcd.clear (); lcd.print ("5");}

ሌላ {ከሆነ (readvalue == 235) {lcd.clear (); lcd.print ("2");}

ሌላ {ከሆነ (readvalue == 279) {lcd.clear (); lcd.print ("0");}

ሌላ {ከሆነ (readvalue == 452) {lcd.clear (); lcd.print ("7");}

ሌላ {ከሆነ (readvalue == 271) {lcd.clear (); lcd.print ("4");}

ሌላ {ከሆነ (readvalue == 170) {lcd.clear (); lcd.print ("1");}

ሌላ {ከሆነ (readvalue == 92) {lcd.clear (); lcd.print ("*");} ሌላ {}}}}}}}}}}}}}}}}}}}

ደረጃ 4: የእሴቶች እርማት

የእሴቶች እርማት
የእሴቶች እርማት

ተከታታይ ሞኒተርን ሲከፍቱ የ 1023 እሴት ያሳያል ፣ አንድ አዝራር ከጫኑ ሌላ ንባብ ይሰጥዎታል ፣ እነዚያን እሴቶች መውሰድ እና በኮዱ ውስጥ አንዳንድ ለውጦችን ማድረግ አለብዎት።

ደረጃ 5 ፕሮጀክት ከትችትና ግምገማ በኋላ

ፕሮጀክት ከትችትና ግምገማ በኋላ
ፕሮጀክት ከትችትና ግምገማ በኋላ

በጣም ጠቃሚ ለነበሩ አንዳንድ ሰዎች ከማህበረሰቡ ለቀቁ አንዳንድ አስተያየቶች ምስጋናችንን ለመማር እና ለማካፈል ሁላችንም እዚህ እንደሆንን ምንም ጥርጥር የለውም - በፕሮጄጄቴ ላይ አንዳንድ ማስተካከያዎችን እና ማሻሻያዎችን ለማድረግ ወሰንኩ-

ሃርድዌር:

በመጋገሪያ ሰሌዳዎች ውስጥ ያለውን መጥፎ ግንኙነት ችግር ለማስወገድ በፒሲቢ ውስጥ ሁሉንም ክፍሎች ለመሸጥ ወሰንኩ።

ኮዱ ፦

አንድ ጓደኛዬ የሶፍትዌር ማጉደልን እንድጠቀም መክሮኛል እና መርሃግብሩ ንባብን ለመምረጥ የተወሰነ ጊዜ እንዲወስድ ለማድረግ አንድ ሉፕ (“ለ” loop) ለምሳሌ ብዙ ንባቦችን ያደርጋል (በፈተናዬ 500) ግን ይወስዳል የመጨረሻውን ብቻ።

ለ (i = 1; i <= 500; i ++) {// 500 ኛውን አናሎግ ብቻ ይውሰዱ

እሴት = analogRead (አዝራር);} // ያ መጥፎ ንባቦችን ለማስወገድ የተወሰነ ጊዜን ለመውሰድ ይረዳል

ለእሱ ምስጋና ይግባው ሌላ ጓደኛዬ ‹ንባብ› ን ከተለያዩ እሴቶች ጋር ለማወዳደር ምክር ሰጠኝ ምክንያቱም ‹አንባቢ› ለተመሳሳዩ የግፊት ቁልፍ ብዙ እሴቶችን ይወስዳል። 851 852 ፣ 853 ፣ 854 ፣ 855 ስለዚህ የ 7 እሴቶች ክልል ነው - ደፍ (852) እና 3 እሴቶች ግራ እና ቀኝ። እዚህ ማድረግ ያለብን በ “አንባቢ እሴት” እና “852” መካከል ያለውን ልዩነት ፍጹም እሴት ከ “3” ጋር ማወዳደር ነው።

ከሆነ (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}

ደረጃ 6: ከአንዳንድ የሽያጭ ሥራ በኋላ

ከአንዳንድ የሽያጭ ሥራ በኋላ
ከአንዳንድ የሽያጭ ሥራ በኋላ
ከአንዳንድ የሽያጭ ሥራ በኋላ
ከአንዳንድ የሽያጭ ሥራ በኋላ
ከአንዳንድ የሽያጭ ሥራ በኋላ
ከአንዳንድ የሽያጭ ሥራ በኋላ

ደረጃ 7 የእውነት አፍታ

እርስዎ እንደሚመለከቱት ፕሮግራሙ አንዳንድ ጊዜ ቁልፎችን ግራ ያጋባል ነገር ግን አሁንም ይሠራል ፣ በንድፈ ሀሳቡ በወረዳው ላይ ምንም ችግር የለውም ፣ ግን ኮዱ የበለጠ መለካት ይፈልጋል።

ደረጃ 8: መጨረሻው

ይህንን ፕሮጀክት እንደወደዱት ተስፋ አደርጋለሁ እና እሱን ለማድረግ ይሞክራሉ ፣ ምናልባት ከእኔ የተሻለ ያደርጉ ይሆናል።

ጥያቄዎች ካሉዎት ይጠይቁኝ ፣ አስተያየቶችን ይተው እና ያንን ከወደዱ ለእኔ መምረጥዎን አይርሱ።

የሚመከር: