Hallo,
also 2 Sachen fallen mir da auf ......
if(bt.peek()!=-1){
short val = bt.peek();
dataVal=val-48;
if(dataVal>=1 && dataVal<=4) blt();
else rewindBt();
}
?????? Was ist das. Was willst du damit erreichen.
Und die Delay müssen weg. Suche dir einen Weg das anders zu lösen.
Ich habe dir mal meinen Serial-BT-Reciver angehängt der benutzt kein Delay. Nur als Anschaung.
//
// Code by tft-elektronik.com
//
// Reciver, um Daten direkt weiterzuleiten.
// 1 * Hardware Serial / 1 * SoftSerial für BlueTooth
// Mich Echo Funktion
// Konstanten
#define PIN_RECEIVE 11 // dieser Pin muss Interupt fähig sein
#define PIN_SEND 12
#define SPEED_BLUETOOTH 57600 // diese geschwindigkeit muss im BlueThoot Modul eingestellt sein
#define SPEED_SERIAL 57600
#define LED_Pin 13
#include <Wire.h>
#include <SoftwareSerial.h>
unsigned long Mill = millis() ;
unsigned long BlinkTimer = 0 ;
long BlinkInterval = 500 ;
byte BlinkStatus = 0 ;
int i = 0 ;
char thisSerialChar = 0 ;
char thisBlueSerialChar = 0 ;
SoftwareSerial BlueSerial(PIN_RECEIVE, PIN_SEND);
void setup() {
// put your setup code here, to run once:
pinMode(LED_Pin, OUTPUT) ;
Serial.begin(SPEED_SERIAL);
BlueSerial.begin(SPEED_BLUETOOTH);
// Serial gibt nicht den Status der Verbindung wieder, Sondern ob eine
// Schnitstelle von seiten des Arduino bereit ist. Beim Leonardo ist
// dies nach einem Reset nicht sofort da.
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
}
void loop() {
// put your main code here, to run repeatedly:
Mill = millis();
// Damit man sieht ob das Programm läuft
if (BlinkTimer<Mill) {
BlinkTimer = Mill + BlinkInterval ;
if (BlinkStatus == 0) {
BlinkStatus = 1 ;
digitalWrite(LED_Pin,HIGH);
}
else {
BlinkStatus = 0 ;
digitalWrite(LED_Pin,LOW);
}
}
// Daten von der Serialen Hardware Schnitstelle holen und an die BlueTooth Schnitstelle senden
if (Serial.available()) {
i = Serial.available() ;
while (i > 0)
{
thisSerialChar = Serial.read() ;
BlueSerial.write(thisSerialChar);
Serial.write(thisSerialChar); // Echo
i = Serial.available() ;
}
}
// Daten von der BlueTooth Schnitstelle holen und an die Seriale Schnitstelle senden
if (BlueSerial.available()) {
i = BlueSerial.available() ;
while (i > 0)
{
thisBlueSerialChar = BlueSerial.read() ;
Serial.write(thisBlueSerialChar);
BlueSerial.write(thisBlueSerialChar); // Echo
i = BlueSerial.available() ;
}
}
}