Go Down

Topic: Fehlermeldung einmalig Ausführen (Read 360 times) previous topic - next topic

Trackersos

Moin moin,

hab folgendes Problem:
Bekomme über serielle Kommunikation einen Wert. Wenn dieser Wert i <= 10 % ist dann soll eine Fehlermeldung einmalig ausgeben werden (über GSM Modul).
Wenn ich das ganze mit einer If-Bedingung prüfe, dann wird jedes Mal wenn  i <=10 % diese Fehlermeldung gesendet. Ich möchte dies allerdings nur 1 Mal tun, d.h. i wird von 100% immer kleiner, soll ab 10% eine einzige Fehlermeldung rausgeben. i wird entweder noch kleiner oder wieder größer und erst wenn i wieder, also zum 2. Mal kleiner gleich 10 % ist, dann die zweite Fehlermeldung senden. So möchte ich vermeiden, dass jedes mal nach der Prüfung ob i <= 10 ist eine SMS gesendet wird.

Ich hab viel probiert, mit if, while und for und es aber nicht hinbekommen. Habt ihr evtl. eine Idee?

Gruß Trackersos

mgcss

Mach Dir ne static Variable in der Du speicherst, ob eine SMS gesendet wurde oder nicht. Wenn Du einen Wert <= 10% bekommst UND die Variable = FALSE ist, dann sendest Du die SMS und stellst die Variable = TRUE. Wenn Du einen Wert > 10% bekommst, stellst Du die Variable wieder = FALSE. So bekommst Du nur eine SMS beim Unterschreiten der Grenze. So lange der Wert unter der Grenze bleibt kommt keine weitere SMS. Erst wenn der Wert wieder über die Grenze steigt und anschließend wieder fällt, kommt die nächste SMS

A.R.Ty

Hoi,
setz doch einfach einen Status für das 1.Mal.
Den setzt Du z.B. auf TRUE solange nich keine gesendet wurde und dann auf FALSE.

Brauchst dann nur noch den Status abfragen und wenn TRUE sendet er eine, danach nicht mehr wegen FALSE
Dum spiro, spero - if you find my posting helpful, please click my Karma :)<br />~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />Do you know A.R.T, the FREE Android Root Tool ?

Trackersos

Hey super danke für eure schnellen Rückmeldungen und für die Gute Idee, werde mich sofort an die Umsetzung machen!

Gruß TrackerSos

Trackersos

So hab mich gleich mal dranngesetzt und siehe da, es funktioniert:

Code: [Select]

boolean meldung = true;

void setup()

  Serial.begin(9600);
  Serial.println("Starte Arduino");
}

void loop()
{
  for (int i = 0; i < 5; i++){
   
    Serial.println(i);
    if (i <= 2)
    {
      if (meldung)
      {
        Serial.println("FEHLER");
        meldung = !meldung;
      }
      else {
        Serial.println("Fehler bereits ausgeben");
      }
    }
    else {
      meldung = true;
      Serial.println("kein Fehler");
    }
    delay(1000);
  }
}



Ich bedanke mich!

A.R.Ty

Dum spiro, spero - if you find my posting helpful, please click my Karma :)<br />~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />Do you know A.R.T, the FREE Android Root Tool ?

Go Up