ዝርዝር ሁኔታ:

አርዱዲኖ ካልኩሌተር 4X4 ቁልፍ ሰሌዳ በመጠቀም 4 ደረጃዎች (ከስዕሎች ጋር)
አርዱዲኖ ካልኩሌተር 4X4 ቁልፍ ሰሌዳ በመጠቀም 4 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: አርዱዲኖ ካልኩሌተር 4X4 ቁልፍ ሰሌዳ በመጠቀም 4 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: አርዱዲኖ ካልኩሌተር 4X4 ቁልፍ ሰሌዳ በመጠቀም 4 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: የአርዱብሎክ መተግበሪያን በመጫን ላይ 2024, ህዳር
Anonim
Image
Image

በዚህ መማሪያ ውስጥ እኛ ከአርዱዲኖ ጋር የራሳችንን ካልኩሌተር እንገነባለን። እሴቶቹ በቁልፍ ሰሌዳ (4 × 4 ቁልፍ ሰሌዳ) በኩል ሊላኩ እና ውጤቱ በኤል ሲ ዲ ማያ ገጽ ላይ ሊታይ ይችላል። ይህ ካልኩሌተር እንደ መደመር ፣ መቀነስ ፣ ማባዛት እና መከፋፈል ያሉ ቀላል አሰራሮችን በሙሉ ቁጥሮች ማከናወን ይችላል። ግን አንዴ ጽንሰ -ሐሳቡን ከተረዱ በኋላ በአርዲኖ በተሠሩ ተግባራት ሳይንሳዊ ተግባሮችን እንኳን መተግበር ይችላሉ።

አቅርቦቶች

አርዱዲኖ ኡኖ

16 × 2 ኤልሲዲ ማሳያ

4 × 4 የቁልፍ ሰሌዳ

የዳቦ ሰሌዳ

ዝላይ ኬብሎች

አርዱዲኖ ኬብል

ደረጃ 1: መርሃግብሮች

ደረጃ 2 የቤተ -መጽሐፍት ጭነት

ቀደም ሲል እንደተነገረን ቤተመፃሕፍትን በመጠቀም ኤልዲዲ እና የቁልፍ ሰሌዳውን ከአርዱዲኖ ጋር እናገናኛለን። ስለዚህ በመጀመሪያ ወደ እኛ አርዱዲኖ አይዲኢ እንጨምርላቸው። ለኤልሲዲ ቤተ -መጽሐፍት ቀድሞውኑ በነባሪዎ በአርዱዲኖ ውስጥ ተካትቷል ስለዚህ እኛ መጨነቅ አያስፈልገንም። ለቁልፍ ሰሌዳ ቤተ -መጽሐፍት (ከ Github ለማውረድ አገናኙ ላይ ጠቅ ያድርጉ)። የዚፕ ፋይል ያገኛሉ ፣ ከዚያ ይህንን ሊብ በአርዲኖ በ Sketch -> ቤተ -መጽሐፍትን ያካትቱ ->. ZIP ፋይል ያክሉ እና ቦታውን ወደዚህ የወረደ ፋይል ያመልክቱ። አንዴ ከተጠናቀቀ ሁላችንም ለፕሮግራም ተዘጋጅተናል።

ደረጃ 3 የምንጭ ኮድ

/*

© Techtronic Harsh

*/

#ያካትቱ

#ያካትቱ

LiquidCrystal lcd (0, 1, 2, 3, 4, 5);

const byte ROWS = 4; const byte COLS = 4;

የቻር ቁልፎች [ROWS] [COLS] = {

{'1' ፣ '2' ፣ '3' ፣ '+'} ፣ {'4' ፣ '5' ፣ '6' ፣ '-'} ፣ {'7' ፣ '8' ፣ '9' ፣ ' *'}, {' C ',' 0 ',' = ','/'}}; ባይት ረድፍ ፒኖች [ROWS] = {13, 12, 11, 10}; ባይት ኮልፒንስ [COLS] = {9, 8, 7, 6};

የቁልፍ ሰሌዳ myKeypad = የቁልፍ ሰሌዳ (makeKeymap (ቁልፎች) ፣ የረድፍ ፒኖች ፣ ኮፒዎች ፣ ረድፎች ፣ ኮል);

ቡሊያን presentValue = ሐሰት;

ቡሊያን ቀጥሎ = ሐሰት; ቡሊያን የመጨረሻ = ሐሰት; ሕብረቁምፊ ቁጥር 1 ፣ ቁጥር 2; int መልስ; ቻር ኦፕ;

ባዶነት ማዋቀር ()

{lcd.begin (16 ፣ 2) ፤ lcd.setCursor (0, 0); lcd.print ("Techtronic Harsh"); lcd.setCursor (0, 1); lcd.print ("ካልኩሌተር"); መዘግየት (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("እንደ እና"); lcd.setCursor (0, 1); lcd.print ("እኛን ይመዝገቡ"); መዘግየት (3000); lcd.clear (); }

ባዶነት loop () {

የቻር ቁልፍ = myKeypad.getKey ();

ከሆነ (ቁልፍ! = '6' || ቁልፍ == '7' || ቁልፍ == '8' || ቁልፍ == '9' || ቁልፍ == '0'))

{ከሆነ (presentValue! = true) {num1 = num1 + key; int numLength = num1.length (); lcd.setCursor (15 - numLength, 0); // ለኦፕሬተር lcd.print (num1) አንድ ነጭ ቦታ ለማስተካከል; } ሌላ {num2 = num2 + ቁልፍ; int numLength = num2.length (); lcd.setCursor (15 - numLength, 1); lcd.print (num2); የመጨረሻ = እውነት; }}

ሌላ ከሆነ (presentValue == false && key! = NO_KEY && (ቁልፍ == '/' || ቁልፍ == '*' || ቁልፍ == '-' || ቁልፍ == '+'))

{ከሆነ (presentValue == ሐሰተኛ) {presentValue = true; op = ቁልፍ; lcd.setCursor (15, 0); lcd.print (op); }}

ሌላ ከሆነ (የመጨረሻ == እውነተኛ && ቁልፍ! = NO_KEY && key == '=') {

ከሆነ (op == ' +') {answer = num1.toInt () + num2.toInt (); } ሌላ ከሆነ (op == ' -') {answer = num1.toInt () - num2.toInt (); } ሌላ ከሆነ (op == ' *') {answer = num1.toInt () * num2.toInt (); } ሌላ ከሆነ (op == ' /') {answer = num1.toInt () / num2.toInt (); } lcd.clear (); lcd.setCursor (15, 0); lcd.autoscroll (); lcd.print (መልስ); lcd.noAutoscroll (); } ሌላ ከሆነ (ቁልፍ! = NO_KEY && key == 'C') {lcd.clear (); presentValue = ሐሰት; የመጨረሻ = ሐሰት; num1 = ""; num2 = ""; መልስ = 0; op = "; }}

/*

© Techtronic Harsh

*/

ደረጃ 4: መስራት

እንደ የወረዳ ዲያግራም ግንኙነቶችን ያድርጉ እና ኮዱን ይስቀሉ። ስህተትን ካሳየ ከላይ በተሰጠው መመሪያ መሠረት ቤተ -መጽሐፍቱን ማከልዎን ያረጋግጡ።

በቁልፍ ሰሌዳ እና በግምት ላይ ቁምፊ;

  • “ሀ” - መደመር (+)
  • “ለ” - መቀነስ (-)
  • “ሐ” - ማባዛት (*)
  • “መ” - ክፍል (/)
  • “*” - ግልጽ (ሲ)
  • “#” - እኩል (=)

የሚመከር: