我使用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);
}
答案 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);
}
}