Gießalarm programierung verzweiflung

Moin, ich muss für die schule einen Gießalarm programmieren, allerdings habe ich nun das Problem das ich nicht weiter in der Programmierung komme und ich diese fehlermeldungen einfach nicht verstehe. Bitte, bitte helft mir. verwendete Bauteile sind arduino nano, passive Buzzer 5V, PIR-Sensor-HC-SR501, capacitive soil moisture sensor v2.0 und ein Breadboard.

```cpp
const int dry = 655; //wert für trockenen Sensor 
const int wet = 318; //wert für nassen Sensor

#define pirPin 2
#define buzzerPin 5
int val = 0;  //create variables melder
bool motionState = false; //We start with no motion detected
void alarm (int 500, int 1000);

void setup()
 { 
  // configure the pins as input or output
  pinMode (buzzerPin, OUTPUT);
  pinMode (pirPin, INPUT);
  
   Serial.begin(9600);
 }
 void loop()
 {
   int sensorVal = analogRead(A0);
   // Sensor has a range of 318 to 655
   // we want to translate this to a scale or 0% to 100%
   int percentageHumidity = map(sensorVal, wet, dry, 100, 0);

   Serial.print(percentageHumidity);
   Serial.println("%");
   
   delay(100);
 
   // read out the pirPin and store as val
   val = digitalRead(pirPin);
   // if motion is detected (pirPin = HIGH), do the following:
   if (percentageHumidity > 40 && motionState == HIGH){
   alarm(500, 1000); 
   delay(150);
   // Change the motion state to true (motion detected):
   (motionState == true)
   Serial.println ("bewegung + schlechter wert");
   }
  else{ Serial.print ("keine bewegung oder wert ok");
  delay(500);
  }
  delay(500);
 }
***fehlermeldungen:***
C:\Users\Notebook\AppData\Local\Temp\2ac78234-7137-468e-9454-35bd3510ed7f_Gießalarm.zip.d7f\Gießalarm\alarm3\alarm3.ino:8:17: error: expected ',' or '...' before numeric constant
C:\Users\Notebook\AppData\Local\Temp\2ac78234-7137-468e-9454-35bd3510ed7f_Gießalarm.zip.d7f\Gießalarm\alarm3\alarm3.ino: In function 'void loop()':
C:\Users\Notebook\AppData\Local\Temp\2ac78234-7137-468e-9454-35bd3510ed7f_Gießalarm.zip.d7f\Gießalarm\alarm3\alarm3.ino:34:19: error: too many arguments to function 'void alarm(int)'
C:\Users\Notebook\AppData\Local\Temp\2ac78234-7137-468e-9454-35bd3510ed7f_Gießalarm.zip.d7f\Gießalarm\alarm3\alarm3.ino:8:6: note: declared here
C:\Users\Notebook\AppData\Local\Temp\2ac78234-7137-468e-9454-35bd3510ed7f_Gießalarm.zip.d7f\Gießalarm\alarm3\alarm3.ino:38:4: error: expected ';' before 'Serial'

exit status 1

Compilation error: expected ',' or '...' before numeric constant

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

Gib uns bitte den Sketch und die Fehlermeldungen als Text in Codetags, nicht als Bild.
Wie das geht, steht hier.

Gruß Tommy

Da gibts einen Button: FEHLERMELDUNG KOPIEREN
Den benutzen,
Die Fehlermeldung hier in CODE-Tags einfügen.

So sind die Fehler erst einmal weg.

constexpr int dry {655};   // wert für trockenen Sensor
constexpr int wet {318};   // wert für nassen Sensor

constexpr uint8_t pirPin {2};
constexpr uint8_t buzzerPin {5};

int val = 0;                // create variables melder
bool motionState = false;   // We start with no motion detected

void alarm(int wertA, int wertB) {}

void setup() {
  // configure the pins as input or output
  pinMode(buzzerPin, OUTPUT);
  pinMode(pirPin, INPUT);

  Serial.begin(9600);
}
void loop() {
  int sensorVal = analogRead(A0);
  // Sensor has a range of 318 to 655
  // we want to translate this to a scale or 0% to 100%
  int percentageHumidity = map(sensorVal, wet, dry, 100, 0);

  Serial.print(percentageHumidity);
  Serial.println("%");

  delay(100);

  // read out the pirPin and store as val
  val = digitalRead(pirPin);
  // if motion is detected (pirPin = HIGH), do the following:
  if (percentageHumidity > 40 && motionState == HIGH) {
    alarm(500, 100);
    delay(150);
    // Change the motion state to true (motion detected):
    if (motionState == true) Serial.println("bewegung + schlechter wert");
  } else {
    Serial.print("keine bewegung oder wert ok");
    delay(500);
  }
  delay(500);
}

Allerdings musst Du die "alarm()" Funktion noch mit Leben füllen. Die wurde zwar hingeschrieben, aber nicht definiert, was sie machen soll. Was die 500 und die 1000 bedeuten ist Dein Geheimnis..

Das ist die Angabe, wo es klemmt.
Es bezeichnet die Zeile und Spalte und danach, was da irgendwie schief geht.
in dem Fall:

erwartet der Kompiler ein komma oder ....
Was auch richtig ist, denn in Deinem Prototypen:

fehlt die Deklaration eines Bezeichners.
Dafür hast Du dort feste Werte eingetragen :wink:

wirf deine Zeilen mit alarm raus.

Lies mal da:

und dann lass deinen Buzzer bei 500Hz 1 Sekunde lang beepen.

//tone(pin, frequency, duration);
tone(buzzerPin, 500, 1000);