מציג תוצאות 1 עד 9 מתוך 9

נושא: קבלת קלט דרך RS-232

  1. #1
    תאריך הצטרפות
    Jul 2017
    הודעות
    106
    תודה
    0
    קיבל/ה 0 תודות ב-0 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts

    קבלת קלט דרך RS-232

    שלום רב.

    תכננתי מעגל באמצעות ארדואינו לאונרדו ומחשב.
    כתבתי את קטע הקוד הבא :

    int incomingByte = 0;
    void setup() {
    pinMode(8,OUTPUT);
    Serial.begin(115200);


    }


    void loop() {


    while(Serial.available() == 0 ){}


    incomingByte = Serial.read();
    digitalWrite (8,HIGH);




    }

    המטרה בסהך הכל היא להרים את הדק מספק 8 כאשר יש תקשורת מהמחשב שמחובר לארדואינו.
    כאשר אני מדליק את המחשב אני מזהה לד RX מהבהב בארדואינו אך הדק מספר 8 בארדואינו נשאר במצב LOW.

    מה יכולה להיות הסיבה לכך ?

    תודה

  2. פרסומת
  3. #2
    תאריך הצטרפות
    Jun 2016
    הודעות
    112
    תודה
    20
    קיבל/ה 12 תודות ב-12 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    while(serial.available()>0)

  4. #3
    תאריך הצטרפות
    Jul 2017
    הודעות
    106
    תודה
    0
    קיבל/ה 0 תודות ב-0 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    גם את זה ניסיתי - לא עזר לצערי.

  5. #4
    תאריך הצטרפות
    Jun 2016
    הודעות
    112
    תודה
    20
    קיבל/ה 12 תודות ב-12 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    אתה יכול להסביר בדיוק מה אתה מנסה לעשות? המחשב שולח מידע לארדואינו? איזה מידע אתה שולח ומאיפה?

  6. #5
    תאריך הצטרפות
    Jul 2017
    הודעות
    106
    תודה
    0
    קיבל/ה 0 תודות ב-0 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    כן,
    יש לי בעצם מערכת מאוד פשוטה.
    מחשב וארדואינו שמחובר אליו דרך usb.
    אני רוצה שהארדואינו יתחיל לבצע את קטע הקוד שלו אך ורק כאשר שהוא מקבל תקשורת מהמחשב
    כאשר אני מדליק את המחשב נראה שיש תקשורת על הקו כי לד ה rx בארדואינו נדלק
    אבל משום מה הארדואינו לא מתקדם לקטע הקוד שלו ותקוע בלולאה הראשונה ( ממתין לתקשורת )
    בעצם הרעיון אומר שלא משנה לי מה בדיוק המחשב שולח העיקר שישלח משהו כי אני צריך שהארדואינו יתחיל לבצע את הקוד מיד עם הדלקת המחשב

  7. #6
    תאריך הצטרפות
    Jun 2016
    הודעות
    112
    תודה
    20
    קיבל/ה 12 תודות ב-12 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    הבנתי. למה לא לרשום את הקוד הבא?
    קוד:
    void setup() {
      pinMode(13,OUTPUT);
      Serial.begin(9600);
    }
    
    
    void loop() {
      if(Serial.available() > 0 ){
        digitalWrite (13,HIGH);
      }
    }
    נראה הרבה יותר פשוט בשביל בדיקה ראשונית. ואז תפתח את הזכוכית מגדלת של חלון סיריאל ותשלח כל אות והנורה 13 על הלוח צריכה להדלק.

  8. #7
    תאריך הצטרפות
    Jun 2016
    הודעות
    112
    תודה
    20
    קיבל/ה 12 תודות ב-12 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    בעצם הרעיון אומר שלא משנה לי מה בדיוק המחשב שולח העיקר שישלח משהו כי אני צריך שהארדואינו יתחיל לבצע את הקוד מיד עם הדלקת המחשב
    דרך אגב רק כדי לוודא, האם הארדואינו מקבל מתח ממקור אחר חוץ מכבל usb מהמחשב? אתה מבין שאם הארדואינו מחובר רק למחשב עם USB ללא מקור מתח אחר אז אם המחשב נדלק גם הארדואינו נדלק ומבצע קוד?
    מזה ניתן להסיק שברגע שמדליקים את המחשב הארדואינו מיד מבצע את הקוד ללא צורך התקשורת.

  9. #8
    תאריך הצטרפות
    Jul 2017
    הודעות
    106
    תודה
    0
    קיבל/ה 0 תודות ב-0 הודעות
    תודה
    0
    Thanked 0 Times in 0 Posts
    היי.

    הארדואינו לא מקבל מתח חיצוני אלא דרך המחשב כלומר
    ברגע שהמחשב מחובר לחשמל ו ארדואינו אליו אז הארדואינו נדלק.
    העניין הוא שחשוב לי התזמון כלומר רק ברגע שהמחשב נדלק אני צריך שהארדואינו יבצע את הקוד ולא לפני
    זאת אומרת כשהמחשב מחובר לחשמל ולארדואענו דרך ה usb הארדואינו נדלק אבל בשלב זה אני עדיין לא רוצה שהארדואינו יתחיל בקוד אלא רק כאשר המחשב נדלק.
    יש כאן בעצם 2 מצבים של המחשב:
    1. מחובר למתח אך לא דלוק
    2 מחובר למתח ונדלק עם לחיצה על כפתור הדלקה.
    במצב השני אני רוצה שהארדואינו יתחיל לבצע את הקוד

    תודה

  10. #9
    תאריך הצטרפות
    Aug 2013
    הודעות
    2,099
    תודה
    15
    קיבל/ה 324 תודות ב-288 הודעות
    תודה
    0
    Thanked 1 Time in 1 Post
    נראה לי שהבעיה היא שהרגל אותה אתה מדליק משנה מצב רק ל CYCLE בו מתקיים התנאי.
    תיקח את משתנה INCOMMINGBYTE ועל בסיס הערך שלו תדליק את הרגל. אח"כ כשמתאים לך תכבה אותו על מנת שיהיה מוכן למצב הבא שמתקבלת תקשורת.
    כמו כן לצורך דיבוג שאכן התקבל משהו תעשה כתיבה שלו בחזרה לטרמינל.

הרשאות פרסום

  • אין באפשרותך לפרסם נושאים חדשים
  • אין באפשרותך לפרסם תגובות
  • אין באפשרותך לצרף קבצים
  • אין באפשרותך לערוך את הודעותיך
  •  
הרשמה