Forum: Mikrocontroller und Digitale Elektronik Array Überwachung


von Simon (Gast)


Lesenswert?

Guten Tag,

ich habe eine Frage zu meinem Sketch.

Ich möchte, dass mein ESP32 nur dann Daten versendet, wenn

a) sich der Sensor bewegt
b) sich der Sensor die letzten 10 Abfragen bewegt hat

Daher habe ich ein Array angelegt, welches alle Bewegungsdaten der 
letzten zehn Aufrufe enthält. Somit habe ich alle Informationen die ich 
brauche.

Meine Frage:

Was schreibe ich in meine if Schleife als Bedingung? Oder konkret: Wie 
überprüfe ich ein gesamtes Array auf einen Wert größer als X?
1
void loop() {
2
3
for (int i = 0; i<10; i++){
4
        
5
ueberpruefungsarray[i][1] = accAngle[0];
6
ueberpruefungsarray[i][2] = accAngle[1];
7
ueberpruefungsarray[i][3] = accAngle[2];
8
ueberpruefungsarray[i][4] = gyroAngle[0];
9
ueberpruefungsarray[i][5] = gyroAngle[1];
10
ueberpruefungsarray[i][6] = gyroAngle[2];
11
     
12
 if (IRGENDEIN WERT IM ARRAY GRÖßER ALS 2){
13
  werte_einlesen();
14
  werte_versenden();   
15
}
16
  else{
17
 werte_einlesen();
18
}
19
}  
20
}

: Verschoben durch Moderator
von Dirk B. (dirkb2)


Lesenswert?

Setze ein Flag innerhalb der Schleife und teste darauf in der Bedingung.


Wie machst du mit der if-Schleife Wiederholungen?

von Route_66 H. (route_66)


Lesenswert?

Dirk B. schrieb:
> if-Schleife

Was ist das?

von sid (Gast)


Lesenswert?

Simon schrieb:
> Was schreibe ich in meine if Schleife als Bedingung? Oder konkret: Wie
> überprüfe ich ein gesamtes Array auf einen Wert größer als X?

da ist Dein Problem.. es gibt keine IF - Schleife
IF wiederholt nix, es testet nur EINMAL

Also muss to eine Schleife drumrumlegen
1
int maxwert = 2; // oder was auch immer Du haben willst
2
for(int il=1; il< 7; il++) // deine ids sind ja von 1-6 statt von 0-5
3
{
4
    if(ueberpruefungsarray[i][il] > maxwert)
5
    {
6
     ....// was auch immer du lesen senden willst
7
    }
8
}

von Dirk B. (dirkb2)


Lesenswert?

Route_66 H. schrieb:
> Dirk B. schrieb:
>> if-Schleife
>
> Was ist das?

Weiß ich nicht. Ich habe das als Frage formuliert.

von Simon (Gast)


Lesenswert?

> Also muss to eine Schleife drumrumlegen
> int maxwert = 2; // oder was auch immer Du haben willst
> for(int il=1; il< 7; il++) // deine ids sind ja von 1-6 statt von 0-5
> {
>     if(ueberpruefungsarray[i][il] > maxwert)
>     {
>      ....// was auch immer du lesen senden willst
>     }
> }

Super, danke dir. Hat funktioniert :-)

von morph1 (Gast)


Lesenswert?


von sid (Gast)


Lesenswert?

Simon schrieb:
> Super, danke dir. Hat funktioniert :-)

immer gern

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.