פורסם 2013 באפריל 412 שנים כתבתי כבר בסביבות ה10 פעמים מחדש את הקוד בכל וריאציה שלו ומשום מה אני לא מצליח להפעיל אותו, ניסיתי לקחת כמה קודים כתובים ולשנות אותם לפי מה שאני צריך(ע"פ סוג המקלדת והLCD שלי) אבל לא הולך לי כ"כאני משתמש במקלדת 2 שורות(2X16) מסוג M1632מקלדת 4X4(זאתי שיש בה גם את A,B,C,D בנוסף למספרים ולסימנים)ובמפענח מקלדת 74922אשמח אם מישהו יוכל לענות לי ולעזור לי לתקן את הקוד שלי, הוא עובד כמובן קומפילציה אבל לא פועל, הLCD מציג את השורה הראשונה בה כתוב "קוד:" ובשורה השניה מספרים אקראיים שהם בד"כ שורה של 5 אחדים או 5 פעמים 2, אחרי 10-15 שניות של ההצגה הזאת המסך כל הLCD מתמלא במספר 2 משום מה, כל 2 השורות.הקוד אמור בסה"כ לקרוא את המקשים שהוקשו במקלדת ולהציג על הLCD.זה הקוד:#include <LiquidCrystal.h>LiquidCrystal lcd(12, 11, 5, 4, 3, 2);int da = 30;int d0 = 31;int d1= 32;int d2 = 33;int d3 = 34;int codes [4][4] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int thisCol = 0;void setup (){ pinMode(da,INPUT); pinMode(d0,INPUT); pinMode(d1,INPUT); pinMode(d2,INPUT); pinMode(d3,INPUT); lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Code:");}void loop () {lcd.setCursor(0, 1); //int res=digitalRead(da);//if (res==1)//{ do{ int dds[]={digitalRead(d0),digitalRead(d1),digitalRead(d2),digitalRead(d3)}; switch (dds[3]) { case 0: lcd.print('1'); thisCol++;break; case 1: lcd.print('2'); thisCol++;break; case 2: lcd.print('3'); thisCol++;break; case 3: lcd.print('A'); thisCol++;break; case 4: lcd.print('4'); thisCol++;break; case 5: lcd.print('5'); thisCol++;break; case 6: lcd.print('6'); thisCol++;break; case 7: lcd.print('B'); thisCol++;break; case 8: lcd.print('7'); thisCol++;break; case 9: lcd.print('8'); thisCol++;break; case 10: lcd.print('9'); thisCol++;break; case 11: lcd.print('C'); thisCol++;break; case 12: lcd.print('*'); thisCol++;break; case 13: lcd.print('0'); thisCol++;break; case 14: lcd.print('#'); thisCol++;break; case 15: lcd.print('D'); thisCol++; break; } }while(thisCol<=5);lcd.setCursor(1,thisCol);//}}תודה מראש למי שיצליח לעזור
פורסם 2013 באפריל 512 שנים למה אתה בודק את dds[3]? הרי זו תוצאה של digitalRead שיכולה להיות רק 0 או 1.חוץ מזה, אתה לא בודק מתי הפסיקו ללחוץ על מקש, אז אתה בעצם קורא את אותו קלט שוב ושוב.
פורסם 2013 באפריל 512 שנים מחבר dd[3] זה החיבור של 4 הכניסות של הפורטים, כל אחת מהכניסות יכולה להיות או 1 או 0, אני בודק את המשתנה הגדול שמכיל את הצירוף ש'מסמן' איזה מקש נלחץ, 4 כניסות ל16 צירופים במקלדת של 4X4ואני בודק בכמה קייסים כל פעם מחדש את אותו הקלט של ה4 סיביות
פורסם 2013 באפריל 512 שנים לדאבג זה מספיק קשה אם אתה כתבת את הקודלפרש קוד בלי הערות צד זה ממש לא נעים.תוסיף הערות שניתן יהיה לשחזר את צעדך ואז נמצא (יתכן שגם אתה תמצא ) את הבעיה
פורסם 2013 באפריל 512 שנים dd[3] זה החיבור של 4 הכניסות של הפורטים, כל אחת מהכניסות יכולה להיות או 1 או 0, אני בודק את המשתנה הגדול שמכיל את הצירוף ש'מסמן' איזה מקש נלחץ, 4 כניסות ל16 צירופים במקלדת של 4X4לא אתה לא. יש לך מערך של 4 משתנים מסוג int ואתה מכניס לכל אחד מהם 0 או 1. dds[3] הוא האחרון מביניהם.[עריכה - תיקנתי את שם המשתנה, זה dds ולא dd]
פורסם 2013 באפריל 612 שנים מחבר פאדיחה עם הdd[3], לא שמתי לבלא משנה, בכ"מ תודה לכל מי שניסה לעזורפתרתי את הבעיה בצורה אחרת, העפתי מהפרויקט את 74922 והשתמשתי בכל 8 היציאות של המקלדת בחיבור ישיר לארדואינו(מגה, אז יש מקום) ו.. זהו, אתמול בלילה כתבתי קוד חדש ועכשיו הכל בסדר
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.