Სარჩევი:

Arduino– სთან ერთად რიცხვითი კლავიატურების გამოყენება: 4 ნაბიჯი
Arduino– სთან ერთად რიცხვითი კლავიატურების გამოყენება: 4 ნაბიჯი

ვიდეო: Arduino– სთან ერთად რიცხვითი კლავიატურების გამოყენება: 4 ნაბიჯი

ვიდეო: Arduino– სთან ერთად რიცხვითი კლავიატურების გამოყენება: 4 ნაბიჯი
ვიდეო: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, ნოემბერი
Anonim
Arduino– სთან რიცხვითი კლავიშების გამოყენება
Arduino– სთან რიცხვითი კლავიშების გამოყენება

ციფრულ კლავიშებს შეუძლიათ წარმოადგინონ საბოლოო მომხმარებლის მარტივი ალტერნატივა თქვენი პროექტების სხვადასხვა ინტერფეისისთვის. ან თუ გჭირდებათ ბევრი ღილაკი, მათ შეუძლიათ დაზოგონ ბევრი დრო მშენებლობასთან დაკავშირებით. ჩვენ გავაგრძელებთ მათ დაკავშირებას Arduino ბიბლიოთეკის გამოყენებით და შემდეგ დავასრულებთ სასარგებლო მაგალითის ესკიზს.

ნაბიჯი 1: დაწყება

Ვიწყებთ
Ვიწყებთ

არ აქვს მნიშვნელობა საიდან იღებთ თქვენს კლავიშებს, დარწმუნდით, რომ შეგიძლიათ მიიღოთ მონაცემების ფურცელი - რადგან ეს გაგიადვილებთ ცხოვრებას მათი გაყვანილობისას. მაგალითად - სურათი ამ ნაბიჯში.

მონაცემთა ფურცელი მნიშვნელოვანია, რადგან ის გეტყვით, რომელი პინები ან კონექტორები არის კლავიატურაზე რიგებისა და სვეტებისათვის. თუ თქვენ არ გაქვთ მონაცემთა ფურცელი - თქვენ უნდა ხელით განსაზღვროთ რომელი კონტაქტებია სტრიქონებისთვის და სვეტებისთვის.

ეს შეიძლება გაკეთდეს მულტიმეტრის (ზუზერის) უწყვეტობის ფუნქციის გამოყენებით. დაიწყეთ ერთი ზონდის ჩასმა პინ 1 -ზე, მეორე ზონდი 2 პინზე და დააჭირეთ ღილაკებს სათითაოდ. გააკეთეთ შენიშვნა, როდესაც ღილაკი ასრულებს წრეს, შემდეგ გადადით შემდეგ პინზე. მალე გაიგებთ, რომელი რომელია. მაგალითად, კლავიატურის მაგალითზე 1 და 5 არის ღილაკზე „1 ″, 2 და 5“4 ″ და ა.შ.…

ამ ეტაპზე გთხოვთ გადმოწეროთ და დააინსტალიროთ კლავიატურის Arduino ბიბლიოთეკა. ახლა ჩვენ ვაჩვენებთ, თუ როგორ გამოიყენოთ ორივე კლავიატურა მარტივი მაგალითებით.

ნაბიჯი 2: 12 ციფრული კლავიატურის გამოყენება

ჩვენ გამოვიყენებთ პატარა შავ კლავიატურას, Arduino Uno-თავსებადი და LCD I2C ინტერფეისით ჩვენების მიზნით. თუ LCD არ გაქვთ, ყოველთვის შეგიძლიათ ტექსტი გაგზავნოთ სერიულ მონიტორზე.

შეაერთეთ თქვენი LCD და შემდეგ დააკავშირეთ კლავიატურა Arduino– ს შემდეგი წესით: კლავიატურის რიგი 1 Arduino ციფრული 5 კლავიატურა რიგი 2 Arduino ციფრული 4 კლავიატურა რიგი 3 Arduino ციფრული 3 კლავიატურა რიგი 4 Arduino ციფრული 2 კლავიატურა სვეტი 1 Arduino ციფრული 8 კლავიატურა სვეტი 2 დან Arduino digital 7Keypad სვეტი 3 to Arduino digital 6 თუ თქვენი კლავიატურა განსხვავდება ჩვენიდან, გაითვალისწინეთ ესკიზის ხაზები:

// კლავიატურის ტიპის განსაზღვრა

როგორც თქვენ უნდა შეცვალოთ რიცხვები მასივებში rowPins [ROWS] და colPins [COLS]. თქვენ შეიყვანთ ციფრული პინის ნომრებს, რომლებიც დაკავშირებულია კლავიატურის რიგებთან და სვეტებთან შესაბამისად.

გარდა ამისა, მასივის გასაღებები ინახავს LCD– ში ნაჩვენებ მნიშვნელობებს კონკრეტული ღილაკის დაჭერისას. თქვენ ხედავთ, რომ ჩვენ შევადარეთ ის გამოყენებულ ფიზიკურ კლავიატურას, თუმცა თქვენ შეგიძლიათ შეცვალოთ ის რაც გჭირდებათ. ჯერჯერობით, შეიყვანეთ და ატვირთეთ შემდეგი ესკიზი მას შემდეგ, რაც კმაყოფილი დარჩებით რიგის/პინის ნომრების გამოყოფით:

/ * რიცხვითი კლავიატურა და I2C LCD https://tronixstuff.com იყენებს კლავიატურის ბიბლიოთეკას Arduino– სთვის https://www.arduino.cc/playground/Code/Keypad მარკ სტენლის, ალექსანდრე ბრევიგის */

#მოიცავს "კლავიატურას.ჰ"

#მოიცავს "Wire.h" // I2C LCD- ისთვის #მოიცავს "LiquidCrystal_I2C.h" // I2C ავტობუსის LCD მოდულისთვის // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C LCD (0x27, 16, 2); // დააყენეთ LCD მისამართი 0x27 16 სიმბოლოს და 2 ხაზის ჩვენებისთვის

// კლავიატურის ტიპის განსაზღვრა

const byte ROWS = 4; // ოთხი სტრიქონი const byte COLS = 3; // სამი სვეტი char ღილაკები [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

ბაიტი rowPins [ROWS] = {

5, 4, 3, 2}; // დაკავშირება კლავიატურის ბაიტის კოპინების რიგის პინუტებთან [COLS] = {8, 7, 6}; // დაკავშირება კლავიატურის სვეტის პინუტებთან

int რაოდენობა = 0;

კლავიატურის კლავიატურა = კლავიატურა (makeKeymap (გასაღებები), rowPins, colPins, ROWS, COLS);

ბათილად დაყენება ()

{lcd.init (); // lcd lcd.backlight- ის ინიციალიზაცია (); // ჩართეთ LCD განათება}

ბათილი მარყუჟი ()

{char key = keypad.getKey (); if (გასაღები! = NO_KEY) {lcd.print (გასაღები); დათვლა ++; if (ითვლი == 17) {lcd.clear (); დათვლა = 0; }}}

და ესკიზის შედეგები ნაჩვენებია ვიდეოში. ასე რომ, ახლა თქვენ ხედავთ, თუ როგორ შეიძლება ღილაკების დაჭერა ითარგმნოს მონაცემებად ესკიზში გამოსაყენებლად. ჩვენ ახლა ვიმეორებთ ამ დემონსტრაციას უფრო დიდი კლავიატურით.

ნაბიჯი 3: 16 ციფრული კლავიატურის გამოყენება

ჩვენ გამოვიყენებთ უფრო დიდ 4 × 4 კლავიატურას, Arduino Uno- თავსებადია და I2C LCD აკაფუგუდან შესაცვლელად ჩვენების მიზნით. ისევ და ისევ, თუ LCD არ გაქვთ, ყოველთვის შეგიძლიათ ტექსტი გაგზავნოთ სერიულ მონიტორზე. შეაერთეთ LCD და შემდეგ დაუკავშირეთ კლავიატურა Arduino– ს შემდეგნაირად:

  • კლავიატურის რიგი 1 (პინი რვა) Arduino ციფრული 5 -მდე
  • კლავიატურის რიგი 2 (პინი 1) Arduino ციფრული 4 -მდე
  • კლავიატურის მწკრივი 3 (პინი 2) Arduino ციფრული 3 -მდე
  • კლავიატურის რიგი 4 (პინ 4) Arduino ციფრული 2 -მდე
  • კლავიატურის სვეტი 1 (პინ 3) Arduino digital 9 -მდე
  • კლავიატურის სვეტი 2 (პინ 5) Arduino digital 8 -მდე
  • კლავიატურის სვეტი 3 (პინ 6) Arduino digital 7 -მდე
  • კლავიატურის სვეტი 4 (პინ 7) Arduino digital 6 -მდე

ახლა რაც შეეხება ესკიზს - გაითვალისწინეთ როგორ განვათავსეთ უფრო დიდი რიცხვითი კლავიატურა: მასივის დამხმარე ღილაკების დამატებითი სვეტი დამატებითი მასივი მასივში colPins და ბაიტი COLS = 4.

/ * რიცხვითი კლავიატურა და I2C LCD https://tronixstuff.com იყენებს კლავიატურის ბიბლიოთეკას Arduino– სთვის https://www.arduino.cc/playground/Code/Keypad მარკ სტენლის, ალექსანდრე ბრევიგის */

#მოიცავს "კლავიატურას.ჰ"

#მოიცავს "Wire.h" // I2C LCD- ისთვის #მოიცავს "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal LCD (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // ოთხი რიგი

const byte COLS = 4; // ოთხი სვეტი char ღილაკები [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // დაკავშირება კლავიატურის ბაიტი colPins- ის რიგის პინუტებთან [COLS] = {9, 8, 7, 6}; // დაკავშირება კლავიატურის პინუტებს int count = 0;

კლავიატურის კლავიატურა = კლავიატურა (makeKeymap (გასაღებები), rowPins, colPins, ROWS, COLS);

ბათილად დაყენება ()

{Serial.begin (9600); lcd. დასაწყისი (16, 2); lcd.print ("კლავიატურის ტესტი!"); დაგვიანება (1000); lcd. წმინდა (); }

ბათილი მარყუჟი ()

{char key = keypad.getKey (); if (გასაღები! = NO_KEY) {lcd.print (გასაღები); Serial.print (გასაღები); დათვლა ++; if (ითვლი == 17) {lcd.clear (); დათვლა = 0; }}}

და კვლავ შეგიძლიათ ნახოთ ესკიზის შედეგები ვიდეოში.

ახლა მაგალითი პროექტისთვის, რომელიც არის ალბათ ყველაზე მოთხოვნადი რიცხვითი კლავიატურის გამოყენება…

ნაბიჯი 4: მაგალითი პროექტი - PIN წვდომის სისტემა

როგორც ჩანს, ყველაზე მოთხოვნადი გამოყენება ციფრული კლავიატურისთვის არის "PIN" სტილის აპლიკაცია, სადაც Arduino- ს ევალება გააკეთოს რაღაც დაფუძნებული კლავიატურაზე შეყვანილი სწორი რიცხვის საფუძველზე. შემდეგი ესკიზი იყენებს წინა ესკიზის აღწერილ ტექნიკას და ახორციელებს ექვსნიშნა PIN კოდის სისტემას.

მოქმედებები, რომლებიც შეიძლება განხორციელდეს, შეიძლება ჩასმულ იქნას ფუნქციებში: სწორი PIN () და არასწორი PIN (). და PIN მითითებულია მასივის char PIN- ში [6]. მცირეოდენი დამატებითი მუშაობის საშუალებით თქვენ შეგიძლიათ შექმნათ თქვენი საკუთარი PIN- ცვლილების ფუნქციაც.

// PIN გადამრთველი 16-ნიშნაანი ციფრული კლავიატურით // https://tronixstuff.com #მოიცავს "Keypad.h" #include #include LiquidCrystal LCD (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // ოთხი რიგი

const byte COLS = 4; // ოთხი სვეტი char ღილაკები [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // დაკავშირება კლავიატურის ბაიტი colPins- ის რიგის პინუტებთან [COLS] = {9, 8, 7, 6}; // დაკავშირება კლავიატურის სვეტის პინუტებთან

კლავიატურის კლავიატურა = კლავიატურა (makeKeymap (გასაღებები), rowPins, colPins, ROWS, COLS);

სიმბოლო PIN [6] = {

'1', '2', 'A', 'D', '5', '6'}; // ჩვენი საიდუმლო (!) ნომერი char მცდელობა [6] = {'0', '0', '0', '0', '0', '0'}; // გამოიყენება შედარებისთვის int z = 0;

ბათილად დაყენება ()

{Serial.begin (9600); lcd. დასაწყისი (16, 2); lcd.print ("PIN საკეტი"); დაგვიანება (1000); lcd. წმინდა (); lcd.print ("შეიყვანეთ PIN …"); }

void correctPIN () // ამის გაკეთება, თუ სწორი PIN შეიყვანეს

{lcd.print (" * სწორი PIN *"); დაგვიანება (1000); lcd. წმინდა (); lcd.print ("შეიყვანეთ PIN …"); }

void არასწორი PIN () // ამის გაკეთება, თუ არასწორი PIN შეიყვანეს

{lcd.print (" * სცადე ისევ *"); დაგვიანება (1000); lcd. წმინდა (); lcd.print ("შეიყვანეთ PIN …"); }

ძალადაკარგული checkPIN ()

{int სწორი = 0; int i; for (i = 0; i <6; i ++) {

if (ცდა == PIN )

{სწორი ++; }} if (correct == 6) {correctPIN (); } else {არასწორი PIN (); }

for (int zz = 0; zz <6; zz ++) {მცდელობა [zz] = '0'; }}

void readKeypad ()

{char key = keypad.getKey (); if (გასაღები! = NO_KEY) {მცდელობა [z] = გასაღები; z ++; გადართვა (გასაღები) {საქმე '*': z = 0; შესვენება; საქმე '#': z = 0; დაგვიანება (100); // დამატებითი დებუნციისთვის lcd.clear (); checkPIN (); შესვენება; }}}

ბათილი მარყუჟი ()

{readKeypad (); }

პროექტი ნაჩვენებია ვიდეოში.

ახლა თქვენ გაქვთ შესაძლებლობა გამოიყენოთ თორმეტი და თექვსმეტი ღილაკის კლავიატურა თქვენს არდუინოს სისტემებთან. დარწმუნებული ვარ, უახლოეს მომავალში თქვენ გამოხვალთ რაიმე სასარგებლო და საინტერესო კლავიატურების გამოყენებით.

ეს პოსტი მოაქვს pmdway.com– ით - ყველაფერი მწარმოებლებისთვის და ელექტრონიკის მოყვარულთათვის, უფასო მიწოდებით მთელს მსოფლიოში.

გირჩევთ: