IO Expansion Shield For Arduino(V5)
- Войдите на сайт для отправки комментариев
Сб, 15/09/2012 - 18:28
Здравствуйте. Возникла проблема при работе с этим шилдом и xbee s2(XBP24BZ7WITB003). А именно не происходит передача данных с ардуино(шилд+xbee) на пк(usb-adapter + xbee). Модули связи настроены правильно - проверил. Данные отправляются и принимаются обоими модулями корректно.
На вики этого шилда нашел вот это:
Для приема.
int EN = 2; //RS485 has a enable/disable pin to transmit or receive data. Arduino Digital Pin 2 = Rx/Tx 'Enable'; High to Transmit, Low to Receive void setup() { pinMode(EN, OUTPUT); Serial.begin(19200); } void loop() { // send data digitalWrite(EN, HIGH);//Enable data transmit Serial.print('A'); delay(1000); }
Для передачи.
int ledPin = 13; int EN = 2; int val; void setup() { pinMode(ledPin, OUTPUT); pinMode(EN, OUTPUT); Serial.begin(19200); } void loop() { // receive data digitalWrite(EN, LOW);//Enable Receiving Data val = Serial.read(); if (-1 != val) { if ('A' == val) { digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); delay(500); } } }
Пробовал эти примеры с разной комбинацией джампера. Ничего.
Что подскажите?
Для начала разберитесь что такое RS485 и по какому интерфейсу работает xbeе, потому как вы привели пример кода никак не связанного с xbee.
Затем почитайте как правильно прошивать и настраивать xbee. (воспользуйтесь поиском по форуму).
И только после этого найдите здесь же на форуме примеры передачи данных через xbee.
Интересно вот что:
как вы это проверяли?
Сначала прошил модули соответствующим образом с помощью x-ctu. Потом взял два usb адаптера и проверил c помощью той же x-ctu. Также я проверял другим методом. На ПК был usb адаптер, а на ардуино вот таким образом(см. фото к моему посту) подключил xbee. Тоже все работало.
Второй метод подходит идеально, но для него нужно докупать usb адаптеры. А мне хочется воспользоваться готовым разъемом на шилде, который должне работать.
К сожалению на схеме этого шилда я не смог найти перемычек и следовательно не могу сказать что они делают, но судя по схеме если у вас все работало при подключении хВее как на фото, то должно работать и при воткнутом хВее в шилд.
У меня тоже самое на китайском шилде. В моем случае распиновка была не такая.
А по-подробнее? какая не такая?
Я ставил как на картинке для второго метода(APC). Левое положение для RS-485. Как они могут влиять на передачу по serial соединению...
Я знаю, что при передачи сигнала xbee модуль использует 0(Rx) для приема и 1(Tx) для передачи, то есть перекрывает проводное serial соединение.
Я думаю, и в моем случае такая же проблема. Вы перепаивали пины?
Или я вас не так понял?
У меня похожая на эту:
http://www.ebay.com/itm/DF-ROBOT-Mega-IO-Expansion-Shield-V2-1-For-Ardui...
Только одно гнездо для xbee.. тестером проверял что куда, пины которые должны из Xbee гнезда в RX TX идти, не идут. Дальше не разбирался.
Всем спасибо.
Ребят, возился с той же проблемой.
Эти красноглазые индейцы из адафруйт поставили на ноге DOUT (вывод 3 ) у Xbee 2 резистора.
Один от неё на землю - 15к
второй от неё на Jumpers 10к.
Соответственно коммуникация через такое сопротивление не работает.
Выход - выпаиваем и замыкаем накоротко резистор 10к.
Джамперы ставим 2 штуки - возле синего разъема (на 4 пина) со стороны где написано APC.
В коде никакие ноги включать не надо.
У меня вроде бы заработало.
Для того чтобы X-CTU увидел X-bee И позволил ее прошить, те же самые джамперы, что я писал выше, снимаем, и вместо них ставим перемычки крест-накрест. таким образом получаем соединение TX (xBee) - TX (Ardu), RX (xBee) - RX (Ardu).
Программирование xBee возможно при снятом процессоре. При зажатом RESET не работает.
Спасибо, попробую.
Приветствую, Шуруповёрт. Только сейчас добрался до железа.
А не могли бы Вы сделать скриншот с пометкой того самого резистора, который надо выпаять?
Ещё вы говорите, что на ноге DOUT(вывод 3) 2 резистора, а на схеме это DIN/CONFIG. Как понимать?
На Arduino так и не нашёл пока желаемый резистор.
Как его поаккуратнее выпаять стандартным паяльником... Вы как выпаивали, если не секрет?