Xbee подтормаживает

Тема в разделе "Arduino & Shields", создана пользователем Alesanda, 8 окт 2014.

  1. Alesanda

    Alesanda Нуб

    Доброго времени суток. Подскажите, я читаю шесть портов ацп arduino uno и отправляю данные на комп с частотой 50 мс. Через usb кабель все передается норм, а через xbee (zigbee) модуль то нормально, то с задержкой (до 3 сек). Не могу понять почему возникает задержка.
    Скетч:
    char Str; String Val;
    void setup()
    { Serial.begin(9600); }

    void loop()
    { if (Serial.available())
    { Str = Serial.read();
    if (Str == '9')
    { Val = "A0" + String(analogRead(0)) + "A1" + String(analogRead(1)) +
    "A2" + String(analogRead(2)) + "A3" + String(analogRead(3)) +
    "A4" + String(analogRead(4)) + "A5" + String(analogRead(5));

    Serial.print(Val);

    }
    }
    }
    Читаю при помощи CommPortDriver на Delphi
    Запрос:
    begin CommPortDriver1.SendString('9'); end;
    Чтение:
    begin s:=''; For i:=0 to DataSize-1 do begin s:=s+(PChar(DataPtr)); end;
    Edit1.Text:=Edit1.Text+s;
    end;
    З.Ы. Буду благодарен любому совету.
     
  2. Arseny

    Arseny Нерд

    Serial.begin установите на скорость побыстрее
     
  3. Alesanda

    Alesanda Нуб

    Я ставил 115200, ничего не изменилось.
     
  4. Arseny

    Arseny Нерд

    Тогда попробуйте в void setup() вставить Serial.setTimeout(0)
     
  5. Alesanda

    Alesanda Нуб

    Попробовал, ничего не изменилось - я посылаю запрос, а ответ приходит либо сразу, либо с задержкой 1-3 сек.
     
  6. Arseny

    Arseny Нерд

    Я помогал как мог
     
  7. Alesanda

    Alesanda Нуб

    Спасибо.
     
  8. NR55RU

    NR55RU Гик

    При разработке проекта я стокнулся с этой проблемой и решил её, вот моя статейка с описанием решения :)
     
    SergyPozitiF1 нравится это.
  9. Alesanda

    Alesanda Нуб

    Спасибо огромное, помогло.