Fehlermeldung beim Verifi

Hallo liebe Gemeinde,
ich bin der neue hier. Mein Name ist Dieter. Habe mir den Arduino gekauft um ein Bewässerungssystem zu bauen. Das erste funktioniert seit 6 Monaten einwandfrei. Nun wollte ich ein zweites bauen. bei der selben Software die ich für das erste System nahm gab es jetzt folgende Fehlermeldungen.
C:\Users\Udi15\Documents\Arduino\4 Canal Bewaesserungssystem arbeits\4 Canal Bewaesserungssystem arbeits.ino:104:1: error: 'Serial' does not name a type
Serial.print("MOISTURE LEVEL:");
^~~~~~
C:\Users\Udi15\Documents\Arduino\4 Canal Bewaesserungssystem arbeits\4 Canal Bewaesserungssystem arbeits.ino:105:1: error: 'value4' does not name a type
value4 = analogRead(Pin4);
^~~~~~
C:\Users\Udi15\Documents\Arduino\4 Canal Bewaesserungssystem arbeits\4 Canal Bewaesserungssystem arbeits.ino:106:1: error: 'Serial' does not name a type
Serial.println(value4);
^~~~~~
C:\Users\Udi15\Documents\Arduino\4 Canal Bewaesserungssystem arbeits\4 Canal Bewaesserungssystem arbeits.ino:107:1: error: expected unqualified-id before 'if'
if(value4>220)
^~
C:\Users\Udi15\Documents\Arduino\4 Canal Bewaesserungssystem arbeits\4 Canal Bewaesserungssystem arbeits.ino:113:1: error: expected unqualified-id before 'else'
else
^~~~
C:\Users\Udi15\Documents\Arduino\4 Canal Bewaesserungssystem arbeits\4 Canal Bewaesserungssystem arbeits.ino:119:1: error: 'Serial' does not name a type
Serial.println();
^~~~~~

exit status 1

Compilation error: 'Serial' does not name a type

Komisch ist das ich nichts geändert habe.

Der Programmcode:

//Automatisches Bewaesserungssystem 6 Canal

//Defination der 6 Steuerpins
int IN1 = 2;
int IN2 = 3;
int IN3 = 4;
int IN4 = 5;
int IN5 = 6;
int IN6 = 7;

//Da der vom Bodenfeuchtesensor erfasste Wert ein analoges Signal ist werden die 4 analogen Anschlsse definiert
int Pin1 = A0;
int Pin2 = A1;
int Pin3 = A2;
int Pin4 = A3;
int Pin5 = A4;
int Pin6 = A5;

//Es muessen 4 Variablen verwendet werden um die von den 4 Sensoren erfassten Werte zu speichern
float value1 = 0;
float value2 = 0;
float value3 = 0;
float value4 = 0;
float value5 = 0;
float value6 = 0;

//In der Setup Funktion, hauptsaechlich mit der Serial.begin Funktion, um die Baudratedes des seriellen Ports
//einzustellen, und mit der pin Mode Funktion um die Eingangs- und Ausgangsfunktion des Ports einzustellen.
//Output zeigt die Ausgangsfunktionan. Input zeigt die Eingangsfunktion an.
void setup() {
Serial.begin(9600);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(IN5, OUTPUT);
pinMode(IN6, OUTPUT);

// --- Signal vom Sensor ---
pinMode(Pin1, INPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, INPUT);
pinMode(Pin4, INPUT);
pinMode(Pin5, INPUT);
pinMode(Pin6, INPUT);

digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, HIGH);
digitalWrite(IN5, HIGH);
digitalWrite(IN6, HIGH);
delay(500);
}

//Verwenden Sie abschliessend in der Funktion loop zyklisch die Funktion Serial.Print, um die 
//Eingabeaufforderungsinformationen im seriellen Monitor auszugeben. Verwenden Sie die Funktion analogRead um
//den Sensorwert zu lesen. Verwenden Sie dann die Funktion If um den Sensorwert zu bestimmen. Wenn die Anforderungen
//erfuellt sind, schaltet das Relais ein und verwenden Sie die Funktion digitalWrite um die Pumpe zu betreiben. 
//Wenn nicht schaltet das Relais aus.

//Es gibt insgesammt 4 Zeilen mit if(value4>550) in der loop Funktion. Dies ist die Anweisung die den Start der
//Pumpe steuert. Der Wert in value muss entsprechend des Wasserbedafes der Pflanze eingestellt werden. Testen.


void loop() {
Serial.print("MOISTURE LEVEL:");
value1 = analogRead(Pin1);
Serial.println(value1);
if(value1>220)
{
digitalWrite(IN1, LOW);
}
else
{
digitalWrite(IN1, HIGH);
}

Serial.print("MOISTURE LEVEL:");
value2 = analogRead(Pin2);
Serial.println(value2);
if(value2>220)
{
digitalWrite(IN2, LOW);
}
else
{
digitalWrite(IN2, HIGH);
}

Serial.print("MOISTURE LEVEL:");
value3 = analogRead(Pin3);
Serial.println(value3);
if(value3>220)
{

digitalWrite(IN3, LOW);
}
else

digitalWrite(IN3, HIGH);
}

Serial.print("MOISTURE LEVEL:");
value4 = analogRead(Pin4);
Serial.println(value4);
if(value4>220)

{
digitalWrite(IN4, LOW);
}

else

{
digitalWrite(IN4, HIGH);
}

Serial.println();


Der Fehler tritt nur ab Serial.print("MOISTURE LEVEL:");
value4 = analogRead(Pin4); auf. Habe auch schon value3 kopiert und auf 4 geändert. Das selbe wieder. Ich finde den Fehler nicht. Ist übrigens mein erstes Projekt.

Arduinoboard ist UNO R3, Softwareversion IDE 2.0.3

Vielleicht kann mir jemand helfen. Finde es schon komisch das die selbe Software auf einmal nicht mehr funktioniert. Vielen Dank. Ach ja, noch ein Hinweis. Ich wollte vorher die Softwareversion auf 2.1.0 updaten, was aber gar nicht funktionierte.

Es Grüsst Dieter

Drücke in der IDE mal Strg + t, dann siehst Du, daß in Zeile 104 etwas mit der Einrückung und damit mit den Klammern nicht stimmt.

grafik

1 Like

Du verwendest die Sprache C++.
Und dort dürfen Anweisungen (fast) nur in Anweisungsblocks vorkommen.

Bei dir befinden sich Anweisungen außerhalb.

Ich vermute, da ist dir was mit den Anweisungsblockklammern durcheinander geraten.

Tipp:
Formatiere den Quelltext, dann wird er besser lesbar und die Blockfehler offensichtlicher.

1 Like

Dem else fehlt die wohl geplante {

1 Like

Hallo, danke für die Hilfe, hat aber leider bis jetzt noch nicht funktioniert. Immer der selbe Fehler ab Value 4. Die Value 1-3 funktionieren. hab die 3 kopiert und die 3 in 4 umgewandelt. Wieder der selbe Fehler. Es ist zum verzweifeln. ist sicher nur eine Kleinigkeit.

Hallo lordlincoln

Zeige mal deinen aktuellen Sketch.

1 Like

Ein schönes dickes und modernes C++ Grundlagen Buch.
Da drin stehen die Syntaxregeln.

Ist es wirklich so, dass dich einfaches Klammern zählen und Klammern anordnen schon überfordern?
Das wäre wirklich sehr schade....

1 Like

wenn du die Korrektur angebracht auf die dich @Whandall in post #4 hingewiesen hat, dann sollte es schon was anderes sein.

Drücke mal STRG-T in der IDE und formatiere damit deinen Sketch. Siehst du nun auf Grund der Einrückungen weitere Fehler?

Wenn nicht:

  • poste deinen neuen Code (inkl. STRG-T Formatierung) in Code Tags
  • poste die Fehlermeldungen
1 Like

Erste fehlende Klammer hat dir schon @Whandall gezeigt
jetzt fehlt noch eine Klammer :wink:
Stelle dir die IDE so ein
image
danach geh mit der Maus auf

void loop(){

dann sieht man wo die letzte geschweifte Klammer fehlt


Klammer hinzufügen, und staunen das der Sketch funktioniert wie bei mir im Screenshot.
Zwei kleine Fehle machen alles kapoot.
Habe getestet das aus post #1
ups ist schon 4 Tage her, egal :wink:

1 Like

Hallo Zusammen, Danke für Eure Hilfe. Habs nun kapiert das ich mich mit den Klammern verzählt habe. Hab doch wirklich die letzte Klammer von Void loop vergessen. Nun funktioniert es.
Schönen Tag noch

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.