SoftwareSerial蓝牙写空字符串?

时间:2016-07-28 18:50:03

标签: arduino

我使用arduino和hc-06与android进行通信。我试图发送int值,但是android说它接收到空字符串。这是我的代码:

#include <SoftwareSerial.h>
#define rxPin 11                     // define SoftwareSerial rx data pin  
#define txPin 10                     // define SoftwareSerial tx data pin  

#define trigPin 5
#define echoPin 6
SoftwareSerial blueTooth(rxPin, txPin); 

void setup() {
  Serial.begin (9600);
  blueTooth.begin(9600); 
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

}

void loop() {
  int duration, distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29;



   Serial.println(distance);                     
   blueTooth.print ((int)(Serial.read()));          




  delay(200);
}

2 个答案:

答案 0 :(得分:2)

我认为你想要的是

blueTooth.print(distance);

答案 1 :(得分:0)

首先建议,尝试切换rx和tx引脚。我知道我搞砸了一堆。如果您不知道,hc-06中的rx应定义为软件序列中的tx引脚,反之亦然。 Michael Yu的评论肯定比你最初的评论更受欢迎。我可以建议的另一件事是发布接收和解析传入数据的android代码。

我的arduino字符串发送功能:

void sendStr(String str){
  char b[2];
  for(int i = 0; i < str.length(); i++){
    String dataSend = str.substring(i,i+1);
    dataSend.toCharArray(b,2);
    bluetooth.print(b);
    delay(1);
  }
}