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
  .WAV und Bluetooth BluPxl 13 264 19.04.2018 20:08
Letzter Beitrag: Tommy56
  MP3 VS1053 shield Geeros#18 11 287 15.04.2018 13:37
Letzter Beitrag: hotsystems
  AnalogRead zwischendurch falsch Mathias 5 297 18.03.2018 17:07
Letzter Beitrag: Mathias
  Arduino Mega mit Shield und 7" Touch Tudorf 10 504 25.02.2018 14:30
Letzter Beitrag: Tommy56
  Daten vom Arduino Mega an Nextion Diskusguppy 4 318 25.02.2018 13:29
Letzter Beitrag: hotsystems
  [gelöst] Micro SD-Card Shield an ISP? torsten_156 1 202 08.02.2018 22:24
Letzter Beitrag: Tommy56
  Bluetooth: mit HC-08 kein pairing möglich? LoroLoco 0 365 09.01.2018 15:15
Letzter Beitrag: LoroLoco
  Motor Shield V3 Analog Digital Converter Nextero 5 462 19.12.2017 10:54
Letzter Beitrag: Nextero
Information DHT 22 Daten per 433 Mhz senden Niklas 5 745 10.12.2017 17:15
Letzter Beitrag: hotsystems
Question HC-05 zu Android Bluetooth Geschwindigkeit Test Kai H. 2 1.121 04.12.2017 16:21
Letzter Beitrag: Tommy56

Gehe zu:


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