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
  Bluetooth vom Pc zum Arduino mit HC-06 oder HC-05 ? comfan 0 281 15.09.2017 08:25
Letzter Beitrag: comfan
  Kommunikation über das WiFi-Shield Flap 13 1.117 12.09.2017 22:12
Letzter Beitrag: Flap
  Daten per PHP an MYSQL übergeben ArduM0 4 567 09.08.2017 19:52
Letzter Beitrag: Bitklopfer
  Daten von Multicast Adresse empfangen Stromsparer 4 347 18.07.2017 12:59
Letzter Beitrag: Stromsparer
  Anzeige von Daten FreDicnc 9 646 24.06.2017 11:09
Letzter Beitrag: FreDicnc
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 915 29.04.2017 14:29
Letzter Beitrag: hotsystems
  Programmierung von PCa9685 Shield im Bezug auf Arduinos Crazydiver 5 359 10.04.2017 12:20
Letzter Beitrag: hotsystems
  Can-Bus Shield ok, aber keine Daten Clubsport 54 4.294 02.04.2017 22:28
Letzter Beitrag: Bitklopfer
  Keypad Shield luj1990 11 567 29.03.2017 21:15
Letzter Beitrag: Tommy56
  Daten auf der I2C Schnittstelle Franz54 2 328 15.03.2017 21:57
Letzter Beitrag: Franz54

Gehe zu:


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