สารบัญ:
- ขั้นตอนที่ 1: เริ่มต้น
- ขั้นตอนที่ 2: การใช้ปุ่มกด 12 หลัก
- ขั้นตอนที่ 3: การใช้ปุ่มกด 16 หลัก
- ขั้นตอนที่ 4: ตัวอย่างโครงการ – ระบบการเข้าถึง PIN
วีดีโอ: การใช้แป้นตัวเลขกับ Arduino: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
แป้นตัวเลขสามารถเป็นทางเลือกสำหรับผู้ใช้ปลายทางสำหรับอินเทอร์เฟซต่างๆ สำหรับโครงการของคุณ หรือถ้าคุณต้องการปุ่มจำนวนมาก ก็สามารถประหยัดเวลาได้มากในการก่อสร้าง เราจะดำเนินการเชื่อมต่อโดยใช้ไลบรารี Arduino แล้วจบด้วยตัวอย่างแบบร่างที่มีประโยชน์
ขั้นตอนที่ 1: เริ่มต้น
ไม่ว่าคุณจะเอาคีย์แพดมาจากที่ใด ตรวจสอบให้แน่ใจว่าได้เอกสารข้อมูลมา เพราะจะทำให้ชีวิตง่ายขึ้นเมื่อเดินสาย ตัวอย่างเช่น - รูปภาพในขั้นตอนนี้
แผ่นข้อมูลมีความสำคัญเนื่องจากจะบอกคุณว่าหมุดหรือขั้วต่อใดบนแป้นพิมพ์สำหรับแถวและคอลัมน์ หากคุณไม่มีแผ่นข้อมูล – คุณจะต้องกำหนดด้วยตนเองว่าผู้ติดต่อรายใดสำหรับแถวและคอลัมน์
สามารถทำได้โดยใช้ฟังก์ชันความต่อเนื่องของมัลติมิเตอร์ (เสียงกริ่ง) เริ่มต้นด้วยการวางโพรบหนึ่งตัวบนพิน 1 โพรบอีกอันบนพิน 2 แล้วกดปุ่มทีละตัว จดบันทึกเมื่อปุ่มเสร็จสิ้นวงจร จากนั้นย้ายไปยังพินถัดไป ในไม่ช้าคุณจะรู้ว่าอันไหน ตัวอย่างเช่น ในตัวอย่าง หมุดปุ่มกด 1 และ 5 ใช้สำหรับปุ่ม “1″, 2 และ 5 สำหรับ “4″, ฯลฯ…
ณ จุดนี้โปรดดาวน์โหลดและติดตั้งไลบรารี Arduino ของปุ่มกด ตอนนี้เราจะสาธิตวิธีใช้ปุ่มกดทั้งสองแบบในตัวอย่างง่ายๆ
ขั้นตอนที่ 2: การใช้ปุ่มกด 12 หลัก
เราจะใช้แป้นพิมพ์สีดำขนาดเล็ก เข้ากันได้กับ Arduino Uno และ LCD พร้อมอินเทอร์เฟซ I2C เพื่อการแสดงผล หากคุณไม่มีจอ LCD คุณสามารถส่งข้อความไปยังจอภาพแบบอนุกรมแทนได้เสมอ
ต่อสาย LCD ของคุณจากนั้นเชื่อมต่อปุ่มกดกับ Arduino ในลักษณะต่อไปนี้: ปุ่มกดแถว 1 ถึง Arduino ดิจิตอล 5Keypad แถว 2 ถึง Arduino ดิจิตอล 4Keypad แถว 3 ถึง Arduino ดิจิตอล 3 ปุ่มกดแถว 4 ถึง Arduino ดิจิตอล 2 คอลัมน์ปุ่มกด 1 ถึง Arduino ดิจิตอล 8 ปุ่มกดคอลัมน์ 2 ถึง Arduino digital 7Keypad คอลัมน์ 3 ถึง Arduino digital 6 หากปุ่มกดของคุณแตกต่างจากของเรา ให้จดบรรทัดในภาพร่างจาก:
// คำจำกัดความประเภทปุ่มกด
เนื่องจากคุณจำเป็นต้องเปลี่ยนตัวเลขในอาร์เรย์ rowPins[ROWS] และ colPins[COLS] ของอาร์เรย์ คุณป้อนหมายเลขพินดิจิทัลที่เชื่อมต่อกับแถวและคอลัมน์ของปุ่มกดตามลำดับ
นอกจากนี้ ปุ่มอาร์เรย์ยังเก็บค่าที่แสดงใน LCD เมื่อกดปุ่มใดปุ่มหนึ่ง คุณจะเห็นว่าเราจับคู่ปุ่มนี้กับแป้นพิมพ์จริงที่ใช้ แต่คุณสามารถเปลี่ยนเป็นอะไรก็ได้ที่คุณต้องการ แต่สำหรับตอนนี้ ให้ป้อนและอัปโหลดภาพร่างต่อไปนี้เมื่อคุณพอใจกับการจัดสรรหมายเลขแถว/พินแล้ว:
/* แป้นตัวเลขและ I2C LCD https://tronixstuff.com ใช้ไลบรารีปุ่มกดสำหรับ Arduino https://www.arduino.cc/playground/Code/Keypad โดย Mark Stanley, Alexander Brevig */
#include "Keypad.h"
#include "Wire.h" // สำหรับ I2C LCD #include "LiquidCrystal_I2C.h" // สำหรับ I2C bus LCD module // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C จอแอลซีดี (0x27, 16, 2); // ตั้งค่าที่อยู่ LCD เป็น 0x27 สำหรับอักขระ 16 ตัวและจอแสดงผล 2 บรรทัด
// คำจำกัดความประเภทปุ่มกด
ไบต์ const ROWS = 4; //สี่แถว const ไบต์ COLS = 3; // คีย์อักขระสามคอลัมน์ [ROWS][COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
ไบต์ rowPins [ROWS] = {
5, 4, 3, 2}; //เชื่อมต่อกับ pinouts แถวของแป้นพิมพ์ไบต์ colPins[COLS] = {8, 7, 6}; // เชื่อมต่อกับ pinout ของคอลัมน์ของปุ่มกด
จำนวน int=0;
ปุ่มกดปุ่มกด = ปุ่มกด (makeKeymap (คีย์), rowPins, colPins, ROWS, COLS);
การตั้งค่าเป็นโมฆะ ()
{ lcd.init(); // เริ่มต้น LCD lcd.backlight(); // เปิดไฟหลังจอ LCD }
วงเป็นโมฆะ ()
{ คีย์ถ่าน = keypad.getKey (); ถ้า (คีย์! = NO_KEY) { lcd.print (คีย์); นับ++; ถ้า (นับ==17) { lcd.clear(); นับ=0; } } }
และผลลัพธ์ของภาพร่างจะแสดงในวิดีโอ ตอนนี้คุณจะได้เห็นแล้วว่าการกดปุ่มสามารถแปลเป็นข้อมูลเพื่อใช้ในสเก็ตช์ได้อย่างไร ตอนนี้เราจะทำซ้ำการสาธิตนี้ด้วยปุ่มกดที่ใหญ่ขึ้น
ขั้นตอนที่ 3: การใช้ปุ่มกด 16 หลัก
เราจะใช้แป้นกดขนาดใหญ่ 4 × 4 ที่เข้ากันได้กับ Arduino Uno และสำหรับเปลี่ยน I2C LCD จาก Akafugu เพื่อวัตถุประสงค์ในการแสดงผล อีกครั้ง หากคุณไม่มีจอ LCD คุณสามารถส่งข้อความไปยังจอภาพแบบอนุกรมแทนได้เสมอ ต่อสาย LCD แล้วเชื่อมต่อปุ่มกดกับ Arduino ในลักษณะต่อไปนี้:
- ปุ่มกดแถว 1 (ขาแปด) ถึง Arduino digital 5
- ปุ่มกดแถว 2 (พิน 1) ถึง Arduino ดิจิตอล 4
- ปุ่มกดแถว 3 (พิน 2) ถึง Arduino ดิจิตอล 3
- ปุ่มกดแถว 4 (พิน 4) ถึง Arduino digital 2
- คอลัมน์ปุ่มกด 1 (พิน 3) ถึง Arduino digital 9
- คอลัมน์ปุ่มกด 2 (พิน 5) ถึง Arduino digital 8
- คอลัมน์ปุ่มกด 3 (พิน 6) ถึง Arduino digital 7
- คอลัมน์ปุ่มกด 4 (พิน 7) ถึง Arduino ดิจิตอล 6
ตอนนี้สำหรับภาพสเก็ตช์ – สังเกตว่าเรารองรับแป้นตัวเลขขนาดใหญ่ได้อย่างไร: คอลัมน์พิเศษในคีย์ถ่านอาร์เรย์พินพิเศษในอาร์เรย์ colPinsและไบต์ COLS = 4
/* แป้นตัวเลขและ I2C LCD https://tronixstuff.com ใช้ไลบรารีปุ่มกดสำหรับ Arduino https://www.arduino.cc/playground/Code/Keypad โดย Mark Stanley, Alexander Brevig */
#include "Keypad.h"
#include "Wire.h" // สำหรับ I2C LCD #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
ไบต์ const ROWS = 4; //สี่แถว
const ไบต์ COLS = 4; //สี่คอลัมน์ char keys[ROWS][COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; ไบต์ rowPins[ROWS] = { 5, 4, 3, 2}; //เชื่อมต่อกับ pinouts แถวของแป้นพิมพ์ไบต์ colPins[COLS] = {9, 8, 7, 6}; //เชื่อมต่อกับ pinouts ของคอลัมน์ของปุ่มกด int count=0;
ปุ่มกดปุ่มกด = ปุ่มกด (makeKeymap (คีย์), rowPins, colPins, ROWS, COLS);
การตั้งค่าเป็นโมฆะ ()
{ Serial.begin(9600); lcd.begin(16, 2); lcd.print("ทดสอบปุ่มกด!"); ล่าช้า (1000); lcd.clear(); }
วงเป็นโมฆะ ()
{ คีย์ถ่าน = keypad.getKey (); ถ้า (คีย์! = NO_KEY) { lcd.print (คีย์); Serial.print (คีย์); นับ++; ถ้า (นับ==17) { lcd.clear(); นับ=0; } } }
และอีกครั้ง คุณสามารถเห็นผลของภาพร่างด้านบนในวิดีโอ
สำหรับตัวอย่างโปรเจ็กต์ โปรเจ็กต์ที่น่าจะเป็นการใช้แป้นตัวเลขที่มีการร้องขอมากที่สุด…
ขั้นตอนที่ 4: ตัวอย่างโครงการ – ระบบการเข้าถึง PIN
การใช้งานแป้นตัวเลขที่มีการร้องขอมากที่สุดดูเหมือนจะเป็นแอปพลิเคชั่นรูปแบบ "PIN" โดยที่ Arduino ได้รับคำสั่งให้ทำบางสิ่งโดยยึดตามหมายเลขที่ถูกต้องที่ป้อนลงในปุ่มกด สเก็ตช์ต่อไปนี้ใช้ฮาร์ดแวร์ที่อธิบายไว้สำหรับสเก็ตช์ก่อนหน้าและใช้ระบบป้อน PIN หกหลัก
การดำเนินการที่จะเกิดขึ้นสามารถแทรกลงในฟังก์ชัน correctPIN() และไม่ถูกต้องPIN() และ PIN ถูกตั้งค่าในอาร์เรย์ char PIN[6] ด้วยการทำงานพิเศษเล็กน้อย คุณสามารถสร้างฟังก์ชันเปลี่ยน PIN ของคุณเองได้เช่นกัน
// สวิตช์ PIN พร้อมแป้นตัวเลข 16 หลัก // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
ไบต์ const ROWS = 4; //สี่แถว
const ไบต์ COLS = 4; // สี่คอลัมน์ char keys [ROWS][COLS] = { { '1', '2', '3', 'A' }, { '4', '5', '6', 'B' }, { '7', '8', '9', 'C' }, { '*', '0', '#', 'D' } }; ไบต์ rowPins[ROWS] = { 5, 4, 3, 2}; //เชื่อมต่อกับ pinouts แถวของแป้นพิมพ์ไบต์ colPins[COLS] = {9, 8, 7, 6}; //เชื่อมต่อกับ pinout ของคอลัมน์ของปุ่มกด
ปุ่มกดปุ่มกด = ปุ่มกด (makeKeymap (คีย์), rowPins, colPins, ROWS, COLS);
ถ่าน PIN[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 ("ล็อค PIN "); ล่าช้า (1000); lcd.clear(); lcd.print(" ป้อน PIN…"); }
ถือเป็นโมฆะ correctPIN() // ทำเช่นนี้หากป้อน PIN ที่ถูกต้อง
{ lcd.print("* PIN ที่ถูกต้อง *"); ล่าช้า (1000); lcd.clear(); lcd.print(" ป้อน PIN…"); }
ถือเป็นโมฆะ validPIN() // ทำเช่นนี้หากป้อน PIN ไม่ถูกต้อง
{ lcd.print(" * ลองอีกครั้ง *"); ล่าช้า (1000); lcd.clear(); lcd.print(" ป้อน PIN…"); }
ตรวจสอบเป็นโมฆะ PIN()
{ int ถูกต้อง=0; int ฉัน; สำหรับ (i = 0; i < 6; i++) {
ถ้า (พยายาม==PIN)
{ถูกต้อง++; } } if (correct==6) { correctPIN(); } อื่น ๆ { PIN ไม่ถูกต้อง (); }
สำหรับ (int zz=0; zz<6; zz++) { พยายาม[zz]='0'; } }
เป็นโมฆะ readKeypad ()
{ คีย์ถ่าน = keypad.getKey (); ถ้า (คีย์ != NO_KEY) { พยายาม [z] = คีย์; z++; สวิตช์ (คีย์) { กรณี '*': z=0; หยุดพัก; กรณี '#': z=0; ล่าช้า (100); // สำหรับ debounce พิเศษ lcd.clear(); ตรวจสอบ PIN (); หยุดพัก; } } }
วงเป็นโมฆะ ()
{ readKeypad (); }
โครงการนี้แสดงให้เห็นในวิดีโอ
ตอนนี้คุณจึงสามารถใช้ปุ่มกดแบบสิบสองและสิบหกปุ่มกับระบบ Arduino ของคุณได้ ฉันแน่ใจว่าคุณจะพบสิ่งที่มีประโยชน์และน่าสนใจโดยใช้แป้นพิมพ์ในอนาคตอันใกล้นี้
โพสต์นี้มาถึงคุณโดย pmdway.com – ทุกอย่างสำหรับผู้ผลิตและผู้ที่ชื่นชอบอุปกรณ์อิเล็กทรอนิกส์ พร้อมบริการจัดส่งฟรีทั่วโลก
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino