Data not correctly using Bluetooth

Using Bluetooth (the problem) 1

When using Bluetooth, the data is turned off for a period of time(data freezing), and the data is output randomly (note that the same code is used)

Using serial Port (it's work)

//Pin connected to ST_CP of 74HC595
int latchPin = 6;
//Pin connected to SH_CP of 74HC595
int clockPin = 13;
////Pin connected to DS of 74HC595
int dataPin = 11;
byte FirstByte;
int val;
byte serialInArray[1]; // array for storing 3 bytes as they arrive from processing
int serialCount = 0; // for counting the number of bytes received


void setup() {
  //Start Serial for debuging purposes	
  Serial.begin(9600);
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);

}

void loop() {
  
   if (Serial.available() > 0){
       serialInArray[serialCount] = Serial.read(); // read a byte sent by processing
        serialCount++;  // increment number of bytes received

    if (serialCount > 0 ) {  // when 3 bytes received
	FirstByte = serialInArray[0]; // get value for Red LEDs
	
Serial.print(FirstByte);

Serial.println("");
  //count up routine
     digitalWrite(latchPin, 0);
    //count up on GREEN LEDs
    
    //count down on RED LEDs
    shiftOut(dataPin, clockPin, FirstByte); 
             
     
   
    //return the latch pin high to signal chip that it 
    //no longer needs to listen for information
    digitalWrite(latchPin, 1);
 serialCount = 0;
 delay(20);
   }
}
}
void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
  // This shifts 8 bits out MSB first, 
  //on the rising edge of the clock,
  //clock idles low

//internal function setup
  int i=0;
  int pinState;
  pinMode(myClockPin, OUTPUT);
  pinMode(myDataPin, OUTPUT);

 //clear everything out just in case to
 //prepare shift register for bit shifting
  digitalWrite(myDataPin, 0);
  digitalWrite(myClockPin, 0);

  //for each bit in the byte myDataOut�
  //NOTICE THAT WE ARE COUNTING DOWN in our for loop
  //This means that %00000001 or "1" will go through such
  //that it will be pin Q0 that lights. 
  for (i=1; i>=0; i--)  {
    digitalWrite(myClockPin, 0);

    //if the value passed to myDataOut and a bitmask result 
    // true then... so if we are at i=6 and our value is
    // %11010100 it would the code compares it to %01000000 
    // and proceeds to set pinState to 1.
    if ( myDataOut & (1<<i) ) {
      pinState= 1;
    }
    else {	
      pinState= 0;
    }

    //Sets the pin to HIGH or LOW depending on pinState
    digitalWrite(myDataPin, pinState);
    //register shifts bits on upstroke of clock pin  
    digitalWrite(myClockPin, 1);
    //zero the data pin after shift to prevent bleed through
    digitalWrite(myDataPin, 0);
  }

  //stop shifting
  digitalWrite(myClockPin, 0);
}

image

Are you using two arduino's both running the posted code? How can that result in something being transmitted at all?

One Arduino add the lower wiring diagramme to the upper one

Not understood.. Everything is connected to one arduino or what? What is transmitting to the arduino? Using the same serial connection for both bluetooth and serial debugging?

Yes...Previously I used serial port to send data from vb 6 to arduino it works, problem when developing using basic4android to send data to arduino via bluetooth incorrect data at character (À,à)

The data in the serial monitor comes in sets of 4 lines. One line is the characters binary value, then the hexadecimal value, then the decimal value and lastly the character itself. One of the sets is:

BIN  : 01110000
HEX  : 70
DEC  : 112
CHAR : p

The serial monitor is AFAIK unable to print extended ASCII characters and if such a character is found it will be substituted with a similar character. Decimal value 192 is "α" which becomes "à" and so on.

If you look only at the binary values, there is a pattern because each new value is shiftet one to the right - or multiplied by 2:

00000111
00001110
00011100
00111000
01110000
...

Yes, but it does not arrive to the Arduino, this is shown in the first picture (((serial motion))), marked in red, which is the problem

How can you receive anything without a connection? You are printing to serial monitor with a serial connection where a bluetooth tranciever is also connected, so what you print to serial monitor is also transmitted via bluetooth. Without knowing how the receiving end of the bluetooth connection handles incoming data it is hard to guess what causes the problem.

I depend on the translation...maybe some of the words are wrong...I mean (transfer from to)

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.