Tendenz anzeigen

hi - ein eingelesener Analogwert soll, wenn steigend, led1 HIGH setzen, fallender Wert setzt led1 LOW und led2 HIGH. Wenn Wert wieder steigt led2 aus und led1 wieder an.gibts da schon was oder ähnliches?? Danke schon mal für jeden tip

Ist nicht schwer selbst zu programmieren. Du speicherst dir eine gewisse Anzahl der letzten Messwerte in ein Array. Dann iterierst du darüber und vergleichst die Werte miteinander. Da kannst du z.B. feststellen ob 3 oder 4 Werte in Folge ansteigen.

Wenn du immer nur den aktuellen mit dem letzten Wert vergleichen willst, kannst du dir auch das Array sparen. Du solltest aber mehrere Messungen durchführen und einen Mittelwert bilden, damit die LED nicht durch normale Signalschwankungen unnötig blinkt.

Mit dem vergleichen ist schon klar, nur wie und wo speichere ich den vorherigen (previous) Wert. Geht das doch nur in ARRAY? Habe sonst nichts passendes gefunden. Danke schon mal für den Tip

Keine Garantie, dass das kompiliert :slight_smile: Ist mehr als grober Plan gedacht

Wenn du immer nur den aktuellen und den letzten Wert vergleichen willst, reichen zwei Variablen.

Ohne Array:

int previous;
int current;

void setup
{
     previous = analogRead(...);
}

void loop()
{
      current = analogRead(...);

      if(current > previous)
      {
         ....
      }

      previous = current;

      delay(...);
}

Mit array:

int array[10];

void loop()
{
    for(int i = 0; i < 10; i++)
    {
       array[i] = analogRead(...);
    }

    for(int i = 0; i < 10; i++)
    {
        //hier Vergleiche durchführen
    }

    delay(...);
}

Einen Vergleich ob der Wert über mehrere Messungen angestiegen ist, könnte man so ähnlich machen:

    int count = 0;

    for(int i = 1; i < 10; i++)
    {
        if(array[i] > array[i - 1])
        {
             count++;
        }
        else
        {
             //LED aus
             count = 0;
        }
        
        if(count == 3)
        {
            //hier LED an
        }
    }

Das letzte ist wirklich nur grob. Da gehört noch mehr Code rein.

Und wie gesagt solltest du dabei z.B. 4 oder 8 Werte hintereinander messen und dann durch die Anzahl teilen um einen stabilen Mittelwert zu bekommen

damit komme ich vorerst voran - Danke
Melde demnächst erfolg oder =(