2016-07-28 8 views
0

Ich benutze ein Arduino und ein HC-06, um mit einem Android zu kommunizieren. Ich versuche Int-Werte zu senden, aber der Android sagt, dass er leere Strings empfängt. Dies ist mein Code:SoftwareSerial Bluetooth leere Strings schreiben?

#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); 
} 

Antwort

2

Ich denke, was Sie wollen, ist

blueTooth.print(distance); 
+0

leider ist es nicht –

0

Erster Vorschlag, versuchen Sie die RX- und TX-Pins umzuschalten. Ich weiß, dass ich das schon vermasselt habe. Wenn Sie nicht wüssten, sollte der RX aus dem hc-06 als TX-Pin in der Software-Serie definiert werden und umgekehrt. Michael Yus Kommentar ist definitiv besser als das, was Sie ursprünglich hatten. Die andere Sache, die ich vorschlagen kann, ist das Veröffentlichen des Android-Codes, der die eingehenden Daten empfängt und analysiert.

Meine String-Funktion für Arduino Senden:

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); 
    } 
} 
+0

arbeiten Haha ja, die Tx und Rx-Pins mit mir verwirren. Es stellt sich heraus, dass nichts zum Andriod gesendet wird, es sagt nur, dass es eine leere Zeichenfolge ist, weil es nichts empfängt. Ich benutze MIT App-Erfinder, um die App zu machen, der Code kann hier gefunden werden: https://gyazo.com/80febfd8461814e85a1e134b5ebbf720. Die Bedingung bytesavailabletorecieve> 0 gibt false zurück. Es hat gut funktioniert mit dem Senden von Daten an das Arduino, was mich denken lässt, etwas mit dem Arduino funktioniert nicht. –

+0

So haben Sie überprüft, dass das Arduino Daten vom Telefon über Bluetooth empfangen kann? –

+0

Ja, ich kann eine LED aus dem Andriod einschalten –