Bluetooth-соединение между Android и Arduino с использованием Processing

Я пытаюсь установить двустороннюю связь Bluetooth между Android и Arduino с помощью Processing for Android. Я успешно перенес данные с Android на Arduino с помощью serial.begin(9600). И я успешно перенес данные с Arduino на Android с помощью SoftwareSerial в программе Arduino и bluetooth.begin(9600) вместо serial.begin(9600).

Однако при попытке передачи данных с Android на Arduino с помощью команд bluetooth.x это не работает. Вот код Arduino:

  if (bluetooth.available()) // Wait until a character is received
  {
    char val = (char)bluetooth.read();
    //Serial.println(val);

    switch(val) // Perform an action depending on the command
    {
      case 'w'://turn the light on when a 'w' is received
      on();
      break;

      case 'q'://turn the light off when a 'q' is received
      off();
      break;

      //default://otherwise remain in the previous state
      //idle();
      break;
    }
  }

Функции on() и off() включают и выключают светодиод на Arduino. Как уже упоминалось, это работает, когда я использую команды serial.x, а не команды bluetooth.x. Кроме того, я использую Ketai для обработки для Android. Я использую Processing 2.0.1, Arduino 1.0.5, Android 2.3.6.

Вот соответствующий начальный код:

#include <SoftwareSerial.h>
SoftwareSerial bluetooth(0,1);  //TX 0, RX 1

1 ответ

Решение

Еще немного кода будет принята с благодарностью...

Вы включили что-то подобное?

#include <SoftwareSerial.h>

int bluetoothTx = 2;
int bluetoothRx = 3;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

РЕДАКТИРОВАТЬ:

Это похоже на то, что я использую. Сначала вы загружаете код без проводного соединения Bluetooth, а затем подключаете Bluetooth. Тогда вы можете просто использовать Serial.doSomething() потому что вы используете те же контакты, вам не нужно #include <SoftwareSerial.h>, Но вы должны убедиться, что скорость передачи данных одинакова.

Вы можете попробовать этот код, чтобы убедиться, что он работает нормально:

void setup(){

    Serial.begin(9600); // or wathever your bluetooth module baudrate is

}

void loop(){

    Serial.println("Hello World!"); // to make sure it works.
    delay(500);

}

Вы также должны убедиться, что вы Arduino подключен к компьютеру через Bluetooth.

Другие вопросы по тегам