Სარჩევი:
- ნაბიჯი 1: დაწყება
- ნაბიჯი 2: 12 ციფრული კლავიატურის გამოყენება
- ნაბიჯი 3: 16 ციფრული კლავიატურის გამოყენება
- ნაბიჯი 4: მაგალითი პროექტი - PIN წვდომის სისტემა
ვიდეო: Arduino– სთან ერთად რიცხვითი კლავიატურების გამოყენება: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ციფრულ კლავიშებს შეუძლიათ წარმოადგინონ საბოლოო მომხმარებლის მარტივი ალტერნატივა თქვენი პროექტების სხვადასხვა ინტერფეისისთვის. ან თუ გჭირდებათ ბევრი ღილაკი, მათ შეუძლიათ დაზოგონ ბევრი დრო მშენებლობასთან დაკავშირებით. ჩვენ გავაგრძელებთ მათ დაკავშირებას 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– ით - ყველაფერი მწარმოებლებისთვის და ელექტრონიკის მოყვარულთათვის, უფასო მიწოდებით მთელს მსოფლიოში.
გირჩევთ:
IOT DMX კონტროლერი Arduino– სთან და Stage Monster– თან ერთად: 6 ნაბიჯი
IOT DMX კონტროლერი Arduino– ს და Stage Monster Live– ით: აკონტროლეთ სცენის განათება და სხვა DMX მოწყობილობები თქვენი ტელეფონიდან ან სხვა ვებ – ჩართული მოწყობილობიდან. მე გაჩვენებთ თუ როგორ სწრაფად და მარტივად ააშენოთ თქვენი საკუთარი DMX კონტროლერი, რომელიც მუშაობს Stage Monster Live პლატფორმაზე Arduino Mega– ს გამოყენებით
როკოლა ARDUINO– სთან ერთად: 6 ნაბიჯი
როკოლა ARDUINO– სთან ერთად: თქვენ გირჩევთ შექმნათ თქვენი პროდუქტი * ROCKOLA * Arduino და Buzzer activo– ით. პირველ რიგში, ეს არის საჭირო მასალები და მასალები, რომლებიც შეიცავს " მასალების ჩამონათვალს " para crear la rocola. Con los mater
ინტერფეისის TM1637 ჩვენების მოდული Arduino– სთან ერთად: 3 ნაბიჯი
ინტერფეისის TM1637 ჩვენების მოდული Arduino– სთან ერთად: As-Salam-O-Aleykum! ჩემი ეს ინსტრუქცია ეხება TM1637 ჩვენების მოდულის Arduino– სთან დაკავშირებას. ეს არის ოთხნიშნა ციფრის შვიდი სეგმენტის ჩვენების მოდული. იგი მოდის სხვადასხვა ფერებში. ჩემი არის წითელი ფერი. იგი იყენებს Tm1637 Ic
ინტერფეისი HMC5883L კომპასის სენსორი Arduino– სთან ერთად: 10 ნაბიჯი (სურათებით)
ინტერფეისი HMC5883L კომპასის სენსორი Arduino– სთან ერთად: აღწერა HMC5883L არის 3 ღერძიანი ციფრული კომპასი, რომელიც გამოიყენება ორი ზოგადი მიზნისთვის: ფერომაგნიტის მსგავსად მაგნიტური მასალის მაგნეტიზაციის გასაზომად, ან სიძლიერის და, ზოგიერთ შემთხვევაში, მიმართულების გასაზომად. მაგნიტური ველი ერთ წერტილში
LCD კავშირი Arduino– სთან ერთად Tinkercad– ზე: 5 ნაბიჯი
LCD– ის დაკავშირება Arduino– სთან ერთად Tinkercad– ზე: ამ სტატიაში კოდი დაწერილია LCD– ებისთვის, რომლებიც იყენებენ სტანდარტულ Hitachi HD44780 დრაივერს. თუ თქვენს LCD– ს აქვს 16 ქინძისთავები, მაშინ მას ალბათ აქვს Hitachi HD44780 დრაივერი. ეს ეკრანები შეიძლება იყოს სადენიანი 4 ბიტიანი ან 8 ბიტიანი რეჟიმში. LCD– ის გაყვანილობა 4