Hallo Zusammen,
im Zuge meines Studiums sollen wir in Gruppenarbeit ein ferngesteuertes Auto programmieren, was durch Bluetooth und Handyverbindung gesteuert wird. Mein Komilitone ist recht fit im Arduino programmieren, aber bei einer Sache kommen wir(er) nicht weiter. Wir möchten die App Roboremo benutzen. Jeder Button auf der App haben wir eine ID zugewiesen und da hinter den Zustandswert. Ein Befehl von der App sieht bspw. so aus 1:1 . Wir geben dann die Empfangende Werte über den seriellen Monitor aus. Wir benutzen das Modul HC-05.
Wir haben nun das Problem, dass wir nur 6 mal einen Wert übertragen können, bevor keine weiteren Werte übertragen werden können. Wenn wir den Arduino reseten, kann man erneut 6 mal Werte schicken. Das kann beliebig oft wiederholt werden.
Mein Komilitone vermute deshalb, das wir die alten Werte nicht überschreibe und der Speicher voll ist.
Habt ihr eine Idee wie das Problem zu lösen ist?
int var = 0; //Merker ID
int val =0; // Schaltzustandswert ID
char data = 0;
int BlinkerR = 0; //App, Blinker rechts
int BlinkerL = 0; //App, Blinker links
int Warnblinker = 0; //App, Warnblinker
int Schalter =0; //Zahler für Schalterfunktion Warnblinker
int Hupe = 0; //App Hupe
int Autoaus = 0; // App, Automotor ausschalten
int Windeab = 0; //App, Windenbefehl mehr Seil
int Windeauf = 0; //App, Windenbefehl Seil einziehen
int TMP = 0; //App, Displayauswahl Temeraturanzeige
int SPAN = 0; //App, Displayauswahl Spannungsanzeige
int GES =0; //App, Displayauswahl Geschwindigkeit
int STA= 0; //App, Displayauswahl Motorstatus
int G = 0; //App Geschwindigkeitswert (Schieberegler)
int L = 0; //App, Lenkungswert (Schieberegler)
void setup() {
Serial.begin(9600);
}
void loop() {
//Einlesen der Daten per Bluetooth
if (Serial.available()) { //Wenn etwas über Serielle kommunikation empfangenwird...
String receivedString = Serial.readStringUntil('\n');
Serial.println("Data: " + receivedString); //Kann später raus
data = new char[receivedString.length() + 1];
strcpy(data, receivedString.c_str());
if (sscanf(data, "%d:%d", &var, &val) == 2) { //Eingelesenen Werte in Variablen umwandeln
if (var == 1 ){
if (val ==1){
TMP = HIGH ;
SPAN = LOW ;
GES = LOW ;
STA =LOW ;
}else{
if(val == 2){
TMP = LOW ;
SPAN = HIGH ;
GES = LOW ;
STA =LOW ;
}else{
if(val == 3){
TMP = LOW ;
SPAN = LOW ;
GES = HIGH ;
STA =LOW ;
}else{
if(val ==4){
TMP = LOW ;
SPAN = LOW ;
GES = LOW ;
STA =HIGH ;
}
}
}
}
}
if (var == 2){
G = val;
}
if (var == 3){
L = val;
}
if (var == 4){
if(val == 1){
Windeauf = HIGH;
Windeab = LOW;
}else{
if(val == 3){
Windeauf = LOW ;
Windeab = HIGH ;
}else{
if((val == 0)||(val == 2)){
Windeauf = LOW ;
Windeab = LOW ;
}
}
}
}
if (var == 5){
if(val == 1){
BlinkerR = HIGH ;
BlinkerL =LOW ;
}else{
if(val == 2){
BlinkerR = LOW ;
BlinkerL = HIGH ;
}
}
}
if (var == 6){
if(val ==1){
if(Schalter == 0){
Warnblinker=HIGH ;
}
if(Schalter == 1){
Warnblinker=LOW ;
Schalter == -1;
}
}else{
if(val ==0){
Schalter ++;
}
}
}
if (var == 7){
if(val ==1){
Autoaus=HIGH ;
}else{
if(val ==0){
Autoaus = LOW;
}
}
}
if (var == 8){
if(val ==1){
Hupe =HIGH ;
}else{
if(val ==0){
Hupe=LOW ;
}
}
}
}
}
}
Gruß Nordlicht