ארדואינו- סיריאל מוניטור

Arduino וכל דבר אחר הקשור לבקרים של Atmel
שלח תגובה
Rotem
הודעות: 16
הצטרף: ב' מרץ 19, 2012 5:40 pm

ארדואינו- סיריאל מוניטור

שליחה על ידי Rotem »

שלום לכולם,

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

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

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

תודה רבה לכולם (:
סמל אישי של משתמש
Alex
מנהל האתר
הודעות: 763
הצטרף: ה' ינואר 28, 2010 8:27 pm

Re: ארדואינו- סיריאל מוניטור

שליחה על ידי Alex »

אולי תוכנת הארדואינו מחכה למשהו מתקשורת הטורית שתוכנת ה-VB שלך שולחת והמוניטור לא?
www.4project.co.il
כל הרכיבים לפרוייקט שלכם
Rotem
הודעות: 16
הצטרף: ב' מרץ 19, 2012 5:40 pm

Re: ארדואינו- סיריאל מוניטור

שליחה על ידי Rotem »

היי אלכס.. תודה על התגובה, אבל אני לא כל כך מבין למה התכוונת..
סמל אישי של משתמש
Alex
מנהל האתר
הודעות: 763
הצטרף: ה' ינואר 28, 2010 8:27 pm

Re: ארדואינו- סיריאל מוניטור

שליחה על ידי Alex »

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

שוב, אין מספיק פרטים כדי להבין מה בדיוק קורה שם.
www.4project.co.il
כל הרכיבים לפרוייקט שלכם
Rotem
הודעות: 16
הצטרף: ב' מרץ 19, 2012 5:40 pm

Re: ארדואינו- סיריאל מוניטור

שליחה על ידי Rotem »

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

קוד: בחירת הכל

while (Serial.available() == 0) 


כשהוזן משהוא -אם הקלט 1 מדליקה לד, אם הקלט 0 מכבה, ובמידה זה לא 0 או 1 שולחת הודעת שגיאה.
אני מצרף את הקוד בשלמותו, תודה על העזרה :D

קוד: בחירת הכל

 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!");

}
סמל אישי של משתמש
Alex
מנהל האתר
הודעות: 763
הצטרף: ה' ינואר 28, 2010 8:27 pm

Re: ארדואינו- סיריאל מוניטור

שליחה על ידי Alex »

טוב, התוכנית אכן פשוטה ולא ראיתי בה בעיות...
אז כנראה שהבעיות נובעות מהסביבה עצמה.

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

תנסה גם להדפיס משהו לפני שאתה מחכה לקלט, נגיד "Your input: " ותראה אם אתה רואה את זה אחרי שאתה מעלה תוכנית.
כנראה שלא תראה כי יקח לך זמן לפתוח את הטרמינל.
אבל אם תראה את השורה הזו הרבה פעמים אחרי זה, בלי שהקשת משהו, אז כנראה שמשהו הגיע לתוכנית שלך שזה בעצם שאריות מפעולה קודמת...
www.4project.co.il
כל הרכיבים לפרוייקט שלכם
שלח תגובה