XBee шалят

Тема в разделе "Arduino & Shields", создана пользователем Иван С, 21 май 2012.

  1. Иван С

    Иван С Гик

    С одной платы на другую посылается 0 и 1, по очереди. Но приходит куча символов!

    Безымянный.png

    Так и должно быть? Как достать нужные символы?

    Код на приёмнике:
    Код (Text):
    #include <SPI.h>
    #include <Ethernet.h>
     
    byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x1D, 0xED };
    byte ip[] = { 192, 168, 1, 177 };
     
    EthernetServer S = EthernetServer(80);
     
    void setup(){
     
        Serial.begin(9600);
        Ethernet.begin(mac, ip);
        S.begin();
    }
     
    void loop(){
        EthernetClient cl = S.available();
        if(cl){
            S.println("HTTP/1.1 200 OK");
           
            S.println();
           
            while(Serial.available()){
                S.println("<p>" + String(char(Serial.read())) + "</p><br>");
            }
            S.println("thets all");
            cl.stop();
        }
    }
    Код на передатчике:
    Код (Text):
    void setup(){
      Serial.begin(9600);
    }
     
    void loop(){
    Serial.println("1");
    delay(1000);
    Serial.println("0");
    delay(1000);
    }
     
  2. nailxx

    nailxx Официальный Нерд Администратор

    Удалось решить ли проблему?

    Передатчик подключен на IO Shield, питается от USB? Открыт ли для него Serial Monitor? Можете попробовать запитать его от батарейки, чтобы исключить внешнее влияне?
     
  3. Иван С

    Иван С Гик

    Проблема не решена( она точно в XBee, потому что я соединял контакты serial напрямую и всё было ОК.
    Питание от батарейки (XBee жрут их как волки)) без USB.
    У меня XBee/SD shield, а не IO.
     
  4. nailxx

    nailxx Официальный Нерд Администратор

    XBee/SD? Может Wireless SD? Переключатель стоит в режиме micro?
     
  5. Иван С

    Иван С Гик

    Так его проще называть)
    Переключатель в микро, и данные предаёт, но с кучей мусора:mad:
     
  6. Иван С

    Иван С Гик

    Кстати, я прошил на XBeeшки только PAN ID (не нашел как прошить id модулей и получателей), то есть они работают в режиме бродкаст и не думают что получает другой?
     
  7. nailxx

    nailxx Официальный Нерд Администратор

    Да, они броадкаст пока делают. Если честно, не могу понять где тут собака порылась. Давайте попробуем выяснить.

    Ход конём: снимите XBee с передающего устройства. А не продолжит ли сыпаться мусор?
    Какой прошивкой вы их прошили? AT или API command set?
     
  8. Иван С

    Иван С Гик

    Без передатчика мусор не идёт. На вике написано прошивать AT, я её и прошил.
     
  9. nailxx

    nailxx Официальный Нерд Администратор

    Возвращаемся к теме. У вас достаточно стабильный паттерн: ваша цифра, нечто, line-break, много нечто одинакого для каждого сообщения.

    Можете ли исследовать: что (сколько) возвращает Serial.available каждый раз, что за символы приходят после полезной нагрузки — попробуйте вывести их, не преобразуй в char, как есть, то есть byte, чтобы появился ASCII-код.
     
  10. Иван С

    Иван С Гик

    ДА, ДА, ДА! Всё работает. По ходу дело было в том, что прошивка XBee работала на стандартной скорости, а ардуина на 9600 b/s. Перепрошил xbee с установкой на 9600 и заработало!:)
     
  11. nailxx

    nailxx Официальный Нерд Администратор

    Congrats!

    Но я таки не до конца понял суть замеса. Исходя из ваших сэмплов кода: и приёмник и передатчик работали на 9600. Вы, видимо, имеете в виду внутренний baud-rate XBee, так? Вы его в итоге установили через X-CTU?
     
  12. Иван С

    Иван С Гик

    Да, я говорю именно о внутреннем baud-rate xbeeшек. Ставил через x-ctu.
     
  13. nailxx

    nailxx Официальный Нерд Администратор

    :cool: Спасибо, что поделились опытом!