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

Arduino וכל דבר אחר הקשור לבקרים של Atmel

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

הודעהעל ידי Rotem » ד' אפריל 18, 2012 3:28 am

שלום לכולם,

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

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

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

תודה רבה לכולם (:
Rotem
 
הודעות: 16
הצטרף: ב' מרץ 19, 2012 5:40 pm

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

הודעהעל ידי Alex » ד' אפריל 18, 2012 12:32 pm

אולי תוכנת הארדואינו מחכה למשהו מתקשורת הטורית שתוכנת ה-VB שלך שולחת והמוניטור לא?
www.4project.co.il
כל הרכיבים לפרוייקט שלכם
סמל אישי של המשתמש
Alex
מנהל האתר
 
הודעות: 729
הצטרף: ה' ינואר 28, 2010 8:27 pm

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

הודעהעל ידי Rotem » ד' אפריל 18, 2012 5:59 pm

היי אלכס.. תודה על התגובה, אבל אני לא כל כך מבין למה התכוונת..
Rotem
 
הודעות: 16
הצטרף: ב' מרץ 19, 2012 5:40 pm

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

הודעהעל ידי Alex » ד' אפריל 18, 2012 9:56 pm

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

שוב, אין מספיק פרטים כדי להבין מה בדיוק קורה שם.
www.4project.co.il
כל הרכיבים לפרוייקט שלכם
סמל אישי של המשתמש
Alex
מנהל האתר
 
הודעות: 729
הצטרף: ה' ינואר 28, 2010 8:27 pm

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

הודעהעל ידי Rotem » ה' אפריל 19, 2012 2:04 pm

היי אלכס, המטרה שלי היא להבין איך מתקשרים עם הארדואינו, לכן כל מה שהתוכנית עושה זה להמתין כל עוד לא הוזן קלט
באמצעות
קוד: בחר הכל
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!");

}
Rotem
 
הודעות: 16
הצטרף: ב' מרץ 19, 2012 5:40 pm

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

הודעהעל ידי Alex » ה' אפריל 19, 2012 4:56 pm

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

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

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


חזור אל AVR Atmel

Jump box

מי מחובר

משתמשים הגולשים בפורום זה: CCBot [Bot]