Problem beim Auslesen eines Barcodescanners

(deleted)

(deleted)

jakobi123:
if(input == CODE)

init

exit status 1
'input' was not declared in this scope

Weil da dein Sketch für die Variable schon zu Ende ist.

int LED= 15;
long CODE = 126553;

void setup() {
  // put your setup code here, to run once:
pinMode (LED, OUTPUT);
Serial.begin(9600);
}

void loop() {

 if(Serial.available()) // auf eingehende Daten checken
{   
    String input = Serial.readString(); // 1 Byte auslesen
      Serial.print(input); // Byte anzeigen
} // <--- !!!
if(input == CODE)
{digitalWrite (LED, HIGH);}
else
{digitalWrite (LED, LOW);}
}

Ich habs Dir angekreuzt.
Es hilft, wenn Du den Sketch mit STRG-T formatierts

The variable "input" is not in scope in the code block following the "if (Serial.available...".

Move "String input;" up to global scope.

Muss ich den "input" in meinem Code als long definieren, d.h. hinschreiben long input = 0;

Ja.
Ausserdem solltest du die temporär definierte Variable
Sting input;
anders benennen.
Und rauskriegen, wie man aus einem String Objekt eine long Zahl macht, wenn der Text überhaupt eine Zahl enthält.

Oder input bleibt ein String und die daraus ermittelte Zahl, falls das geht, wird eine anders benannte Variable.

Oder du definierst
String CODE ="126553";, vergleichst zwei Texte (und bist nicht auf Ziffern als Code festgelegt)

const byte LED= 15;
String CODE = "126553";

void setup() {
   pinMode (LED, OUTPUT);
   Serial.begin(9600);
}

void loop() {
  if(Serial.available()) {  // auf eingehende Daten checken
     String input = Serial.readString(); // Text lesen
     Serial.print(input); // Text anzeigen

     digitalWrite (LED, (input == CODE) );  // Testergebnis anzeigen  true = HIGH
  }
}

Das funktioniert nicht, wenn ein Zeilenende-Zeichen mitgesendet wird

(deleted)

jakobi123:
Okay, vielen Dank euch für die schnelle Rückmeldung

Dann:

  • ändern
  • testen
  • sag bescheid :wink:

(deleted)