Не получается запустить Bluetooth Shield от elecfreaks.com на Mega 2560

Dima-a
Offline
Зарегистрирован: 05.01.2013

Друзья, рад познакомиться с вами. Простите за глупие вопросы.

Никак не могу заставить рабтать Bluetooth Shield от elecfreaks.com на Mega 2560 

В AT режим войти получается, но как я не инициализировал AT командами модуль, таки ничего и не заработало. (команды брал отсюда http://www.elecfreaks.com/wiki/index.php?title=Bluetooth_Shield#Programm...)

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

Пробовал еще вот отсюда инициализацию, но тоже не помогло http://www.elecfreaks.com/829.html

После команды At+inq огонек на плате замигал часто, но тоже никакого результата :(

Что делать ? Выручайте :(

leshak
Offline
Зарегистрирован: 29.09.2011

Попробуйте запитать мегу от внешнего блока питания. Частенько всяким "радио" не хватает питания от USB. Особенно в моменты установки связи и т.п.

Если не поможет, то попробуйте учитывать что "телепаты в отпуске". То что очевидно вам - не видно другим.

Слишком многое можно понимать под "ничего не заработало". тут можно ответить только "значит что-то не так".

Как слали команды (скетч?), что в ответ приходит и т.п.  (только не забудте почитать прикрепленную ветку "Как вставлять код...").

Как вы его включили, на какой Serial или програмный Serial - не ведомо. Он же у вас, вроде джамперами конфигурится, как мы можем догадатся о том как вы их выставили?

Кстати в процессе выставляния джамперов, если используется SoftwareSerial в скетче, не забывайте что она имеет ограничение.

Смотрите на http://arduino.cc/en/Reference/SoftwareSerial на каких пинах может работать RX

Dima-a
Offline
Зарегистрирован: 05.01.2013

Спасибо за операьтивный ответ! Внешнего блока у меня к сожалению нету, до 9-го купить его видимо тоже будет негде.

Поставил модуль, перекинул провода как на схеме DOUT-RX1(D19) DIN-TX1(D18)

Загрузил скеч

 

/*********************************************************************
 **  Description:                                                    **
 **  This file is a sample code for your reference.                  **
 **                                                                  **
 **  Copyright (C) 2011 ElecFreaks Corp.                             **
 **  Created by ElecFreaks Robi.W /29 Sep 2011                      **
 **                                                                  **
 **  http://www.elecfreaks.com                                       **
 *********************************************************************/
void setup()
{
   Serial.begin(57600);
   Serial1.begin(38400);
 
}
 
void loop()
{
  int i = 0;
  char someChar[32] = {0};
  // when characters arrive over the serial port...
  if(Serial.available()) {
    Serial.print("------->  ");
    do{
      someChar[i++] = Serial.read();
      //As data trickles in from your serial port you are grabbing as much as you can, 
      //but then when it runs out (as it will after a few bytes because the processor 
      //is much faster than a 9600 baud device) you exit loop, which then restarts, 
      //and resets i to zero, and someChar to an empty array.So please be sure to keep this delay 
      delay(3);
    }while (Serial.available() > 0);
    Serial1.println(someChar);
    Serial.println(someChar);
  }
 
  while(Serial1.available())
      Serial.print((char)Serial1.read()); 
}

 

 

Сегодня сутра наконец такой последовательностью AT команд (через терминал com порта) удалось запустить модуль:

 

at+role
at+init
at+iac=9e8b33
at+class=0
at+inqm=1,9,48
at+inq

 

После чего наконец высыпались адреса видимых устройств и сработали At+pair= at+fsad= и at+link=

Телефон и компьютер "сопряглись" спросив код. 

Но дальше опять все грустно, терминал в телефоне не может соедениться с устройством. Ковыряю дальше. 

leshak
Offline
Зарегистрирован: 29.09.2011

Я бы порекомендовал вам "пытать" его AT-командами. Более упрощенным скетчек. Который тупо пересылает все "один в один" между двумя Serial не добавляет отсебятины.

То есть открыли сериал монторы, шлете команды, видите ответы в "чистом виде". Как-будто просто подключили модуль к компу.

void setup()  
{
  Serial.begin(38400);
  Serial1.begin(38400);
}

void loop() 
{
  if (Serial1.available()) Serial.write(Serial1.read()); // из модуля все пересылаем в комп
  if (Serial.available()) Serial1.write(Serial.read()); // из компа - в модуль
}

 

 

Dima-a
Offline
Зарегистрирован: 05.01.2013

Ваш скеч почему-то не заработал.

У меня пока следующий прогресс: Получилось подключить к блютусу компьютреа, но к телефону он упорно не хочется подсоеденияться. (пробовал к SE и Samsung)

 

------->  AT+LINK=BA20,A5,DСF3D9
FAIL
+INQ:BA20:A5:DСF3D9,5A020F,FFD0
+INQ:BA20:A5:DСF3D9,5A020F,FFD1
+INQ:BA20:A5:DСF3D9,5A020F,FFD0
+INQ:BA20:A5:DСF3D9,5A020F,FFD0
+INQ:BA20:A5:DСF3D9,5A020F,FFD1
+INQ:BA20:A5:DСF3D9,5A020F,FFD1
+INQ:BA20:A5:DСF3D9,5A020F,FFD1
+INQ:BA20:A5:DСF3D9,5A020F,FFD1
OK
 
И никакого результата. С компьютером тоже команда прошла раза с 3-го, тоже писал сначала фейл, но в итоге заработало, а тут никак.