无法将数据从Arduino蓝牙板传输到PC

时间:2013-11-16 15:32:50

标签: bluetooth arduino pc

我正在尝试将数据从我的PC传输到Arduino板。我能够看到Arduino使用Tera Term向PC发送的内容,但是我没有从PC到Arduino的任何数据。我已经尝试更换引脚和所有东西(甚至测试另一个蓝牙板)。我正在使用Arduino Mega 2560。

以下是代码:

#include <AFMotor.h>
#include <NewPing.h>
#include <SoftwareSerial.h>

#define LED 52

#define RxD 17 
#define TxD 14 

SoftwareSerial blueToothSerial(RxD,TxD);

void setup() {
  blueToothSerial.begin(9600);
  blueToothSerial.println("Bluetooth On please press 1 or 0 blink LED ...");
  pinMode(LED, OUTPUT);
  pinMode(RxD, INPUT);
  pinMode(TxD, OUTPUT);
}

byte BluetoothData;
void loop()
{
  if (blueToothSerial.available())
  {
    BluetoothData = blueToothSerial.read();
    if(BluetoothData=='1'){ // if number 1 pressed...
      digitalWrite(LED, 1);
      blueToothSerial.println("LED  On D13 ON ! ");
    }
    if (BluetoothData=='0'){ // if number 0 pressed...
      digitalWrite(LED, 0);
      blueToothSerial.println("LED  On D13 Off ! ");
    }
  }
  delay(100); // prepare for next data...
}

1 个答案:

答案 0 :(得分:0)

根据SoftwareSerial库的此文档,Arduino Mega 2560上的引脚17不支持更改中断,因此它不适用于您的Blutooth设备。而是选择文档中列出的Rx引脚(例如0,11,12,13,14,15)。

同样,对于Arduino接收蓝牙数据,应使用SoftwareSerial listen方法。尝试修改代码,以便它使用此方法,例如

void loop()
{
  blueToothSerial.listen();
  if (blueToothSerial.available() > 0)
  {
    BluetoothData = blueToothSerial.read();
    if(BluetoothData=='1'){   // if number 1 pressed ....
      digitalWrite(LED, 1);
      blueToothSerial.println("LED  On D13 ON ! ");
    }
    if (BluetoothData=='0'){// if number 0 pressed ....
      digitalWrite(LED, 0);
      blueToothSerial.println("LED  On D13 Off ! ");
    }
  }
}

请注意,当使用listen()时,我认为不需要调用delay()。