ዝርዝር ሁኔታ:

ኤልሲዲ ካልኩሌተር በጃይ ሚሽራ 8 ደረጃዎች
ኤልሲዲ ካልኩሌተር በጃይ ሚሽራ 8 ደረጃዎች

ቪዲዮ: ኤልሲዲ ካልኩሌተር በጃይ ሚሽራ 8 ደረጃዎች

ቪዲዮ: ኤልሲዲ ካልኩሌተር በጃይ ሚሽራ 8 ደረጃዎች
ቪዲዮ: Deek-Robot BL-02 100V DC 10A Volt Ampere የአሁን የኃይል መለኪያ 2024, ሀምሌ
Anonim
ኤልሲ ካልኩሌተር በጃይ ሚሽራ
ኤልሲ ካልኩሌተር በጃይ ሚሽራ

የቲንከርካድ ፕሮጄክቶች »

ይህ የራስዎን ካልኩሌተር እንዴት እንደሚፈጥሩ የሚያስተምርዎት በጣም ጠቃሚ ፕሮጀክት ነው። ተጨማሪ መገልገያዎች በመታገዝ ይህንን ካልኩሌተር በመስመር ላይ ወይም በእውነተኛ ህይወት ውስጥ መፍጠር ይችላሉ ፣ ግን አሁን እኛ የመስመር ላይ ካልኩሌተርን በመፍጠር ላይ ብቻ እናተኩራለን።

አቅርቦቶች

  • አርዱዲኖ ኡኖ አር 3
  • 220 Ohms ተከላካይ
  • 4*4 የቁልፍ ሰሌዳ
  • 16*2 ኤልሲዲ
  • ወረዳውን ለማገናኘት ብዙ ሽቦዎች

ደረጃ 1: አቅርቦቶችዎን በ TinkerCad ላይ ይሰብስቡ

አቅርቦቶችዎን በ TinkerCad ላይ ይሰብስቡ
አቅርቦቶችዎን በ TinkerCad ላይ ይሰብስቡ

ጭንቀትን እና ስህተቶችን ለመቀነስ በደረጃ 2 ከመጀመራችን በፊት ሁሉም አቅርቦቶችዎ መኖራቸውን ያረጋግጡ። እንዲሁም ትክክለኛውን አቅርቦቶች መጠቀሙን ያረጋግጡ ፣ ከላይ በዚህ ምስል ላይ ያሉት አንዳንድ ክፍሎች ከሌሎች ክፍሎች ጋር ተመሳሳይ ናቸው ፣ ስለዚህ በመካከላቸው እንዳይቀላቀሉ። ከላይ ያለውን ምስል እንደ መመሪያዎ ይጠቀሙ።

ደረጃ 2 አቅርቦቶችዎን ያዘጋጁ

አቅርቦቶችዎን ያዘጋጁ
አቅርቦቶችዎን ያዘጋጁ

የእርስዎ ካልኩሌተር ምን እንደሚመስል ቅድመ -እይታ ለማየት አቅርቦቶችዎን ማዘጋጀት በጣም ጥሩው መንገድ ነው። የሚፈልጉትን ማንኛውንም የካልኩሌተር ንድፍ መፍጠር ይችላሉ ነገር ግን ካልኩሌተር ተፈጥሯዊ መስሎ እንዲታይ እና ተጠቃሚዎች ንድፉን ተረድተው ግራ እንዳይጋቡ ያረጋግጡ። ለሁሉም ውጤታማ እና ለመረዳት የሚያስችለውን የተለመደ የክፍል ማስያ ንድፍ ተጠቀምኩ። እርስዎ የእኔን ንድፍ መምረጥ ወይም የራስዎን መፍጠር ይችላሉ ፣ ግን ያ ሁሉ የፈጠራ እና መልካም ዕድል ይሁን!

ደረጃ 3 - ሽቦዎችን ማገናኘት

ሽቦዎችን በማገናኘት ላይ
ሽቦዎችን በማገናኘት ላይ

ከበስተጀርባ ያለውን ትርጉም ካልተረዱ ሽቦዎችን ማገናኘት ከባድ ሥራ ነው። በዚህ ሽቦ ውስጥ ኮዱን ለመፃፍ ጊዜው ሲደርስ በቡድን ሆነው እንዲሠሩ ሁሉንም አራቱን አካላት አንድ ላይ ለማገናኘት እየሞከርን ነው። ሽቦዎች ከሌሉ ፣ የአሁኑ ፍሰት አይፈስም ፣ ወደ ውድቀት ፕሮጀክት ይመራል። ያለምንም አለመግባባት ሽቦዎችዎ በትክክል መገናኘታቸውን ያረጋግጡ።

ሽቦዎቹን ማገናኘት ከጨረሱ በኋላ የእርስዎ ሽቦዎች ሥርዓታማ እና የተደራጁ መሆናቸውን ያረጋግጡ ስለዚህ እርስዎ እና ሌሎች በዚህ ካልኩሌተር ሃርድዌር ውስጥ በትክክል ምን እየተከናወነ እንዳለ ለመረዳት ቀላል ይሆንልዎታል። ቀደም ብዬ እንደነገርኩት ፣ ሽቦዎችዎን የማደራጀት ዘዴዬን መጠቀም ይችላሉ ወይም የራስዎን መፍጠር ይችላሉ ፣ ግን እርስዎ ለማድረግ የወሰኑት ሁሉ ፣ እነሱ የተወሰነ ቦታ መያዛቸውን ያረጋግጡ።

ደረጃ 4 - ኮዱን መጻፍ

ኮዱን መጻፍ
ኮዱን መጻፍ
ኮዱን መጻፍ
ኮዱን መጻፍ
ኮዱን መጻፍ
ኮዱን መጻፍ

#ያካትቱ

#አካትት #አካትት

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

ረጅም መጀመሪያ = 0; ረጅም ሰከንድ = 0; ድርብ ድምር = 0;

char customKey; const byte ROWS = 4; const byte COLS = 4;

የቻር ቁልፎች [ROWS] [COLS] = {{'1', '4', '7', '/'} ፣ {'2', '5', '8', '+'} ፣ {'3', '6', '9', '-'}, {'C', '0', '=', '*'}}; ባይት ረድፍ ፒኖች [ROWS] = {7, 6, 5, 4}; // የቁልፍ ሰሌዳው ባይት ኮልፒንስ [COLS] = {3, 2, 1, 0} ከረድፍ ፒኖዎች ጋር ይገናኙ። // ከቁልፍ ሰሌዳው አምድ ፒኖዎች ጋር ይገናኙ

// የክፍል ምሳሌን ያስጀምሩ።

ባዶነት ማዋቀር () {lcd.begin (16, 2); // ጀምር lcd ለ (int i = 0; i <= 3; i ++); lcd.setCursor (0, 0); lcd.print ("ካልኩሌተር"); lcd.setCursor (0, 1); lcd.print ("በጃይ ሚሽራ"); መዘግየት (4000); lcd.clear (); lcd.print (“የመጨረሻ ፕሮጀክት”); መዘግየት (2500); lcd.clear (); lcd.setCursor (0, 0); }

ባዶነት loop () {

customKey = customKeypad.getKey (); መቀየሪያ (ብጁ ኪይ) {ጉዳይ '0'… '9': // አንድ ኦፕሬተር "+-*/" lcd.setCursor (0, 0) እስኪጫን ድረስ ይህ የመጀመሪያውን እሴት መሰብሰቡን ይቀጥላል። መጀመሪያ = መጀመሪያ * 10 + (ብጁ ኪይ - '0'); lcd.print (የመጀመሪያ); ሰበር;

ጉዳይ '+': መጀመሪያ = (ጠቅላላ! = 0? ጠቅላላ: መጀመሪያ); lcd.setCursor (0, 1); lcd.print ("+"); ሁለተኛ = SecondNumber (); // የተሰበሰበውን ሁለተኛውን ቁጥር ጠቅላላ = የመጀመሪያ + ሁለተኛ ያግኙ ፣ lcd.setCursor (0, 3); lcd.print (ጠቅላላ); የመጀመሪያው = 0 ፣ ሁለተኛ = 0; // ለቀጣይ አጠቃቀም እረፍት እሴቶችን ወደ ዜሮ ይመልሱ ፤

ጉዳይ '-': መጀመሪያ = (ጠቅላላ! = 0? ጠቅላላ: መጀመሪያ); lcd.setCursor (0, 1); lcd.print ("-"); ሁለተኛ = SecondNumber (); ጠቅላላ = የመጀመሪያው - ሁለተኛ; lcd.setCursor (0, 3); lcd.print (ጠቅላላ); የመጀመሪያው = 0 ፣ ሁለተኛ = 0; ሰበር;

ጉዳይ '*': መጀመሪያ = (ጠቅላላ! = 0? ጠቅላላ: መጀመሪያ); lcd.setCursor (0, 1); lcd.print ("*"); ሁለተኛ = SecondNumber (); ጠቅላላ = የመጀመሪያው * ሰከንድ; lcd.setCursor (0, 3); lcd.print (ጠቅላላ); የመጀመሪያው = 0 ፣ ሁለተኛ = 0; ሰበር;

ጉዳይ '/': መጀመሪያ = (ጠቅላላ! = 0? ጠቅላላ: መጀመሪያ); lcd.setCursor (0, 1); lcd.print ("/"); ሁለተኛ = SecondNumber (); lcd.setCursor (0, 3);

ሁለተኛ == 0? lcd.print ("ልክ ያልሆነ"): ጠቅላላ = (ተንሳፋፊ) የመጀመሪያ / (ተንሳፋፊ) ሁለተኛ;

lcd.print (ጠቅላላ); የመጀመሪያው = 0 ፣ ሁለተኛ = 0; ሰበር;

ጉዳይ 'ሐ': ጠቅላላ = 0; lcd.clear (); ሰበር; }}

ረጅም SecondNumber () {ሳለ (1) {customKey = customKeypad.getKey (); ከሆነ (customKey> = '0' && customKey <= '9') {second = second * 10 + (customKey - '0'); lcd.setCursor (0, 2); lcd.print (ሁለተኛ); }

(customKey == '=') ከተሰበረ; // ተመለስ ሁለተኛ; } ሁለተኛ መመለስ; }

ደረጃ 5 - ኮዱን ማፍረስ

ኮዱን ማፍረስ
ኮዱን ማፍረስ

ለኮምፒውተሩ ለመረዳት እሴቶችን አነሳስተናል

#ያካትቱ

#አካትት #አካትት

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

ረጅም መጀመሪያ = 0; ረጅም ሰከንድ = 0; ድርብ ድምር = 0;

char customKey; const byte ROWS = 4; const byte COLS = 4;

የቁልፍ ሰሌዳው የሚሰራበትን ቁጥሮች እና ምልክቶች ለኮምፒውተሩ ነገርነው።

የቻር ቁልፎች [ROWS] [COLS] = {{'1', '2', '3', '/'} ፣ {'4', '5', '6', '+'} ፣ {'7', '8', '9', '-'}, {'C', '0', '=', '*'}};

የቁልፍ ሰሌዳን ረድፎች እና ዓምዶች እና የትኛው ቁጥር በየትኛው ዓምድ ውስጥ እንደሚመጣ ፣ ወዘተ

ባይት ረድፍ ፒኖች [ROWS] = {7, 6, 5, 4}; ባይት ኮልፒንስ [COLS] = {3, 2, 1, 0};

እኛ ለኮምፒውተሩ መግቢያውን ወይም በማያ ገጹ ላይ ያለውን ኃይል ፈጠርን (የራስዎን ስም በላዩ ላይ መጻፍ ይችላሉ)።

ባዶነት ማዋቀር () {lcd.begin (16, 2); ለ (int i = 0; i <= 3; i ++); lcd.setCursor (0, 0); lcd.print ("ካልኩሌተር"); lcd.setCursor (0, 1); lcd.print ("በጃይ ሚሽራ"); መዘግየት (4000); lcd.clear (); lcd.print (“የመጨረሻ ፕሮጀክት”); መዘግየት (2500); lcd.clear (); lcd.setCursor (0, 0); }

በካልኩሌተር ውስጥ ለእያንዳንዱ ክወና ትርጉሙን እና ቀመሩን እንፈጥራለን ፣ ስለሆነም ኮምፒዩተሩ ተጠቃሚው በሒሳብ ማሽን ላይ “+” ን ሲጫን ምን ዓይነት ቀመር እንደሚጠቀም ይገነዘባል።

{ጉዳይ '0'… '9': lcd.setCursor (0, 0); መጀመሪያ = መጀመሪያ * 10 + (ብጁ ኪይ - '0'); lcd.print (የመጀመሪያ); ሰበር;

ጉዳይ '/': መጀመሪያ = (ጠቅላላ! = 0? ጠቅላላ: መጀመሪያ); lcd.setCursor (0, 1); lcd.print ("/"); ሁለተኛ = SecondNumber (); lcd.setCursor (0, 3);

ሁለተኛ == 0? lcd.print ("ልክ ያልሆነ"): ጠቅላላ = (ተንሳፋፊ) የመጀመሪያ / (ተንሳፋፊ) ሁለተኛ;

lcd.print (ጠቅላላ); የመጀመሪያው = 0 ፣ ሁለተኛ = 0; ሰበር; ጉዳይ '+': መጀመሪያ = (ጠቅላላ! = 0? ጠቅላላ: መጀመሪያ); lcd.setCursor (0, 1); lcd.print ("+"); ሁለተኛ = SecondNumber (); lcd.setCursor (0, 3); lcd.print (ጠቅላላ); የመጀመሪያው = 0 ፣ ሁለተኛ = 0; ሰበር;

ጉዳይ '-': መጀመሪያ = (ጠቅላላ! = 0? ጠቅላላ: መጀመሪያ); lcd.setCursor (0, 1); lcd.print ("-"); ሁለተኛ = SecondNumber (); ጠቅላላ = የመጀመሪያው - ሁለተኛ; lcd.setCursor (0, 3); lcd.print (ጠቅላላ); የመጀመሪያው = 0 ፣ ሁለተኛ = 0; ሰበር;

ጉዳይ '*': መጀመሪያ = (ጠቅላላ! = 0? ጠቅላላ: መጀመሪያ); lcd.setCursor (0, 1); lcd.print ("*"); ሁለተኛ = SecondNumber (); ጠቅላላ = የመጀመሪያው * ሰከንድ; lcd.setCursor (0, 3); lcd.print (ጠቅላላ); የመጀመሪያው = 0 ፣ ሁለተኛ = 0; ሰበር;

ጉዳይ 'ሐ': ጠቅላላ = 0; lcd.clear (); ሰበር; }}

ኮዱ በጣም ቀላል ነው ፣ ማድረግ ያለብዎት እሱን ለመረዳት መሞከር እና ከዚያ ሁሉም ነገር በቀላሉ ሊከናወን ይችላል። በኮዱ ላይ ችግሮች ካሉ ፣ በኢሜል ይላኩልኝ።

ደረጃ 6 - የዚህ ካልኩሌተር ሃርድዌር እንዴት ይሠራል?

የዚህ የሂሳብ ማሽን ሃርድዌር እንዴት ይሠራል?
የዚህ የሂሳብ ማሽን ሃርድዌር እንዴት ይሠራል?

ይህ ካልኩሌተር ፣ ኤልሲዲ ፣ የቁልፍ ሰሌዳ ፣ የአርዱዲኖ ሰሌዳ እና 220 ohms resistor ይጠቀማል። እነዚህ ሁሉ ክፍሎች ተለያይተዋል ነገር ግን ከአርዱዱኖ እስከ ቁልፍ ሰሌዳው እና ኤል.ሲ.ዲ. የኤልሲዲው የተለያዩ ክፍሎች ከአርዱዲኖ ቦርድ ጋር የተገናኙ ሲሆን በመጨረሻም ሁለቱንም በቁልፍ ሰሌዳ ያገናኛል። ከግንኙነቱ በኋላ ኮዲንግ ሁሉንም ሥራውን ያከናውናል እና በቁልፍ ሰሌዳው ላይ ያለውን እያንዳንዱን አሠራር እና አዝራር የሚከተለውን ሥራ ይሰጠዋል።

ደረጃ 7 - የሂሳብ ማሽን ሙሉ ቅድመ -እይታ

የመጨረሻው ፕሮጀክታችን ይህን ይመስላል! ኮድዎ የማይሰራ ከሆነ ፣ ወይም አንዳንድ ቴክኒካዊ ችግሮች ካሉ እባክዎን በኢሜል ይላኩልኝ እና በጣም ጥሩውን የሂሳብ ማሽን እንዲፈጥሩ ለመርዳት የተቻለኝን ሁሉ እሞክራለሁ!

ደረጃ 8 - የዚህ ኮድ የእኔ አነሳሽነት

እኔ tinkercad ላይ ካልኩሌተር እንዴት እንደሚሰራ ከላይ ካለው ቪዲዮ አነሳሳኝ! እኔ ምንም አልገለበጥኩም እና አልለጠፍኩም ነገር ግን የእሱን የሂሳብ ማሽን እና የኮዱን ግንዛቤ እጠቀም ነበር።

የሚመከር: