expected ';' before numeric constant?

Hallo!

Für mein Spalierobst habe ich eine Bewässerung gebaut. Das Wasser ist in einem hoch gestellten Gartenfass. Über einen selbst gebauten Dauermagnet-Wasserhahn soll das gesammtelte Wasser in Abhängigkeit der Bodenfeuchtigkeit in ein Schläuchlein mit Tropfern fließen, und so den Boden befeuchten

Ein Arduino soll über einen Servo das Stellen realisieren.

Ist der Boden zu trocken, ermittelt das ein capazitiver Soil Moisture Sensor v2.0. Ein Servo schwenkt einen an ihm befestigten Dauermagnet über die Stelle des Dauermagnet-Wasserhahnes, unter dem ein Dauermagnet-Ventil angezogen wird.Somit ist der Weg des Wassers frei.

Ist der Boden feucht genug, schwenkt der Servo seinen Magneten zurück in die Ausgansposition. Das Dauermagnet-Ventil fällt und schließt die Wasserzufuhr.

Schön wäre, wenn der Servo zwischen den Aktionen stromlos sein könnte. Das bekomme ich auch nicht hin.

Ein Arduino soll die Regelung übernehmen.

Vielen Dank Demjenigen, der mir helfen kann.

Mein bisheriger Code ist im folgendem Foto.

#include<Servo.h>

Servo S;

const int SensorPin = A0;

void setup() {

 Serial.begin(9600);

 pinMode (A0, INPUT);

 S.attach(9);

}

void loop() {

               // serieller Monitor geht nicht mit { } hinter if

  int analogWert = analogRead(A0); // Auslesen des analogen Sensorwertes

 Serial.println(analogWert);   // Ausgabe des Wertes auf der seriellen Konsole

 delay(1000); 

 if (analogRead(A0)> 270) // zu trocken   

  {S.write (65);  //Servo geh auf 65 GRad //dies geht nicht 

 delay(6000);}//pendelt 0 -- 65 -- 0 im 6000, 500 Takt

 //Wenn delay (6000) deaktiviert wird geht nichts mehr!

 

 else (analogRead(A0)< 260) ; // zu nass - dies funktioniert

  S.write (0); //Servo geh auf 0 Grad

  delay (500);

  }

Der Code wird kompilliet, aber funktioniert noch nicht zufriedenstellend.

Bild zum Beitrag
Arduino, C (Programmiersprache)
Arduino gyro inakkurat?

Servus. Ich bin gerade an einem Projekt für das ich einen Sensor brauche der die Orientierung und die G Kräfte misst. Bin noch komplett am Anfang, aber scheitere hier schon.

Mein teurer BMI088 V1.0 bringt sehr variierende Werte. Sieht eigentlich schon fast willkürlich aus, aber reagiert auf bewegungen.

Ist es mein Code der Falsch ist? Bin jetzt schon seit über 2 Stunden dran und so weit gekommen bis jetzt:

#include "BMI088.h"
#include "SensorFusion.h" //SF
SF fusion;

float deltat;
float pitch, roll, yaw;

float ax = 0, ay = 0, az = 0;
float gx = 0, gy = 0, gz = 0;

float gx_all;
float gy_all;
float gz_all;
float ax_all;
float ay_all;
float az_all;

BMI088 bmi088( 0x19, 0x69 );


void setup(void) {
    Wire.begin();
    Serial.begin(115200);
    Serial.println("Bereit");
    while (!Serial);
    Serial.println("BMI088 Raw Data");
    

    while (1) {
        if (bmi088.isConnection()) {
            bmi088.initialize();
            Serial.println("BMI088 is connected");
            break;
        } else {
            Serial.println("BMI088 is not connected");
        }

        delay(2000);
    }
}

void loop(void) {
    bmi088.getAcceleration(&ax, &ay, &az);
    bmi088.getGyroscope(&gx, &gy, &gz);

/*
    Serial.print(ax);
    Serial.print("(ax), ");
    Serial.print(ay);
    Serial.print("(ay), ");
    Serial.print(az);
    Serial.print("(az), ");

    Serial.print(gx);
    Serial.print("(gx), ");
    Serial.print(gy);
    Serial.print("(gy), ");
    Serial.print(gz);
    Serial.print("(gz), ");

    Serial.println();
*/

//Nimmt den Mittelwert aus 10000 Messungen
for (int i = 0; i < 10000; i++) {
  gx_all = gx_all + gx;
  gy_all = gy_all + gy;
  gz_all = gz_all + gz;
  ax_all = ax_all + ax;
  ay_all = ay_all + ay;
  az_all = az_all + az;
}

  Serial.println("Fertig :");
    gx_all = gx_all / 10000;
    gy_all = gy_all / 10000;
    gz_all = gz_all / 10000;
    ax_all = ax_all / 10000;
    ay_all = ay_all / 10000;
    az_all = az_all / 10000;

    deltat = fusion.deltatUpdate();
    fusion.MahonyUpdate(gx_all, gy_all, gz_all, ax_all, ay_all, az_all, deltat);

    pitch = fusion.getPitch();
    roll = fusion.getRoll();
    yaw = fusion.getYaw();

    Serial.print("Pitch: ");
    Serial.print(pitch);
    Serial.print(", Roll: ");
    Serial.print(roll);
    Serial.print(", Yaw: ");
    Serial.print(yaw);
    Serial.println();
    delay(1);
}

Und wenn ich gerade schon dabei bin, ich finde online über den BMI088 in kombination mit einem Arduino fast nichts. Wie bekomme ich die Beschleunigung und die wirkenden G Kräfte?

Danke und Grüße, Leo

Arduino

Meistgelesene Beiträge zum Thema Arduino