Problem mit Variablenübergabe einer Funktion

Hallo, ich habe eine Funktion, die Daten über den Serial-Monitor entgegennehmen und in eine float Variable(eingabe) speichern soll.

Ich kann die Variable "eingabe" jedoch nur innerhalb der Funktion benutzen, obwohl diese Global definiert ist, und die Funktion diese nach Aufruf "zurückgeben" soll.

Warum ist das so?

float eingabe;


void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial2.begin(9600);
  Serial.println("Setup abgeschlossen!");
  Serial2.println("DW");
}

float datenEinlesen(){
  String inString;
  while(Serial.available() > 0){ //Solange Daten kommuniziert werden, tue folgendes
    char inChar = Serial.read();
    if (inChar != 13) {
      inString += (char)inChar;
    } else {
      Serial.print("Verarbeitet ");
      Serial.println(inString);
      float eingabe = inString.toFloat();
      Serial.println(eingabe);
      return eingabe;
      inString = "";
    }
}
}

char messwertErfassen() {

}

void loop() {
  // put your main code here, to run repeatedly:
  
  datenEinlesen();
  Serial.print("Angekommen: ");
  Serial.println(eingabe);
  delay(800);                        //Zu Diagnosezwecken

  

}

Du hast noch eine float eingabe in der Funktion angelegt, da wird diese genommen. Lass dort das float weg.

Gruß Tommy

Dann musst du hier:

float eingabe = inString.toFloat();

das float zu Anfang entfernen.

Hier ist der Fehler:

float eingabe = inString.toFloat();

Du deklarierst da eine lokale Variable gleichen Namens die die globale Version verdeckt

Super, vielen Dank!

Mal wieder so ein Sisyphusfehler :D

lass Sisyphos in Frieden ruhen, der hat nichts damit zu tun...

Eisebaer: lass Sisyphos in Frieden ruhen, der hat nichts damit zu tun...

Irgend wer muss doch die Schuld haben bekommen. ;)

Schuld ist irrelevant.