INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Bluetooth Shield ließt Daten falsch ein
19.12.2013, 18:12
Beitrag #1
Bluetooth Shield ließt Daten falsch ein
Hallo Leute!! Smile

Ich habe einen Arduino Uno mit einem Bluetooth Shield mit einem HC- 05 Bluetooth Modul.
Dazu habe ich mir eine kleine Android- App geschrieben, welche sich problemlos mit dem Shield verbindet und ihm auch Daten senden kann.

Problem: Die Daten die ich am Arduino empfange sind nicht die gleichen, wie die, die ich vom App aus sende.

Die App sendet eine char Variable mit dem Wert '1'(--> LED ein) und '0'(--> LED aus).
Aus einer '1' wird jedoch ein 'x' und bei einer '0' empfängt der Arduino nichts. Huh


Code:
#include <SoftwareSerial.h>

  int rx_pin = 2;    
  int tx_pin = 3;    

SoftwareSerial Bt(rx_pin,tx_pin);

  void setup(){
   Serial.begin(9600);
   pinMode(rx_pin, INPUT);  
   pinMode(tx_pin, OUTPUT);
  
   bluetoothInitiate();
   }

void bluetoothInitiate(){
   Bt.begin(38400);
   Bt.print("\r\n+STOAUT=1\r\n");        
   delay(2000);                          
   Bt.flush();
}


  char buffer;
  void loop(){
     int LED = 5;
    
     if(Bt.available()){    
        buffer = Bt.read();      
     }
     else{
       Serial.println("no data available");
     }
     delay(1000);    
    
     if(buffer == '1'){
       Serial.println("buffer == '1'");
       digitalWrite(LED, HIGH);
       delay(1000);
     }
    
     if(buffer == '0'){
       Serial.println("buffer == '0'");
       digitalWrite(LED, LOW);
       delay(1000);
     }
    
     if(buffer != '1' && buffer != '0'){
       Serial.print("Buffer: ");
       Serial.println(buffer);
     }
}

Danke im Voraus für Eure Hilfe!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.12.2013, 19:31
Beitrag #2
RE: Bluetooth Shield ließt Daten falsch ein
Hallo mck7000,

Zitat:Die App sendet eine char Variable mit dem Wert '1'(--> LED ein) und '0'(--> LED aus).
Ich denke du schickst eher "+STOAUT=1" aus der App rausHuh
Was zeigt denn der Monitor an wenn du mal dahin umleitest?
Mit
Code:
char buffer;
legst du einen Puffer für ein Zeichen an, schiebst aber mehrere Zeichen rein.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.12.2013, 17:23
Beitrag #3
RE: Bluetooth Shield ließt Daten falsch ein
Hallo Ricardo,

danke für deine schnelle Antwort! Smile

Ich habe nun den Code geändert:

Code:
void loop(){
     int LED = 5;
     int i;  // just for counting
     int numbOfBytes;  // shows length of array
     byte data[64];
    
     if(Bt.available()){    
        
        delay(2);
        for(i = 0; Bt.available();i++){
           data[i] = (byte)Bt.read();
           numbOfBytes++;    
       }
       Serial.println("Array:");
       int n = 0;
       for(n = 0; n != numbOfBytes; n++){
         Serial.print(data[n]);
       }
     }
     else{
       Serial.println("no data available");
     }
     delay(1000);


Nun schicke ich "+STOAUT=1" aus der App, und empfange auf meinem Arduino:
2481203012025412812030128120301351281203001203013512030128120301352481281200128

Ich habe keine Ahnung was ich mit diesen Daten anfangen soll? Huh


Grüße Christoph
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.12.2013, 18:52
Beitrag #4
RE: Bluetooth Shield ließt Daten falsch ein
Hallo Christoph,

ich glaube du hast gründlich mißverstanden was ich zu deinem 1. Post meinte
Was ich sagen wollte, ist:
- dass du mit
Code:
Bt.print("\r\n+STOAUT=1\r\n");
eben nicht eine 1 oder 0 sondern "+STOAUT=1" aus dem BT-Modul sendest.
- danach möchtest du aber nur auf 0 oder 1 prüfen. Das geht dann nicht.

Um die Sache abzukürzen hier mal ein Link zu einem Projekt:
http://www.instructables.com/id/Arduino-.../?ALLSTEPS
Der Arduino-code zu deinem Problem steht ua. in Step3. Hier wird auch sichtbar, dass grundsätzlich mit char und nicht byte gearbeitet wird.

Hoffe es hilft ein bischen weiter!

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.12.2013, 19:54
Beitrag #5
RE: Bluetooth Shield ließt Daten falsch ein
Hallo Ricardo,


Da hast du recht, das habe ich missverstanden.

Allerdings möchte ich nichts vom BT Modul an meine Android App senden, sondern von meiner App auf das BT Modul. --> Ich möchte mit meiner App einige LEDs ein- und ausschalten(natürlich
nur vorübergehend Big Grin ).

Die App sendet eine '1' oder '0' und am BT Modul empfange ich nur '1200128' bei einer 1 und '0128' bei einer 0.

Ich habe schon recherchiert und konnte leider keine Lösung zu meinem Problem finden. In den meisten Tutorials und Examples ist das Einlesen von Daten über Bluetooth von einer App oder PC aus gleich oder ähnlich gelöst.

Ich habe auch schon mit anderen Datentypen(beim Versenden in der App, als auch beim Einlesen am Arduino) versucht, hat leider alles nichts geholfen Sad

Grüße Christoph
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Daten Visualisieren MeisterQ 12 576 01.12.2016 19:36
Letzter Beitrag: MeisterQ
  CP2102 und USB Host Shield ?? DL1AKP 0 51 01.12.2016 08:55
Letzter Beitrag: DL1AKP
  Data Logger Daten auf SD Card schreiben Crichton 12 312 22.11.2016 18:32
Letzter Beitrag: Crichton
  Arduino UNO und Ethernet Shield 2 POE und Fritzbox 3272 tr3 2 162 19.11.2016 10:46
Letzter Beitrag: tr3
  Kommunikation über das WiFi-Shield Flap 3 235 07.11.2016 20:20
Letzter Beitrag: hotsystems
  I2C Daten übertragen Gandalf 3 217 04.11.2016 13:20
Letzter Beitrag: hotsystems
  Menü über Bluetooth Eingabe abwarten anwo 4 504 18.10.2016 08:59
Letzter Beitrag: Lolliball
  Bluetooth HC 05 Sascha 2 1.241 18.10.2016 08:57
Letzter Beitrag: Lolliball
  Daten über USB verarbeiten Felix91 10 330 12.10.2016 13:00
Letzter Beitrag: Tommy56
  Bluetooth refresh der Seite kaimaik 7 220 01.10.2016 22:05
Letzter Beitrag: kaimaik

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste