ዝርዝር ሁኔታ:

ከ Arduino ጋር የቁጥር ቁልፎችን መጠቀም -4 ደረጃዎች
ከ Arduino ጋር የቁጥር ቁልፎችን መጠቀም -4 ደረጃዎች

ቪዲዮ: ከ Arduino ጋር የቁጥር ቁልፎችን መጠቀም -4 ደረጃዎች

ቪዲዮ: ከ Arduino ጋር የቁጥር ቁልፎችን መጠቀም -4 ደረጃዎች
ቪዲዮ: መጽሐፉ የመጀመሪያው የአርዱሚክሮን ወረዳ ነው ። 2024, ህዳር
Anonim
ከ Arduino ጋር የቁጥር ቁልፍ ሰሌዳዎችን መጠቀም
ከ Arduino ጋር የቁጥር ቁልፍ ሰሌዳዎችን መጠቀም

ቁጥራዊ የቁልፍ ሰሌዳዎች ለፕሮጀክቶችዎ የተለያዩ በይነገጾች ቀለል ያለ የመጨረሻ ተጠቃሚ አማራጭን ሊያቀርቡ ይችላሉ። ወይም ብዙ አዝራሮች ከፈለጉ ፣ ከግንባታ ጋር በተያያዘ ብዙ ጊዜ ሊያድኑዎት ይችላሉ። የአርዱዲኖ ቤተ -መጽሐፍትን በመጠቀም እነሱን በማገናኘት እንሮጣለን እና ከዚያ ጠቃሚ በሆነ ምሳሌ ንድፍ እንጨርሳለን።

ደረጃ 1: መጀመር

እንደ መጀመር
እንደ መጀመር

የቁልፍ ሰሌዳዎችዎ ከየትም ቢያመጡ ፣ የውሂብ ሉህ ማግኘት መቻልዎን ያረጋግጡ - ምክንያቱም እነሱን በሚያሽከረክሩበት ጊዜ ህይወትን ቀላል ያደርገዋል። ለምሳሌ - በዚህ ደረጃ ላይ ያለው ምስል።

በቁልፍ ሰሌዳው ላይ የትኞቹ ፒኖች ወይም አያያ forች ለረድፎች እና ዓምዶች እንደሆኑ ስለሚነግርዎት የውሂብ ሉህ አስፈላጊ ነው። የውሂብ ሉህ ከሌለዎት - የትኞቹ ግንኙነቶች ለረድፎች እና ዓምዶች እንደሆኑ በራስዎ መወሰን ያስፈልግዎታል።

ይህ የብዙ መልቲሜትር (የ buzzer) ቀጣይነት ተግባርን በመጠቀም ሊከናወን ይችላል። አንድ ምርመራን በፒን 1 ላይ ፣ ሌላውን መጠይቅን በፒን 2 ላይ በማስቀመጥ ይጀምሩ እና ቁልፎቹን አንድ በአንድ ይጫኑ። አንድ አዝራር ወረዳውን ሲያጠናቅቅ ማስታወሻ ይያዙ ፣ ከዚያ ወደ ቀጣዩ ፒን ይሂዱ። በቅርቡ የትኛው የትኛው እንደሆነ ያውቃሉ። ለምሳሌ ፣ በምሳሌው ላይ የቁልፍ ሰሌዳ ፒን 1 እና 5 ለ “1 ″ ፣ 2 እና 5 ለ” 4 ″ ፣ ወዘተ…

በዚህ ጊዜ እባክዎን የቁልፍ ሰሌዳውን Arduino ቤተ -መጽሐፍትን ያውርዱ እና ይጫኑ። አሁን በቀላል ምሳሌዎች ውስጥ ሁለቱንም የቁልፍ ሰሌዳዎች እንዴት እንደሚጠቀሙ እናሳያለን።

ደረጃ 2 - ባለ 12 አሃዝ ቁልፍ ሰሌዳ በመጠቀም

ለትንሽ ጥቁር የቁልፍ ሰሌዳ ፣ አርዱዲኖ ዩኖ ተኳሃኝ እና ኤልሲዲ ከ I2C በይነገጽ ጋር ለዕይታ ዓላማዎች እንጠቀማለን። ኤልሲዲ ከሌለዎት ሁል ጊዜ ጽሑፉን ወደ ተከታታይ ሞኒተር መላክ ይችላሉ።

ኤልሲዲዎን ያሽጉ እና ከዚያ የቁልፍ ሰሌዳውን ከአርዱዲኖ ጋር በሚከተለው መንገድ ያገናኙት - የቁልፍ ሰሌዳ ረድፍ 1 ወደ አርዱዲኖ ዲጂታል 5 ኪይፓድ ረድፍ 2 ወደ አርዱinoኖ ዲጂታል 4 ኬይፓድ ረድፍ 3 ወደ አርዱinoኖ ዲጂታል 3 ኬይፓድ ረድፍ 4 ወደ አርዱinoኖ ዲጂታል 2 ኪፓድ አምድ 1 ወደ አርዱinoኖ ዲጂታል 8 ኪፓድ አምድ 2 ለ አርዱዲኖ ዲጂታል 7 ኬይፓድ አምድ 3 ወደ አርዱዲኖ ዲጂታል 6 የቁልፍ ሰሌዳዎ ከእኛ የተለየ ከሆነ በስዕሉ ውስጥ ያሉትን መስመሮች ልብ ይበሉ ከ:

// የቁልፍ ሰሌዳ ዓይነት ትርጉም

በመደራደሮች ረድፍ ፒን [ROWS] እና colPins [COLS] ውስጥ ያሉትን ቁጥሮች መለወጥ ሲፈልጉ። ከቁልፍ ሰሌዳው ረድፎች እና አምዶች ጋር የተገናኙትን የዲጂታል ፒን ቁጥሮች በቅደም ተከተል ያስገቡ።

በተጨማሪም ፣ የድርድር ቁልፎች አንድ የተወሰነ ቁልፍ ሲጫኑ በ LCD ውስጥ የሚታዩትን እሴቶች ያከማቻል። እኛ ከተጠቀምንበት አካላዊ የቁልፍ ሰሌዳ ጋር እንዳዛመድነው ማየት ይችላሉ ፣ ሆኖም ግን ወደሚፈልጉት ሁሉ መለወጥ ይችላሉ። ነገር ግን አሁን የረድፍ/የፒን ቁጥር ምደባዎችን ከረኩ በኋላ የሚከተለውን ንድፍ ያስገቡ እና ይስቀሉ

/ * ቁጥራዊ የቁልፍ ሰሌዳ እና I2C ኤልሲዲ https://tronixstuff.com ለ Arduino የቁልፍ ሰሌዳ ቤተ -መጽሐፍትን ይጠቀማል https://www.arduino.cc/playground/Code/Keypad በማርክ ስታንሊ ፣ አሌክሳንደር ብሬቪቭ */

#“የቁልፍ ሰሌዳ.ህ” ን ያካትቱ

#ለ “I2C LCD” “Wire.h” ን ያካትቱ #“LiquidCrystal_I2C.h” // ለ I2C አውቶቡስ ኤልሲዲ ሞዱል // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // ለ 16 chars እና ለ 2 የመስመር ማሳያ የ LCD አድራሻውን ወደ 0x27 ያዘጋጁ

// የቁልፍ ሰሌዳ ዓይነት ትርጉም

const byte ROWS = 4; // አራት ረድፎች const byte COLS = 3; // ሶስት አምዶች ቻር ቁልፎች [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8' ፣ '9'} ፣ {'*' ፣ '0' ፣ '#'}};

ባይት ረድፍ ፒኖች [ROWS] = {

5, 4, 3, 2}; // ከቁልፍ ሰሌዳው ባይት ኮሊፒንስ [COLS] = {8, 7, 6} ረድፎች ፒኖዎች ጋር ይገናኙ; // ከቁልፍ ሰሌዳው አምድ ፒኖዎች ጋር ይገናኙ

int ብዛት = 0;

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

ባዶነት ማዋቀር ()

{lcd.init (); // የ lcd lcd.backlight () ን ያስጀምሩ; // ኤልሲዲ የጀርባ ብርሃንን ያብሩ}

ባዶነት loop ()

{char key = keypad.getKey (); ከሆነ (ቁልፍ! = NO_KEY) {lcd.print (ቁልፍ); ቆጠራ ++; ከሆነ (ቆጠራ == 17) {lcd.clear (); ቆጠራ = 0; }}}

እና የስዕሉ ውጤት በቪዲዮው ውስጥ ይታያል። ስለዚህ አሁን የአዝራር መጫኛዎች በስዕል ውስጥ ለመጠቀም እንዴት ወደ ውሂብ ሊተረጎሙ እንደሚችሉ ማየት ይችላሉ። አሁን ይህንን ማሳያ በትልቁ የቁልፍ ሰሌዳ እንደግመዋለን።

ደረጃ 3 - ባለ 16 አሃዝ ቁልፍ ሰሌዳ በመጠቀም

ትልቁን 4 × 4 ቁልፍ ሰሌዳ ፣ አርዱዲኖ ዩኖ ተኳሃኝ እና ለ I2C LCD ከአካፉጉ ለዕይታ ዓላማዎች እንጠቀማለን። እንደገና ፣ ኤልሲዲ ከሌለዎት ሁል ጊዜ ጽሑፉን ወደ ተከታታይ ሞኒተር መላክ ይችላሉ። ኤልሲዲውን ያሽጉ እና ከዚያ የቁልፍ ሰሌዳውን ከአርዱዲኖ ጋር በሚከተለው መንገድ ያገናኙት

  • የቁልፍ ሰሌዳ ረድፍ 1 (ስምንት ስምንት) ወደ አርዱዲኖ ዲጂታል 5
  • የቁልፍ ሰሌዳ ረድፍ 2 (ፒን 1) ወደ አርዱዲኖ ዲጂታል 4
  • የቁልፍ ሰሌዳ ረድፍ 3 (ፒን 2) ወደ አርዱዲኖ ዲጂታል 3
  • የቁልፍ ሰሌዳ ረድፍ 4 (ፒን 4) ወደ አርዱዲኖ ዲጂታል 2
  • የቁልፍ ሰሌዳ አምድ 1 (ፒን 3) ወደ አርዱዲኖ ዲጂታል 9
  • የቁልፍ ሰሌዳ አምድ 2 (ፒን 5) ወደ አርዱዲኖ ዲጂታል 8
  • የቁልፍ ሰሌዳ አምድ 3 (ፒን 6) ወደ አርዱዲኖ ዲጂታል 7
  • የቁልፍ ሰሌዳ አምድ 4 (ፒን 7) ወደ አርዱዲኖ ዲጂታል 6

አሁን ለንድፍ - ለትልቁ የቁጥር ቁልፍ ሰሌዳ እንዴት እንዳስተናገድን ልብ ይበሉ -በድርድር ቻር ቁልፎች ውስጥ ያለው ተጨማሪ ዓምድ በድርድር ኮሊፒንስ ውስጥ ያለው ተጨማሪ ፒን እና ባይት COLS = 4።

/ * የቁጥር ቁልፍ ሰሌዳ እና I2C ኤልሲዲ https://tronixstuff.com የቁልፍ ሰሌዳ ቤተ -መጽሐፍትን ለአርዱዲኖ ይጠቀማል https://www.arduino.cc/playground/Code/Keypad በማርክ ስታንሊ ፣ አሌክሳንደር ብሬቪቭ */

#“የቁልፍ ሰሌዳ.ህ” ን ያካትቱ

#ለ “I2C LCD” “Wire.h” ን ያካትቱ #“TWILiquidCrystal.h” // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12 ፣ 11 ፣ 5 ፣ 4 ፣ 3 ፣ 2) ፤

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

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

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

ባዶነት ማዋቀር ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("የቁልፍ ሰሌዳ ሙከራ!"); መዘግየት (1000); lcd.clear (); }

ባዶነት loop ()

{char key = keypad.getKey (); ከሆነ (ቁልፍ! = NO_KEY) {lcd.print (ቁልፍ); Serial.print (ቁልፍ); ቆጠራ ++; ከሆነ (ቆጠራ == 17) {lcd.clear (); ቆጠራ = 0; }}}

እና እንደገና በቪዲዮው ውስጥ ከላይ ያለውን የስዕል ውጤት ማየት ይችላሉ።

አሁን ለአብነት ፕሮጀክት ፣ ምናልባትም የቁጥር ቁልፍ ሰሌዳው በጣም የተጠየቀው…

ደረጃ 4 - ምሳሌ ፕሮጀክት - የፒን መዳረሻ ስርዓት

ለቁጥር የቁልፍ ሰሌዳ በጣም የተጠየቀው አጠቃቀም አርዱinoኖ በቁልፍ ሰሌዳው ውስጥ በሚገባ ትክክለኛ ቁጥር ላይ በመመርኮዝ አንድ ነገር እንዲያደርግ የታዘዘበት የ “ፒን” የቅጥ ትግበራ ይመስላል። የሚከተለው ንድፍ ለቀዳሚው ንድፍ የተገለጸውን ሃርድዌር ይጠቀማል እና ባለ ስድስት አሃዝ ፒን የመግቢያ ስርዓት ይተገበራል።

የሚከናወኑ እርምጃዎች በተግባሩ ውስጥ ትክክል ሊሆኑ ይችላሉ ፒፒን () እና ትክክል ያልሆነ ፒን ()። እና ፒን በድርድር ቻር ፒን [6] ውስጥ ተቀናብሯል። በትንሽ ተጨማሪ ሥራ እርስዎም የራስዎን ፒን-ለውጥ ተግባር መፍጠር ይችላሉ።

// የፒን መቀየሪያ በ 16 አሃዝ የቁጥር ቁልፍ ሰሌዳ // https://tronixstuff.com # #“Keypad.h” ን ያካትቱ # #LiquidCrystal lcd ን ያካትቱ (12 ፣ 11 ፣ 5 ፣ 4 ፣ 3 ፣ 2) ፤

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

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

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

ቻር ፒን [6] = {

'1', '2', 'A', 'D', '5', '6'}; // የእኛ ምስጢር (!) ቁጥር ቻር ሙከራ [6] = {'0', '0', '0', '0', '0', '0'}; // ለማነፃፀር ጥቅም ላይ የዋለ int z = 0;

ባዶነት ማዋቀር ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("ፒን መቆለፊያ"); መዘግየት (1000); lcd.clear (); lcd.print ("ፒን ያስገቡ …"); }

ባዶ ፒን () // ትክክለኛ ፒን ከገባ ይህንን ያድርጉ

{lcd.print (" * ትክክለኛ ፒን *"); መዘግየት (1000); lcd.clear (); lcd.print ("ፒን ያስገቡ …"); }

ባዶ ያልሆነ ፒን () // የተሳሳተ ፒን ከገባ ይህንን ያድርጉ

{lcd.print (" * እንደገና ይሞክሩ *"); መዘግየት (1000); lcd.clear (); lcd.print ("ፒን ያስገቡ …"); }

ባዶ ቼክ ፒን ()

{int ትክክል = 0; int i; ለ (i = 0; i <6; i ++) {

ከሆነ (ሙከራ == ፒን )

{ትክክል ++; }} ከሆነ (ትክክል == 6) {correctPIN () ፤ } ሌላ {wrongPIN (); }

ለ (int zz = 0; zz <6; zz ++) {ሙከራ [zz] = '0'; }}

ባዶ ንባብ ኪፓድ ()

{char key = keypad.getKey (); ከሆነ (ቁልፍ! = NO_KEY) {ሙከራ [z] = ቁልፍ; z ++; ማብሪያ (ቁልፍ) {ጉዳይ '*': z = 0; ሰበር; ጉዳይ '#': z = 0; መዘግየት (100); // ለተጨማሪ debounce lcd.clear (); ቼክ ፒን (); ሰበር; }}}

ባዶነት loop ()

{readKeypad (); }

ፕሮጀክቱ በቪዲዮው ውስጥ ታይቷል።

ስለዚህ አሁን ከአርዱዲኖ ስርዓቶችዎ ጋር አሥራ ሁለት እና አሥራ ስድስት-ቁልፍ የቁልፍ ሰሌዳዎችን የመጠቀም ችሎታ አለዎት። በቅርብ ጊዜ ውስጥ የቁልፍ ሰሌዳዎችን በመጠቀም ጠቃሚ እና አስደሳች ነገር ይዘው እንደሚመጡ እርግጠኛ ነኝ።

ይህ ልጥፍ በ pmdway.com ለእርስዎ ቀርቧል - ሁሉም ነገር ለአዘጋጆች እና ለኤሌክትሮኒክስ አፍቃሪዎች ፣ በዓለም ዙሪያ ነፃ መላኪያ።

የሚመከር: