Bluetooth Verbindung stellt sich "taub"

Hallo,

ich habe mit meinem Arduino UNO und der RGB-Matrix samt Colorduino eine kleine Lampe gebaut. Diese lässt sich auch schon
brav steuern. Momentan nehme ich nur die Buchstaben r,g,b und x (für aus) um die Lampe per Seriellem Monitor zu steuern.

Jetzt kommts: Natürlich möchte ich das nun per Bluetooth. Dazu habe ich ein BT Shield 2.2 (von ITEAD) dazwischen gesetzt
und versuche nun über eine Android-App Daten zu senden. Die App sendet alles ordnungsgemäß (mit seriellem Monitor am Rechner
getestet), nur der Arduinoklotz will nicht. Sende ich über den angeschlossenen PC läufts problemlos

Hat hier jemand Erfahrungen wie ich weiter kommen könnte? Oder paar Tipps wie man die am Arduino ankommenden Daten gut/besser
überwacht/debuggen kann?

Vielen Dank schon mal.

aha Hassliebe? a la Arduinoklotz? :wink: :wink: :wink:

An welche Brücken am UART Multiplexer des BT Shield 2.2 (von ITEAD) hast Du gesetzt (welche pins verwendest Du für die serielle Übertragung der Daten zwischen BT und Arduino?
Gibst Du uns bitte den Sketch?
Grüße Uwe

Huch das ging aber fix. Hatte gar nicht so schnell mit Feedback gerechnet.

Hier der Sketch:

#include <Colorduino.h>


/********************************************************
Name: ColorFill
Function: Fill the frame with a color
Parameter:R: the value of RED.   Range:RED 0~255
          G: the value of GREEN. Range:RED 0~255
          B: the value of BLUE.  Range:RED 0~255
********************************************************/
void ColorFill(unsigned char R,unsigned char G,unsigned char B)
{
  PixelRGB *p = Colorduino.GetPixel(0,0);
  for (unsigned char y=0;y<ColorduinoScreenWidth;y++) {
    for(unsigned char x=0;x<ColorduinoScreenHeight;x++) {
      p->r = R;
      p->g = G;
      p->b = B;
      p++;
    }
  }
  
  Colorduino.FlipPage();
}



String inData;
void setup()
{
 Serial.begin(57600);
 Serial.println("los gehts");
 
 Colorduino.Init();
  // compensate for relative intensity differences in R/G/B brightness
  // array of 6-bit base values for RGB (0~63)
  // whiteBalVal[0]=red
  // whiteBalVal[1]=green
  // whiteBalVal[2]=blue
  unsigned char whiteBalVal[3] = {36,63,63}; // for LEDSEE 6x6cm round matrix
  Colorduino.SetWhiteBal(whiteBalVal);
 
 
}
void loop(){
inData="";
     if (Serial.available() > 0) {
         int h=Serial.available();    
        // if you are getting escape -characters try h--; here
     
for (int i=0;i<h;i++){
             inData += (char)Serial.read();
         }
    // if you are getting escape -characters try Serial.read(); here
    }
    //print it out
    if(inData != "") {
      Serial.println("inData: " + inData);
     
     if(inData == "r") 
       ColorFill(255,0,0);
    else if(inData == "g") 
       ColorFill(0, 255,0);     
    else if(inData == "b") 
       ColorFill(0, 0, 255); 
    else if(inData == "w") 
       ColorFill(255, 255, 255);            
    else if(inData == "x") 
       ColorFill(0, 0, 0);        
    }
}

Zum BT Shield - hier habe ich glaub ich schon jede Möglichkeit ausprobiert die es gibt...

Im Moment ist folgendes eingestellt - DAT <- CMD

TX 0 0 1 0 0 0
D0 0 0 1 0 1 0
RX 0 0 0 0 1 0

Wie gesagt, über PC, Serieller Monitor reagierts sofort. Bei "r" wirds rot etc.
Und bei der Android-App gibts auch keine Probleme mit der Verbindung oder Rückmeldungen auf
Probleme

Ich hoffe das es nur ein Anfängerfehler ist :wink:

Vielen Dank für die Hilfe

Wenn ich den UART Multiplexer richtig interpretiere hast Du
TX auf Pin 2 und RX auf pin 4 gesetzt. (oder ist es TX auf Pin 3 und RX auf Pin 1?)
Du verwendest im Sketch aber keine Software emulierte serielle Schnittselle sondern liest von der Hardwareschnittstelle (Pin 0).

Grüße Uwe

Danke für den Hinweis.

ja die pins sind auf 2 und 4
SoftwareSerial hab ich nun drin.

Das heißt dann, das ich die Pins im Code auf

SoftwareSerial mySerial(5, 6);

stellen muss oder?

Du verhinderst effektiv, daß der Sketch funktioniert. :wink: :wink:

Wieso die Pins 5 und 6?

SoftwareSerial mySerial(RXpin, TXpin);

also

SoftwareSerial mySerial(2 , 4);

Grüße Uwe

Danke jetzt leuchten die RGBs wenn ich einen Knopf drücke. Es kommt also
doch noch was an. Ich werd nun mal versuchen andere Farben zu übermitteln.

Gut, dann war also nicht der Arduino Schuld?
Grüße Uwe

nein natürlich saß das problem davor....

ich hab jetzt noch die unschönheit das die übermittelten strings zerhackt ankommen.
aber das ist doch sicher nur eine frage der korrekten baud-einstellung (oder?).

bis hier hin hast du mir aber schon super helfen können. vielen dank.