תוכן עניינים:

שימוש בלוחות מקשים עם Arduino: 4 שלבים
שימוש בלוחות מקשים עם Arduino: 4 שלבים

וִידֵאוֹ: שימוש בלוחות מקשים עם Arduino: 4 שלבים

וִידֵאוֹ: שימוש בלוחות מקשים עם Arduino: 4 שלבים
וִידֵאוֹ: שימוש בנהג מנוע צעד L298N לשליטה במנוע צעד 4 חוטים 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 Digital 5 שורת לוח 2 ל- Arduino Digital 4K שורת לוח 3 ל- Arduino Digital 3 לוח מקשים 4 לעמודה Arduino Digital 2 לוח מקשים 1 לעמודה Arduino Digital 8 לוח מקשים 2 עד עמודה 3 של לוח המקשים Arduino Digital 7 עד Arduino Digital 6 אם לוח המקשים שלך שונה משלנו, שים לב לשורות המערכון מתוך:

// הגדרת סוג לוח המקשים

כפי שאתה צריך לשנות את המספרים בשורות המערכים [ROWS] ו- colPins [COLS]. אתה מזין את מספרי הפינים הדיגיטליים המחוברים לשורות והעמודות של לוח המקשים בהתאמה.

יתר על כן, מקשי המערך מאחסנים את הערכים המוצגים ב- LCD כאשר לוחצים על לחצן מסוים. אתה יכול לראות שהתאים לנו אותו ללוח המקשים הפיזי המשמש, אך תוכל לשנות אותו לכל מה שאתה צריך. אבל לעת עתה, הזן והעלה את הסקיצה הבאה לאחר שהיית מרוצה מהקצאת מספר השורות/סיכות:

/ * לוח מקשים מספרי ו- I2C LCD https://tronixstuff.com משתמש בספריית לוח המקשים עבור Arduino https://www.arduino.cc/playground/Code/Keypad מאת מארק סטנלי, אלכסנדר ברוויג */

#כלול "לוח מקשים. h"

#כלול "Wire.h" // עבור I2C LCD #כלול "LiquidCrystal_I2C.h" // עבור מודול LCD אוטובוס I2C // 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 = 4; // ארבע שורות const byte COLS = 3; // שלוש עמודות מפתחות char [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

בתים rowPins [ROWS] = {

5, 4, 3, 2}; // התחבר לשורות החריפות של בייט המקשים colPins [COLS] = {8, 7, 6}; // התחבר לסיבוכי העמודות של לוח המקשים

int int = 0;

לוח מקשים = לוח מקשים (makeKeymap (מקשים), rowPins, colPins, ROWS, COLS);

הגדרת חלל ()

{lcd.init (); // לאתחל את lcd lcd.backlight (); // הפעל תאורה אחורית של LCD}

לולאת חלל ()

{char key = keypad.getKey (); if (מפתח! = NO_KEY) {lcd.print (מפתח); ספירה ++; if (count == 17) {lcd.clear (); ספירה = 0; }}}

ותוצאות הסקיצה מוצגות בסרטון. אז עכשיו אתה יכול לראות כיצד ניתן לתרגם את לחיצות הכפתורים לנתונים לשימוש בסקיצה. כעת נחזור על ההדגמה הזו בעזרת לוח המקשים הגדול יותר.

שלב 3: שימוש בלוח מקשים בן 16 ספרות

נשתמש בלוח המקשים הגדול יותר 4 × 4, תואם Arduino Uno ולמען שינוי I2C LCD מ- Akafugu למטרות תצוגה. שוב, אם אין לך LCD תמיד תוכל לשלוח את הטקסט לצג הטורי במקום זאת. חבר את ה- LCD ולאחר מכן חבר את לוח המקשים ל- Arduino באופן הבא:

  • לוח מקשים 1 (סיכה שמונה) ל- Arduino Digital 5
  • שורת לוח מקשים 2 (סיכה 1) ל- Arduino Digital 4
  • לוח מקשים 3 (סיכה 2) ל- Arduino Digital 3
  • לוח מקשים 4 (סיכה 4) ל- Arduino Digital 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 מאת מארק סטנלי, אלכסנדר ברוויג */

#כלול "לוח מקשים. h"

#כלול "Wire.h" // עבור I2C LCD #כלול "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

שורות const byte = 4; // ארבע שורות

const byte COLS = 4; // ארבע עמודות מפתחות char [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; בתים rowPins [ROWS] = {5, 4, 3, 2}; // התחבר לשורות החריפות של בייט המקשים colPins [COLS] = {9, 8, 7, 6}; // התחבר לסיבוכי העמודות של ספירת int לוח המקשים = 0;

לוח מקשים = לוח מקשים (makeKeymap (מקשים), rowPins, colPins, ROWS, COLS);

הגדרת חלל ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("בדיקת לוח מקשים!"); עיכוב (1000); lcd.clear (); }

לולאת חלל ()

{char key = keypad.getKey (); if (מפתח! = NO_KEY) {lcd.print (מפתח); Serial.print (מפתח); ספירה ++; if (count == 17) {lcd.clear (); ספירה = 0; }}}

ושוב תוכלו לראות את תוצאות המערכון למעלה בסרטון.

עכשיו לפרויקט לדוגמא, אחד שהוא כנראה השימוש המבוקש ביותר בלוח המקשים המספרי …

שלב 4: פרויקט לדוגמה - מערכת גישה ל- PIN

נראה שהשימוש המבוקש ביותר בלוח המקשים המספרי הוא יישום בסגנון "PIN", כאשר הארדואינו מורה לעשות משהו המבוסס על מספר נכון שנכנס למקלדת. הסקיצה הבאה משתמשת בחומרה שתוארה עבור הסקיצה הקודמת ומיישמת מערכת הזנת PIN בן שש ספרות.

ניתן להכניס את הפעולות שיש לבצע בפונקציות correctPIN () ו- wrongPIN (). ו- PIN מוגדר ב- PIN של מערך char [6]. עם קצת עבודה נוספת תוכל גם ליצור פונקציית שינוי PIN משלך.

// מתג PIN עם לוח מקשים מספרי בן 16 ספרות // https://tronixstuff.com #כלול "מקשים.ה" #כלול #כלול LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

שורות const byte = 4; // ארבע שורות

const byte COLS = 4; // ארבע עמודות מפתחות char [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; בתים 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.begin (16, 2); lcd.print ("נעילת PIN"); עיכוב (1000); lcd.clear (); lcd.print ("הזן PIN …"); }

void correctPIN () // עשה זאת אם הזנת קוד PIN נכון

{lcd.print (" * PIN נכון *"); עיכוב (1000); lcd.clear (); lcd.print ("הזן PIN …"); }

void wrongPIN () // לעשות זאת אם הזינו קוד PIN שגוי

{lcd.print (" * נסה שוב *"); עיכוב (1000); lcd.clear (); lcd.print ("הזן PIN …"); }

check void check PIN ()

{int correct = 0; int i; עבור (i = 0; i <6; i ++) {

אם (ניסיון == PIN )

{נכון ++; }} if (correct == 6) {correctPIN (); } אחר {wrongPIN (); }

for (int zz = 0; zz <6; zz ++) {ניסיון [zz] = '0'; }}

void read מקשים ()

{char key = keypad.getKey (); אם (מפתח! = NO_KEY) {ניסיון [z] = מפתח; z ++; מתג (מפתח) {case '*': z = 0; לשבור; מקרה '#': z = 0; עיכוב (100); // לתוספת debounce lcd.clear (); checkPIN (); לשבור; }}}

לולאת חלל ()

{readKeypad (); }

הפרויקט מודגם בסרטון.

אז עכשיו יש לך את היכולת להשתמש במקלדות של שתים עשרה ושש עשרה כפתורים עם מערכות ה- Arduino שלך. אני בטוח שתמצא משהו שימושי ומעניין באמצעות לוח המקשים בעתיד הקרוב.

הפוסט הזה מובא אליכם על ידי pmdway.com - הכל ליצרנים ולחובבי האלקטרוניקה, עם משלוח חינם לכל רחבי העולם.

מוּמלָץ: