Я пытаюсь, чтобы моя плата Arduino UNO работала с BlueSmirf Gold (http://www.sparkfun.com/products/10268).
Я запрограммировал его, как описано в различных уроках (например, здесь: http://www.instructables.com/id/how-to-Control-arduino-by-bluetooth-from-PC-pock/)
Я установил скорость передачи 9600, как описано здесь: http://forum.sparkfun.com/viewtopic.php?p=94557
Мне удается подключиться к нему с помощью стандартного последовательного терминала Arduino, ZTerm и моего телефона (используя Amarino). В каждом случае загорается зеленый индикатор на модеме Bluetooth, поэтому пока он там не выглядит хорошо.
Основная проблема заключается в том, что мой модем, похоже, не в состоянии что-либо отправлять / получать (единственный раз, когда я получил какой-либо ответ, был, когда я установил скорость передачи данных 9600).
Например, у меня есть этот код (здесь он упрощен, но основная идея есть):
int out_pin = 2;
String readLine() {
char command[100];
int i = 0;
if(Serial.available()){
delay(100);
while( Serial.available() > 0 && i< 99) {
command[i++] = Serial.read();
}
command[i++]='\0';
Serial.flush();
}
Serial.print("command: ");
Serial.println(command);
return (String) command;
}
void menu() {
if (Serial.available() <= 0) {
return;
}
String command = readLine();
// Do thing based on the command
}
void setup() {
pinMode(out_pin, OUTPUT);
Serial.begin(9600);
}
void loop() {
menu();
}
По логике вещей, когда я отправляю что-то через терминал, я должен получить это обратно (что происходит при использовании последовательного порта USB).
Когда я подключаюсь к плате через Bluetooth, она просто молчит.
Я также попробовал этот кусок кода:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Spam ...");
}
Работает нормально при использовании последовательного порта USB, но я не получаю ничего при использовании Bluetooth для подключения к моей плате.
С обоими кодами я также пытался использовать инструмент монитора в Амарино для отправки сообщений на доску, но, похоже, он так и не получил.
Я пробовал разные вещи:
- нет доступного последовательного USB (я запитал плату Arduino через USB, но с помощью сетевого адаптера. Я попробую позже с батареей 9 В, но в данный момент у меня ее нет)
- не подключайте CTS-1 к RTS-0 в модеме (один учебник говорит, чтобы подключить их, а другой нет. Поэтому, как я сомневался, я попробовал оба решения).
Единственный раз, когда у меня было что-то похожее на общение, было с этой настройкой:
- Arduino - телефон подключен через Bluetooth
- Мониторинг Амарино был на
- Arduino - компьютер, подключенный через USB-порт
При загрузке нового кода на мою доску некоторые его части отображались в инструменте мониторинга на телефоне.
Это случилось один или два раза, и я не могу сейчас это воспроизвести.
Я почти уверен, что где-то сделал что-то не так (кажется, по крайней мере, это самое логичное объяснение), но мне также интересно, не может ли это быть проблемой с моделью Bluetooth (я имею в виду, даже образец учебники не работают).
Итак, вопросы:
- есть что-то, что я пропустил / забыл сделать, чтобы помочь мне решить
проблема?
- если нет: есть ли простой способ проверить, что мой модем Bluetooth
работает нормально?
Спасибо,
Винсент