עבור לתוכן

ארדואינו ו - serial monitor

Featured Replies

פורסם

שלום לכולם,

כתבתי תוכנית פשוטה לארדואינו שבעיקרון מחכה לקלט מהמשתמש (דרך הסיריאל מוניטור),

ואז מדליקה או מכבה לד בהתאם לקלט.

העניין הוא כזה- כאשר אני פותח את המוניטור, הלד בפין 13 נדלק (ונשאר דלוק, לא מהבהב)

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

ומשלב זה ואילך התוכנית עובדת בסדר גמור, הלד נדלק או נכבה בהתאם לקלט.

(אגב- כתבתי גם תוכנית בvisual basic שמתקשרת עם הארדואינו דרך "סיריאל פורט" ושם אין לי את הבעיה הזאת)

מישהו יודע מדוע זה קורה/מה ניתן לעשות בנדון?

תודה רבה לכולם (:

פורסם

שלום,

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

מעבר לזה, וידאת שמדובר ב-LED של פין 13? כי ממש צמוד אליו נמצאים ה-LEDים של התקשורת הסריאלית (TX/RX), אולי זה אחד מהם שפועל?

פורסם
  • מחבר

אהלן עידו.. ביקרתי באתר שלך לפני שבוע ומשהו ורציתי לברך על היוזמה...

כל הכבוד על ההשקעה והתרומה שלך לתחום, ומעבר לזה על הנכונות לעזור ולהוות "כתובת" לאנשים הזקוקים לעזרה או עצה .

לענייננו- אם זה לא היה מוזר לא הייתי שואל, הלא כן?!

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

הקוד הוא די פשוט בעקרון:


int ledPin = 13;

void setup(){

Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {

int led ;

// Waiting for user input
while (Serial.available() == 0) ;

led = Serial.read() - 48;
Serial. println (led);

if (led == 0 ){
digitalWrite(ledPin, LOW);
}
else if(led==1) {
digitalWrite(ledPin, HIGH);
}
else Serial.println("input is invalid!");

}


תודה על התשובה ובהצלחה בהמשך..

רותם.

פורסם

היי רותם,

יש שני סוגים של באגים - מעצבנים (כשמשהו סתם לא עובד ולא מבינים למה), ומוזרים (כשמשהו עובד בצורה שנראית בכלל לא הגיונית). המקרה שלך הוא מהסוג השני :-)

אני לא טוען חלילה שאתה בור - רק שהלדים של התקשורת הסריאלית קרובים מאד לזה של פין 13, ובחלק מהלוחות (הסיניים?) גם מאירים באותו צבע בדיוק, אז יש פוטנציאל לבלבול. אני עצמי עשיתי טעויות בגלל פחות מזה...

לעניין: העתקתי את הקוד שלך ישירות לארדואינו שלי (אחרי שתיקנתי את חוסר התאימות ברישיות בשם המשתנה LED - תופעת לוואי של הפורום?) וזה עובד בדיוק כמו שזה אמור לעבוד, בלי צורך באתחול. אז אם הבעיה ממשיכה אצלך, האפשרויות היחידות שאני רואה כרגע הן:

1. הלוח שמוגדר לקומפיילר (Tools->Board) לא תואם מסיבה כלשהי את הלוח בו אתה משתמש. קרה לי פעם שהעליתי קוד ללוח לא מתאים ולא קיבלתי התראה על כך, והבעיה התגלתה רק בזכות תפקוד לקוי. אפרופו, מותקנת אצלך הגרסה העדכנית ביותר של הקומפיילר?

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

תודה ובהצלחה :-)

פורסם

רגע, חשבתי על עוד משהו: לא איפסת את פין 13 ל-LOW בתוך setup - יכול להיות שהוא בוחר באקראי ערך התחלתי של HIGH וזה מה שגורם לו לדלוק עד שמופיע קלט מהמוניטור.

למה המוניטור לא מגיב עד האתחול - עדיין לא ברור.

פורסם
  • מחבר

היי עידו.. תודה על התגובות..

דבר ראשון חוסר התיאום באותיות הרישיות לא מופיע בקוד שלי הוא אכן תופעת לוואי של הפורום ??? (ובכלל לא שמתי לב לזה עד שהארת את עיניי.. למה זה קורה?)

בנוסף הלוח שמוגדר לקומפיילר הוא הלוח הנדרש (mega 2560), והגירסה היא 1.0 (תקן אותי אם אני טועה- היא העדכנית..)

לעניין בעיה כלשהי בחומרה- החשש מקנן בי, למרות שזה עדיין מוזר כי הכל עובד כשורה אחרי האיפוס הידני, ועוד יותר מוזר שאני עובד מול התוכנה שכתבתי בVB אין צורך בכלל באיפוס..

בכללי אני נתפס על קטנות, כי כמה קשה זה כבר ללחוץ על כפתור(?) אבל בכל זאת יש לי צורך להבין את התהליך מכיוון שאני לא רוצה להגיע למצב שבתוכנית יותר מסובכת אני אמצא את עצמי "עם המכנסיים למטה" :)

ושוב תודה וערב נעים..

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים