ዝርዝር ሁኔታ:
ቪዲዮ: የአርዱዲኖ DIY ካልኩሌተር 1602 ኤልሲዲ እና 4x4 የቁልፍ ሰሌዳ በመጠቀም - 4 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:30
ጤና ይስጥልኝ በዚህ አስተማሪዎች ውስጥ መሰረታዊ ስሌቶችን ማድረግ የሚችል አርዱዲኖን በመጠቀም ካልኩሌተር እንሠራለን። ስለዚህ በመሠረቱ ከ 4x4 ቁልፍ ሰሌዳ ግብዓት እንወስዳለን እና በ 16x2 lcd ማሳያ ላይ ውሂቡን እናተም እና አርዱኢኖ ስሌቶችን ያደርጋል።
ደረጃ 1: የሚያስፈልጉዎት ነገሮች
ለዚህ አስተማሪዎች የሚከተሉትን ነገሮች ያስፈልጉናል አርዱinoኖ ኡኖ (ማንኛውም ስሪት ይሠራል)
16 × 2 ኤልሲዲ ማሳያ
4 × 4 የቁልፍ ሰሌዳ 9 ቪ ባትሪ ዳቦቦርድ የማገናኘት ሽቦዎች
ደረጃ 2 - ግንኙነቶች
የዚህ የአርዱዲኖ ካልኩሌተር ፕሮጀክት የተሟላ የወረዳ ሥዕል ከላይ ተሰጥቷል። በወረዳው ዲያግራም ላይ የሚታየው +5V እና የመሬት ግንኙነት ከአርዱዲኖ 5V እና የመሬት ፒን ማግኘት ይቻላል። አርዱዲኖ ራሱ 12V አስማሚ ወይም 9 ቪ ባትሪ በመጠቀም ከእርስዎ ላፕቶፕ ወይም በዲሲ መሰኪያ በኩል ሊሠራ ይችላል። ኤልዲዲውን በ 4 ቢት ሞድ ከአርዱዲኖ ጋር እየሠራን ነው ፣ ስለዚህ የኤልሲዲዎቹ የመጨረሻዎቹ አራት የመረጃ ቁርጥራጮች ብቻ ከአርዱዲኖ ጋር ተገናኝተዋል። ከላይ እንደተመለከተው የቁልፍ ሰሌዳው 8 የውጤት ፒኖች ይኖሩታል። ከላይ እንደሚታየው ከፒን 0 እስከ ፒን 7 መገናኘት አለባቸው። አንዳንድ ከዓር 0 እና ፒን 1 ጋር የተገናኘ ነገር ካለ ፕሮግራሙን በሚሰቅሉበት ጊዜ አንዳንድ የአርዱኖ ሰሌዳዎች ስህተት ሊያሳዩ ይችላሉ ፣ ስለዚህ ማንኛውም ካጋጠሙዎት በቀላሉ ያስወግዱ ፕሮግራሙን በሚጭኑበት ጊዜ የቁልፍ ሰሌዳው።
ደረጃ 3 ኮድ
የሚከተለውን ኮድ ይቅዱ እና አርዱዲኖዎን ወደ እሱ ይስቀሉ// * * የአርዱዲኖ ቁልፍ ሰሌዳ ማስያ መርሃ ግብር */#ከ ‹Lc› www.arduino. "Keypad.h" // የራስጌ ፋይል ለቁልፍ ሰሌዳ ከ https://github.com/Chris--A/Keypadconst byte ROWS = 4; // አራት ረድፎች ባይት COLS = 4; // ሶስት አምዶች // የቁልፍ ካርታ ቁልፎቹን ይግለጹ [ROWS] [COLS] = {{'7', '8', '9', 'D'} ፣ {'4', '5', '6', ' C '} ፣ {' 1 '፣' 2 '፣' 3 '፣' B '} ፣ {'*'፣' 0 '፣'#'፣' A '}} ፤ ባይት ረድፍ ፒኖች [ROWS] = {0, 1 ፣ 2 ፣ 3} ፤ // የቁልፍ ሰሌዳ ROW0 ፣ ROW1 ፣ ROW2 እና ROW3 ን ከእነዚህ Arduino pins.byte colPins [COLS] = {4, 5, 6, 7} ጋር ያገናኙ። // የቁልፍ ሰሌዳ COL0 ን ፣ COL1 ን እና COL2 ን ከእነዚህ Arduino pins ጋር ያገናኙ። Keypad kpd = Keypad (makeKeymap (ቁልፎች) ፣ ረድፎች ፒን ፣ ኮሊፒንስ ፣ ረድፎች ፣ COLS); // የቁልፍ ሰሌዳውን int rs = 8 ፣ en = 9 ፣ d4 = 10 ፣ d5 = 11 ፣ d6 = 12 ፣ d7 = 13 ይፍጠሩ። /ኤል.ዲ.ሲ የተገናኘባቸው ፒኖች LiquidCrystal lcd (rs ፣ en ፣ d4 ፣ d5 ፣ d6 ፣ d7); ረጅም ቁጥር 1 ፣ ቁጥር 2 ፣ ቁጥር; የቻር ቁልፍ ፣ እርምጃ; ቡሊያን ውጤት = ሐሰት ፣ ባዶነት ማዋቀር () {lcd.begin (16 ፣ 2) ፤ // እኛ 16*2 LCD ማሳያ lcd.print (“DIY Calculator”) እየተጠቀምን ነው ፤ // የመግቢያ መልእክት lcd.setCursor (0 ፣ 1) ያሳዩ ፤ // ጠቋሚውን ወደ አምድ 0 ፣ መስመር 1 መዘግየት (2000) ያዘጋጁ ፤ // መረጃን ለማሳየት ማሳያውን ይጠብቁ lcd.clear (); // ከዚያ ያፅዱ} ባዶነት loop () {key = kpd.getKey (); // የተጫነ የቁልፍ ዋጋን በካሪፍ ውስጥ (ቁልፍ! = NO_KEY) DetectButtons () ፣ ከሆነ (ውጤት == እውነት) CalculateResult () ፤ DisplayResult () ፤ } ባዶ DetectButtons () {lcd.clear (); // ከዚያ (ቁልፍ == '*') // ከተሰረዘ አዝራሩ ከተጫነ {Serial.println ("አዝራር ሰርዝ") ፤ ቁጥር = Num1 = Num2 = 0; ውጤት = ሐሰት;} ከሆነ (ቁልፍ == '1') // አዝራር 1 ከተጫነ {Serial.println ("አዝራር 1"); ከሆነ (ቁጥር == 0) ቁጥር = 1; ሌላ ቁጥር = (ቁጥር*10) + 1; // ሁለት ጊዜ ተጭኖ ከሆነ (ቁልፍ == '4') // አዝራር 4 ከተጫነ {Serial.println ("አዝራር 4"); ከሆነ (ቁጥር == 0) ቁጥር = 4; ሌላ ቁጥር = (ቁጥር*10) + 4; // ሁለት ጊዜ ተጭኖ ከሆነ (ቁልፍ == '7') // አዝራር 7 ከተጫነ {Serial.println ("አዝራር 7"); ከሆነ (ቁጥር == 0) ቁጥር = 7; ሌላ ቁጥር = (ቁጥር*10) + 7; // ሁለት ጊዜ ተጭኖ ከሆነ (ቁልፍ == '0') {Serial.println ("አዝራር 0"); // አዝራር 0 ተጭኖ ከሆነ (ቁጥር == 0) ቁጥር = 0; ሌላ ቁጥር = (ቁጥር*10) + 0; // ሁለት ጊዜ ተጭኖ ከሆነ (ቁልፍ == '2') // አዝራር 2 ተጭኗል {Serial.println ("አዝራር 2"); ከሆነ (ቁጥር == 0) ቁጥር = 2; ሌላ ቁጥር = (ቁጥር*10) + 2; // ሁለት ጊዜ ተጭኖ ከሆነ (ቁልፍ == '5') {Serial.println ("አዝራር 5"); ከሆነ (ቁጥር == 0) ቁጥር = 5; ሌላ ቁጥር = (ቁጥር*10) + 5; // ሁለት ጊዜ ተጭኖ ከሆነ (ቁልፍ == '8') {Serial.println ("አዝራር 8"); ከሆነ (ቁጥር == 0) ቁጥር = 8; ሌላ ቁጥር = (ቁጥር*10) + 8; // ሁለት ጊዜ ተጭኖ ከሆነ (ቁልፍ == '#') {Serial.println ("የአዝራር እኩል"); Num2 = ቁጥር; ውጤት = እውነት; } ከሆነ (ቁልፍ == '3') {Serial.println ("አዝራር 3"); ከሆነ (ቁጥር == 0) ቁጥር = 3; ሌላ ቁጥር = (ቁጥር*10) + 3; // ሁለት ጊዜ ተጭኖ ከሆነ (ቁልፍ == '6') {Serial.println ("አዝራር 6"); ከሆነ (ቁጥር == 0) ቁጥር = 6; ሌላ ቁጥር = (ቁጥር*10) + 6; // ሁለት ጊዜ ተጭኖ ከሆነ (ቁልፍ == '9') {Serial.println ("አዝራር 9"); ከሆነ (ቁጥር == 0) ቁጥር = 9; ሌላ ቁጥር = (ቁጥር*10) + 9; // ሁለት ጊዜ ተጭኗል} ከሆነ (ቁልፍ == 'ሀ' || ቁልፍ == 'ለ' || ቁልፍ == 'ሐ' || ቁልፍ == 'መ') // በአምድ 4 ላይ አዝራሮችን መለየት {Num1 = ቁጥር; ቁጥር = 0; ከሆነ (ቁልፍ == 'ሀ') {Serial.println ("መደመር"); እርምጃ = '+';} ከሆነ (ቁልፍ == 'ለ') {Serial.println ("መቀነስ"); እርምጃ = '-'; } ከሆነ (ቁልፍ == 'C') {Serial.println ("ማባዛት"); እርምጃ = '*';} ከሆነ (ቁልፍ == 'D') {Serial.println ("Devesion"); እርምጃ = '/';} መዘግየት (100); }}
ባዶ CalculateResult () {ከሆነ (እርምጃ == '+') ቁጥር = Num1+Num2; ከሆነ (እርምጃ == '-') ቁጥር = Num1-Num2; ከሆነ (እርምጃ == '*') ቁጥር = Num1*Num2; ከሆነ (እርምጃ == '/') ቁጥር = Num1/Num2; } ባዶ ማሳያ ማሳያ () {lcd.setCursor (0, 0); // ጠቋሚውን ወደ አምድ 0 ፣ መስመር 1 lcd.print (Num1) ያዘጋጁ ፤ lcd.print (ድርጊት); lcd.print (Num2); ከሆነ (ውጤት == እውነት) {lcd.print ("="); lcd.print (ቁጥር);} // ውጤቱን ያሳዩ lcd.setCursor (0, 1); // ጠቋሚውን ወደ አምድ 0 ፣ መስመር 1 lcd.print (ቁጥር) ያዘጋጁ ፤ // ውጤቱን አሳይ}
ደረጃ 4: የሂሳብ ማሽን ውጤት
ስለዚህ ግንኙነቶችን አጠናቅቀናል እና ኮዱን ወደ አርዱinoኖ እና ኃይልን ለመሰካት እና አንዳንድ ስሌቶችን ለማድረግ ጊዜውን ሰቀሉ እና እርስዎ እንደሚመለከቱት በቁልፍ ሰሌዳው ላይ ስሌቶችን እሰራለሁ እና ውጤቱን በ lcd ውስጥ ማየት ይችላሉ። ስለዚህ አርዱዲኖን በመጠቀም የራስዎን የዳይ ካልኩሌተር መስራት ይደሰቱ።
የሚመከር:
እኛ የመማሪያ ቡድን 6 UQD10801 (Robocon1) ተማሪዎች ከዩኒቨርሲቲ ቱ ቱ ሁሴን ኦን ማሌዥያ (UTHM) - የቁልፍ ሰሌዳ 4x4 እና ኤልሲዲ አርዱinoኖ 3 ደረጃዎች
እኛ የመማሪያ ቡድን 6 UQD10801 (Robocon1) ተማሪዎች ከዩኒቨርሲቲ ቱ ቱ ሁሴን ኦን ማሌዥያ (UTHM) - የቁልፍ ሰሌዳ 4x4 እና ኤልሲዲ አርዱinoኖ - የቁልፍ ሰሌዳዎች ተጠቃሚዎች ከፕሮጀክትዎ ጋር መስተጋብር እንዲፈጥሩ ለማድረግ ጥሩ መንገድ ናቸው። ምናሌዎችን ለማሰስ ፣ የይለፍ ቃሎችን ለማስገባት እና ጨዋታዎችን እና ሮቦቶችን ለመቆጣጠር እነሱን መጠቀም ይችላሉ። በዚህ መማሪያ ውስጥ በአርዱዲኖ ላይ የቁልፍ ሰሌዳ እንዴት እንደሚዋቀሩ አሳያችኋለሁ። በመጀመሪያ አርዱ እንዴት እንደ ሆነ እገልጻለሁ
1602 ኤልሲዲ የቁልፍ ሰሌዳ መከለያ ሞዱል በ I2C ቦርሳ: 6 ደረጃዎች
1602 ኤልሲዲ የቁልፍ ሰሌዳ መከለያ ሞዱል ከ I2C የጀርባ ቦርሳ ጋር - እንደ ትልቅ ፕሮጀክት አካል ፣ የ LCD ማሳያ እና ለአንዳንድ ቀላል ምናሌዎች አሰሳ ቁልፍ ሰሌዳ እንዲኖረኝ ፈልጌ ነበር። እኔ በአርዱዲኖ ላይ ብዙ የ I/O ወደቦችን ለሌሎች ሥራዎች እጠቀማለሁ ፣ ስለዚህ ለ LCD አንድ I2C በይነገጽ ፈልጌ ነበር። ስለዚህ አንዳንድ ሃርድዌር ገዛሁ ፣
1602 ኤልሲዲ የቁልፍ ሰሌዳ ጋሻ ወ/ አርዱinoኖን [+ተግባራዊ ፕሮጄክቶች] በመጠቀም 7 ደረጃዎች
1602 ኤልሲዲ የቁልፍ ሰሌዳ ጋሻ ወ/ አርዱinoኖን [+ተግባራዊ ፕሮጄክቶች] በመጠቀም - ይህንን እና ሌሎች አስገራሚ ትምህርቶችን በኤሌክትሮክ ፒክ ኦፊሴላዊ ድር ጣቢያ ላይ ማንበብ ይችላሉ አጠቃላይ እይታ በዚህ መማሪያ ውስጥ የአርዱዲኖ ኤልሲዲ የቁልፍ ሰሌዳ ጋሻን በ 3 ተግባራዊ ፕሮጄክቶች እንዴት እንደሚጠቀሙ ይማራሉ። ምን ይማራሉ? ጋሻውን እንዴት ማቀናበር እና ቁልፎቹን መለየት እንደሚቻል
ለ 16x2 ኤልሲዲ + የቁልፍ ሰሌዳ ጋሻ የፊት ሰሌዳ - 8 ደረጃዎች (ከስዕሎች ጋር)
ለ 16x2 ኤልሲዲ + የቁልፍ ሰሌዳ ጋሻ የፊት ሰሌዳ - እኛ የምንገነባው በዚህ ትምህርት ውስጥ ለአዳፍሮት 16x2 ኤልሲዲ + የቁልፍ ሰሌዳ ጋሻ (አርዱinoኖ ስሪት) የላስተር አክሬሊክስ የፊት ሰሌዳ እንሠራለን። በቀላል ማስተካከያ ምክንያት ፣ ለሁሉም የቁልፍ ሰሌዳ ቁልፎች ምቹ መዳረሻ ይኖርዎታል። ካላደረጉ
የቁልፍ ሰሌዳ በይነገጽ ከ 8051 ጋር እና የቁልፍ ሰሌዳ ቁጥሮችን በ 7 ክፍል ማሳየት 4 ደረጃዎች (ከስዕሎች ጋር)
የቁልፍ ሰሌዳ በይነገጽ ከ 8051 ጋር እና የቁልፍ ሰሌዳ ቁጥሮችን በ 7 ክፍል ውስጥ ማሳየቱ - በዚህ አጋዥ ስልጠና ውስጥ የቁልፍ ሰሌዳውን ከ 8051 ጋር እንዴት ማገናኘት እና በ 7 ክፍል ማሳያ ውስጥ የቁልፍ ሰሌዳ ቁጥሮችን ማሳየት እንደምንችል እነግርዎታለሁ።