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 verzögert
01.01.2015, 18:47
Beitrag #1
Bluetooth verzögert
Hallo

wünsche euch allen ein frohes neues Jahr!
Habe folgendes Problem:

Habe mir ein Bluetooth Modul HC-06 besorgt so weit so gut ich kann problemlos Verbinden und auch mein Fahrzeug damit steuern doch sobald ich die Sensorik dazu nehmen will werde die ankommenden befehle mit einer Verzögerung von ca 4 -5 sek. erst ausgeführt Wieso?

Woran liegt das ?

Ich hoffe Ihr könnt mir weiterhelfen.

Mein Code:
Code:
/*
  Front Motor (Steering) => Channel A
Back Motor => Channel B

Since the motor shield hijacks 6 pins for the motors'
control, they are declared in the MotorShieldR3 library.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <MotorShieldR3.h>
MotorShieldR3 yellowCar;
#define pinfrontLights    7    //Pin that activates the Front lights.
#define pinbackLights     4    //Pin that activates the Back lights.  
char command = 'S';
int velocity = 0;  
#define CMPS10Addr  0x60 // Addresse des CMPS10

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address
const byte TRIGGER1 = 23;
const byte TRIGGER2 = 25;
const byte TRIGGER3 = 27;

const byte ECHO1 = 22;
const byte ECHO2 = 24;
const byte ECHO3 = 26;

void setup()
{      
  
  Serial.begin(9600);  
  Serial1.begin(9600);  //Set the baud rate to that of your Bluetooth module.
  pinMode(pinfrontLights , OUTPUT);
  pinMode(pinbackLights , OUTPUT);
  lcd.begin(16,2);
  Wire.begin(); // Connect to I2C  

  pinMode(TRIGGER1, OUTPUT);
  pinMode(ECHO1, INPUT);
  digitalWrite(TRIGGER1, LOW);
  delayMicroseconds(2);
  pinMode(TRIGGER2, OUTPUT);
  pinMode(ECHO2, INPUT);
  digitalWrite(TRIGGER2, LOW);
  delayMicroseconds(2);
  pinMode(TRIGGER3, OUTPUT);
  pinMode(ECHO3, INPUT);
  digitalWrite(TRIGGER3, LOW);
  delayMicroseconds(2);// TRIGGER muss mindestens 2µs LOW sein


}



void loop(){
    
  long laufzeit1i, laufzeitre, laufzeitmitt;
  unsigned int entfernungli, entfernungre, entfernungmitt;
  
  while(true) {
    //Impuls Sensor 1
    digitalWrite(TRIGGER1, HIGH);
    delayMicroseconds(50);
    digitalWrite(TRIGGER1, LOW);

    // Messen
    laufzeit1i = pulseIn(ECHO1, HIGH);

    delay (10);
    entfernungli = (double) laufzeit1i / (2.9 * 2.0);
    Serial.print("Entfernung zum Objekt links: ");
    Serial.print(entfernungli);
    Serial.println(" mm");    
    
    // Impuls auslösen Sensor 2
    digitalWrite(TRIGGER2, HIGH);
    delayMicroseconds(50);
    digitalWrite(TRIGGER2, LOW);

    // Messen 2
    laufzeitre = pulseIn(ECHO2, HIGH);

    delay (10);
    entfernungre = (double) laufzeitre / (2.9 * 2.0);
    Serial.print("Entfernung zum Objekt rechts: ");
    Serial.print(entfernungre);
    Serial.println(" mm");
    
    //Impuls auslösen Sensor 3
    digitalWrite(TRIGGER3, HIGH);
    delayMicroseconds(50);
    digitalWrite(TRIGGER3, LOW);

    // Messen 3
    laufzeitmitt = pulseIn(ECHO3, HIGH);
    delay (10);
    entfernungmitt = (double) laufzeitmitt / (2.9 * 2.0);
  
    lcd.setCursor(0,0);
    lcd.print(" Objekt Mitte ");
    lcd.setCursor(0,1);
    lcd.print(entfernungmitt);
    lcd.print("mm");
  
  if(Serial1.available()){
    command = Serial1.read();
    //Change pin mode only if new command is different from previous.  
    //Serial.println(command);
    switch(command){
    case 'F':  
      yellowCar.Forward_2W(velocity, velocity);
      break;
    case 'B':  
      yellowCar.Back_2W(velocity, velocity);
      break;
    case 'L':  
      yellowCar.RotateLeft_2W(velocity, velocity );
      break;
    case 'R':
      yellowCar.RotateRight_2W(velocity, velocity);  
      break;
    case 'S':  
      yellowCar.Stopped_2W();
      break;
    case 'W':  //Font ON
      digitalWrite(pinfrontLights, HIGH);
      break;
    case 'w':  //Font OFF
      digitalWrite(pinfrontLights, LOW);
      break;
    case 'U':  //Back ON
      digitalWrite(pinbackLights, HIGH);
      break;
    case 'u':  //Back OFF
      digitalWrite(pinbackLights, LOW);
      break;
    case 'D':  //Everything OFF
      digitalWrite(pinfrontLights, LOW);
      digitalWrite(pinbackLights, LOW);
      yellowCar.Stopped_2W();
      break;        
    default:  //Get velocity
      if(command=='q'){
        velocity = 255;  //Full velocity
        yellowCar.SetSpeedLeft_2W(velocity);
        yellowCar.SetSpeedRight_2W(velocity);
      }
      else{
        //Chars '0' - '9' have an integer equivalence of 48 - 57, accordingly.
        if((command >= 48) && (command <= 57)){
          //Subtracting 48 changes the range from 48-57 to 0-9.
          //Multiplying by 25 changes the range from 0-9 to 0-225.
          velocity = (command - 48)*25;      
          yellowCar.SetSpeedLeft_2W(velocity);
          yellowCar.SetSpeedRight_2W(velocity);
        }
      }
    }
  }
}
}
Sobald die Sensoren Zeilen im Loop eingefügt werden. Reagiert das ganze sehr verzögert.

Danke für eure Hilfe im Voraus.

Gruß
Chirs
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2015, 22:34
Beitrag #2
RE: Bluetooth verzögert
Hallo,

vielleicht sollte ich ergänzen dass die Ganze Sensorik inkl. Bluetooth Modul an einen Arduino Mega dranhängen.

Was ich noch nicht getestet habe ist die Baudrate am Modul zu ändern.
Hierzu eine Frage muss ich dies immer wieder nach dem abschalten des Moduls machen ? ( Sprich die Baudrate muss nach jedem abschalten neu eingestellt werden ) ?? Oder wird das einmalig eingestellt und das Modul arbeitet dann mit der neu eingestellten Baudrate auch wenn's stromlos gestellt wird.

Nochmal zum Problem die Befehle kommen an doch diese werden mit einer Verzögerung von bis zu 5 sek. ausgeführt

Gruß
Chris
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2015, 22:55
Beitrag #3
RE: Bluetooth verzögert
Mit Bluetooth kenne ich mich leider nicht aus... bin auch selbst Anfänger...

aber ich habe begonnen mich einen Problem zu nähern, indem ich "verdächtige" Zeile per // aus dem Rennen nehme, um zu identifizieren welche Zeile genau das Problem verursacht....

kannst du es irgendwie eingrenzen, was bei der Sensorik das Problem macht? Oder kann st du entsprechende Zeilen mal in deinem Sketch markieren?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.01.2015, 00:00
Beitrag #4
RE: Bluetooth verzögert
Hi

Es sind die Sensoren 1 bis 3 im LOOP
bis dahin läuft alles prima sobald ich die Ultraschalsensoren einbinde kommt zu der Verzögerung.
habe die delays au skommentiert nichts...
Ich vermute und ich hoffe ich liege richtig es handelt sich "nur" um ein Baudraten Problem. Was ich jetzt weiß die Baudrate kann mit einen AT befehl ( AT+ BAUD5)auf 19200 eingestellt werden.
Mal Testen.

Was meinen die Profis dazu ?

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.01.2015, 18:12 (Dieser Beitrag wurde zuletzt bearbeitet: 04.01.2015 18:13 von Zerebrator.)
Beitrag #5
RE: Bluetooth verzögert
Hallo,

also nur als Update
die Baudrate habe ich geändert auf 19200 leider hat dies keinen Erfolg gebracht.

Bin leider am Ende mit meiner probiererei

Hat jemand eine Idee wie ich das ganze umgehen bzw. lösen kann?????
Es ist einfach nicht möglich so das Fahrzeug zu kontrollieren.

Gruß
Chris
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.01.2015, 20:57
Beitrag #6
RE: Bluetooth verzögert
Hallo Chris,
kannst du mal sagen welchen Typ die Sensoren haben? Link? Datasheet?
Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.01.2015, 21:37
Beitrag #7
RE: Bluetooth verzögert
Hallo RK

Das sind immer noch die gleichen die Du schon mal für mich gecheckt hast ;-)
HC-SR 04
übrigens Dein Programm leistet super Dienste 1000 Dank nochmal.

@Zorg

damit könntest Du Recht haben doch welche Alternative kann / sollte ich verwenden ?
Hättest Du Vorschläge für mich ?
Würde mich über weiter Infos freuen

Gruß
Chris
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2015, 11:54
Beitrag #8
RE: Bluetooth verzögert
Hallo

nur zur Info das Problem wurde gelöst.

Es war die if Anweisung vor dem Case
diese durch while ersetzt und siehe da es läuft !


Gruß
Chris
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Menü über Bluetooth Eingabe abwarten anwo 4 504 18.10.2016 08:59
Letzter Beitrag: Lolliball
  Bluetooth HC 05 Sascha 2 1.238 18.10.2016 08:57
Letzter Beitrag: Lolliball
  Bluetooth refresh der Seite kaimaik 7 220 01.10.2016 22:05
Letzter Beitrag: kaimaik
Rainbow Bluetooth Arduino - Arduino Bluetooth ChrisBeer222 6 1.289 26.09.2016 21:40
Letzter Beitrag: Bitklopfer
Question HC-05 zu Android Bluetooth Geschwindigkeit Test Kai H. 0 380 24.01.2016 20:41
Letzter Beitrag: Kai H.
  Problem Wiederholung eines Case im Switch via Bluetooth Ecki1212 6 904 16.09.2015 23:06
Letzter Beitrag: Ecki1212
  IR Bluetooth oder.... bergfrei 8 1.285 20.08.2015 19:49
Letzter Beitrag: bergfrei
  Hilfe bei SoftwareSerial und Bluetooth scritch 3 854 14.06.2015 07:48
Letzter Beitrag: Thorsten Pferdekämper
  Arduino via Bluetooth auf Smartphone EffArr 3 1.076 05.02.2015 09:10
Letzter Beitrag: Thorsten Pferdekämper
  Bluetooth bergfrei 2 800 28.01.2015 18:58
Letzter Beitrag: bergfrei

Gehe zu:


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