תוכן עניינים:
- שלב 1: תצוגה סדרתית
- שלב 2: מקלדת מטריקס
- שלב 3: הרכבה
- שלב 4: קוד המקור
- שלב 5: פקודות תצוגה
- שלב 6: הפעלת מקלדת
- שלב 7: הגדרת סיסמה
- שלב 8: התקנה
- שלב 9: לולאה
וִידֵאוֹ: מקלדת לוח מחוונים עם תצוגת LCD ו- Arduino Uno: 9 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
זוהי מקלדת מטריקס הפועלת יחד עם תצוגת LCD ו- Arduino Uno, הבסיסית ביותר שקיימת כיום. מטרת התקנה זו היא ליצור תוכנית המקבלת סיסמה שהוקלדה במקלדת המטריצה, משווה אותה עם הסיסמה הנכונה ומציגה הודעת אישור בתצוגה.
חשוב לזכור כי גם מקלדת המטריצה וגם תצוגה זו פועלים עם ESP8266 ו- ESP32.
כפי שאתה יכול לראות, אנו מפעילים את המעגל באמצעות ה- Arduino באמצעות USB, מכיוון שאיננו משתמשים במקור חיצוני. שמונה חוטים המחוברים בצורה פשוטה מאוד ליציאות ה- Arduino מבצעים את החיבור של המקלדת שלנו. למקלדת זו אין כוח והיא פסיבית, מה שמקל מאוד על החיבורים.
התצוגה מחוברת עם Arduino באמצעות ה- UART, היציאה הטורית, המפעילה גם את המכשיר.
בהדגמה אנו מראים בסרטון את המעגל שלנו בודק אם הסיסמה שהוקלדה במקלדת נכונה או לא.
בקובץ ה- PDF המשמש בסרטון וזמין כאן, יש לנו את הסימון המלא של השבב בו משתמשים.
שלב 1: תצוגה סדרתית
זוהי התצוגה הסדרתית המתקשרת עם ה- UART, שהוא RS עם TXRX. הוא קיים גם בגרסאות I2C, אך דגמים אחרים יישארו להרכבה הקרובה. במקרה זה, תצוגה זו פועלת על ידי UART by RS.
שלב 2: מקלדת מטריקס
הדוגמה של מקלדת המטריצה שבה אנו משתמשים היא זו של התמונה, והיא נמצאת בצד ימין. יש לנו תרשים המראה כיצד הוא פועל. למעשה יש לו קווים 4x4 בלבד. לפיכך, הוא משתמש בכמות החוטים המינימלית; חוט אחד לכל שורה ועמודה, כך שיהיו שמונה חוטים בסך הכל.
הוא אינו זקוק לחשמל מכיוון שהוא פועל כדלקמן: כאשר לוחצים על 7, המקלדת מרימה את 7 ומתחברת לקו ולעמודה, מה שמאפשר זיהוי על ידי סריקת האלגוריתם באופן אוטומטי.
חשוב לזכור שכל מקלדת 4x4 שהיא מטריצת נקודות תעבוד במכלול זה.
שלב 3: הרכבה
בתוכנית הכללית, אנו מחברים שמונה חוטים ישירות ליציאות הארדואינו, מכיוון שלמקלדת אין כוח. בתצוגה יש לנו אות RS 232 והספק חיובי ושלילי. התאורה האחורית עדיין קיימת, שגם היא כבר מחוברת (מזוהה על ידי BKL).
שלב 4: קוד המקור
בקוד המקור של הפרויקט הזה, עליך לכלול את הסידורי ולוח המקשים. יש לו ערכת RX_PIN ו- TX_PIN, הדרושים לתוכנה הסדרתית, וגם ה- INVERTED 1. זה הונח מתחת כדי להגביר את האות שמשתמש בקלט עם לוגיקה הפוכה.
// biblioteca responsável pela comunicação com o display LCD #include // biblioteca responsável por capturar a tecla que foi pressionada no teclado #include // pino invalido apenas usado no controller do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação תצוגת LCD #define TX_PIN 3 // inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH and vice versa #define INVERTED 1
שלב 5: פקודות תצוגה
חשוב: בתצוגה זו, לא מספיק רק לשים עליה מחרוזת. עליך לשלוח תווי שליטה. קובץ ה- PDF מכיל את הקישור של האתר שבו יש לך מדריך לתצוגה זו. אבל אם יש לך תצוגה סדרתית של מותג אחר, טוב להסתכל על קודי הבקרה שלהם הנוגעים לכך. במודל זה, למשל, כאשר אנו שולחים פקד מסוים (מידע לתצוגה זו, למשל), עלינו לשלוח קידומת, המספר 254, כדי לאפשר תקשורת.
אז הקמנו ARRAY כדי להקל על הדברים, שהוא אוסף של משתנים שאליהם ניגשים עם אינדקס מספרי. זה יישלח לתצוגה כתצורה ראשונית.
// comando para limpar toda a tela do displayconst char limparTela = {254, 1}; // comandos de configuração inicial/ * 254, 254 acende o backlight 254, 1 limpa a tela 254, 253, 1 configura o contraste em nível alto 254, 13 liga o cursor paraficar piscando */const char configInicial = {254, 254, 254, 1, 254, 253, 1, 254, 13};
שלב 6: הפעלת מקלדת
כיצד מתפקדת המקלדת? ראשית, הוא מגדיר מערך. מערך זה הוא של הדמות שתוצג שם בפועל. אז אם אני שם X, כשאני לוחץ על הכפתור השמאלי הראשון למעלה, הוא מוצג. זהו תוכן המקלדת, על מה היא תפקוד.
דברים נוספים שיש לנו את ההגדרה עבורם הם שורה מספר 4 ועמודה מספר 4, במקרה של ARRAY של מקלדת זו. עדיין יש לנו סיכות של הקווים, שהם סיכות הארדואינו, וסיכות העמוד. עדיין יש לנו בונה לוח מקשים מותאם אישית עם הסמל, הסיכה, השורה והפרמטרים.
const byte LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // define uma matriz com os símbolos que deseja ser lido do teclado char SIMBOLOS [LINHAS] [COLUNAS] = {{'A', '1', '2', '3'}, { 'B', '4', '5', '6'}, {'C', '7', '8', '9'}, {'D', 'c', '0', 'e '}}; בתים PINOS_LINHA [LINHAS] = {8, 9, 10, 11}; // pinos que indicam as linhas do teclado byte PINOS_COLUNA [COLUNAS] = {4, 5, 6, 7}; // pinos que indicam as colunas do teclado // instancia de Keypad, responsável por capturar a tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
שלב 7: הגדרת סיסמה
בחלק זה, אנו מגדירים את הסיסמה, ולאחר מכן עלינו להזין סיסמה, שהיא מחרוזת ריקה. להלן, הנחנו את המופע של softwareSerial.
// variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; מחרוזת SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Display via Serial SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);
שלב 8: התקנה
באשר להתקנה, הנה displaySerial.begin (2, 400), שזה בערך המהירות. במקרה שלנו, זה מספיק כדי לשלוח בתים. בעקבות זאת, יש המתנה של 700 אלפיות השנייה. אנו כוללים את displaySerial.print (initialConfig) מהתצורה הראשונית עם עיכוב חדש של 10 אלפיות השנייה, ואנו עוברים לפונקציית ההתחלה. בפונקציית ההתחלה שמנו displaySerial.print ("סיסמא:").
הגדרת void () {Serial.begin (2400); // inicializando a serial de comunicação com o display // importante o baud rate ser de 2400 displaySerial.begin (2400); // tempo de espera pela inicialização do display display (700); // seta a configuração inicial do display displaySerial.print (configInicial); עיכוב (10); inicio (); } // função responsável por imprimir na tela a mensagem para digitar a senha // é chamada toda vez q a senha foi digitada e comparada, também quando // a tecla limpar display foi pressionada. void inicio () {displaySerial.print ("Senha:"); }
שלב 9: לולאה
בלולאה, אנו יוצרים customKey = customKeypad.getKey (), וברצף, אנו מזינים פקודת Switch.
// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); לעבור (customKey) { /… /}}
מתג לולאה חלק 1
בתוך פקודת הבורר: היא מציגה את רשימת האפשרויות של מקשים להדפסה, אם לוחצים עליה, ומגדילה את הסיסמה: לוקחת את המפתח המותאם אישית ומחברת את הסיסמה שהוזנה. לאחר מכן, displaySerial.print (customKey) מציג את תוכן המפתח.
switch (customKey) {// caso alguma das teclas imprimíveis foi pressionada case 'A': case 'B': case 'C': case 'D': case '0': case '1': case '2': case '3': מקרה '4': מקרה '5': מקרה '6': מקרה '7': מקרה '8': מקרה '9': // concatena o novo símbolo a senha que estamos digitando SENHA_DIGITADA+= customKey; Serial.println (SENHA_DIGITADA); // imrpime na tela o símbolo pressionado displaySerial.print (customKey); לשבור;
מתג לולאה חלק 2
בקוד זה, אנו מציגים תרחיש אם לוחצים על מקש CLEAR. אם אתה מקליד את האות C ומנקה את המשתנה המכיל את הסיסמה שאתה מקליד, הוא קורא לפקודה כדי לנקות את המסך ולהפעיל מחדש.
// caso a tecla CLEAR case 'c': // limpa a variável que guarda a senha que está sendo digitada SENHA_DIGITADA = ""; // chama o comando para limpar a tela displaySerial.print (limparTela); // configura a mensagem para digitar a senha inicio (); לשבור;
מתג לולאה חלק 3
אפשרות נוספת היא אם תקליד את האות E. במקרה זה, המסך ינוקה וינותח אם הסיסמה שהוזנה נכונה או לא נכונה. לאחר מכן, אנו נותנים עיכוב חדש של 2 שניות, ננקה את המסך, נאפס את משתנה הסיסמה ונחזור להתחלה.
// caso a tecla ENTER seja pressionada, devemos comparar as senhas case 'e': // limpa a tela displaySerial.print (limparTela); // se a senha digitada foi igual a ESPERADA if (SENHA_ESPERADA == SENHA_DIGITADA) {Serial.println ("Senha Correta!"); // imprime mensagem de senha correta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada else {Serial.println ("Senha Incorreta!"); // imprime mensagem de senha incorreta displaySerial.print ("Senha Incorreta!"); } // aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);
מוּמלָץ:
לוח מחוונים לאופנוע פטל: 9 שלבים (עם תמונות)
לוח המחוונים של אופנוע פטל: כתלמיד מולטימדיה & טכנולוגיית תקשורת ב- Howest Kortrijk, נאלצתי ליצור פרויקט IoT משלי. זה ישלב את כל המודולים שבוצעו בשנה הראשונה לפרויקט אחד גדול. מכיוון שאני רוכב על האופנוע הרבה בזמני הפנוי
Aquaponics חכם אוטומטי (עם לוח מחוונים מבוסס ענן): 11 שלבים
Aquaponics חכם אוטומטי (עם לוח מחוונים מבוסס ענן): Aquaponics מאפשר לך לגדל מזון אורגני משלך בכל מקום (בפנים או בחוץ), בפחות מקום פחות, עם יותר צמיחה, פחות שימוש במים וללא כל דשן כימי חיצוני. כמו כן, תוכל לעקוב אחר התנאים בלוח מחוונים מבוסס ענן
בנה לוח מחוונים של מזג אוויר באמצעות API של Sky Sky: 5 שלבים (עם תמונות)
בנה לוח מחוונים למזג אוויר באמצעות Dark Sky API: Dark Sky מתמחה בחיזוי מזג אוויר והדמיה. ההיבט המגניב ביותר של Dark Sky הוא ה- API של מזג האוויר שבו אנו יכולים להשתמש כדי לאחזר את נתוני מזג האוויר כמעט מכל מקום בעולם. לא רק מזג האוויר גשום או שטוף שמש אלא טמפרטורה
גינו: לוח מחוונים עבור הארדואינו שלך: 4 שלבים (עם תמונות)
Guino: Dashboard for Arduino שלך: פרויקט זה הוא חלק מניסויים שנעשו בעת ביצוע אמן במגורים ב- Instructables. אתה יכול לראות את הפרויקטים האחרים כאן. זו יכולה להיות משימה מסובכת לאתר באגים ולדמיין נתונים בזמן אמת על לוח Arduino. בדרך כלל אתה תקוע עם ה
לוח מחוונים טמפרטורה של לורה: 5 שלבים
לוח מחוונים לטמפרטורה של לורה: במדריך האחרון שלי הראיתי לך כיצד לחבר חיישן טמפרטורה ללורה באמצעות TTN. עכשיו אני הולך להראות לך כיצד תוכל לקרוא נתונים אלה ולהציג אותם בלוח מחוונים. נסקור גם כיצד להשתמש בנתונים ב- IFTTT