INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Messwerte im Array
09.12.2020, 10:37
Beitrag #1
Messwerte im Array
Hallo,
ich habe ein Problem mit meinem Programm, ich habe ein Array von 10 Werten welches ich sortiert habe, und einmal die Sekunde abgefragt habe, jetzt ist mein Problem das Wert 6- Wert 10 in meinem sortierten Array immer 18mA anzeigt. Weiß jemand woran es liegen könnte ?

Code:
//-------- Bibliotheken --------//
#include <Wire.h>
#include <Adafruit_INA219.h>              //Version 1.0.9
#include <Adafruit_BusIO_Register.h>      //Version 1.3.2
#include <ArduinoSort.h>
#include <LiquidCrystal_I2C.h>            //Version 1.0.7
#include <MapFloat.h>
//-------- Strommesser INA219 --------//
Adafruit_INA219 ina219;
//-------- LCD-Display --------//
LiquidCrystal_I2C lcd(0x27, 20, 4);


//-------- Millis/Zeiten --------//
unsigned long vorherigeZeit1 = 0;
unsigned long aktuelleZeit1;
const long interval1 = 1000;

//-------- Start der Setup-Void --------//
void setup(void)
{
  //-------- Initialisierung und Start des seriellen Monitors und des LCD-Displays --------//
  Serial.begin(115200);
  lcd.init();
  lcd.backlight();
  //-------- Start des Programms und des INA219-Strommesssensors --------//
  while (!Serial)
  {
    delay(10);
  }
  uint32_t currentFrequency;
  Serial.println("Programm-Start!");
  if (! ina219.begin())
  {
    Serial.println("Kein INA219-Strommesssensor gefunden...");
    while (1)
    {
      delay(10);
    }
  }
  Serial.println("Der INA219-Strommesssensor gibt folgende Werte aus:");
}

void loop(void)
{
  const int Messungen_Strom = 10;                 // Anzahl Messungen - Strom
  float Array_Strom[Messungen_Strom];             // Array für Messwerte - Strom
  float Durchschnitt_Strom = 0;                   // Durchschnittswert - Strom
  float Strom_mA = 0;
  Strom_mA = ina219.getCurrent_mA();
  float Addition_Strom = 0;
  float aktuellerFuellstand = 0;
  float mindestStrom = 9.5;                       // Der gemessene Mindeststrom im leeren Zustand
  float maximalStrom = 17.9;                      // Der gemessene Höchststrom im vollen Zustand
  float mindestFuellstand = 10;                   // Festlegung des minimalen Füllstandes
  float maximalFuellstand = 250;                  // Festlegung des maximalen Füllstandes


  aktuelleZeit1 = millis();
  {
    if (aktuelleZeit1 - vorherigeZeit1 >= interval1)
    {
      vorherigeZeit1 = aktuelleZeit1;
      for (int i = 0; i < 1; i++)
      {
        Array_Strom[i] = ina219.getCurrent_mA();
        sortArray(Array_Strom, 10);
        Serial.print("Wert 1: ");
        Serial.println(Array_Strom[0]);
        Serial.print("Wert 2: ");
        Serial.println(Array_Strom[1]);
        Serial.print("Wert 3: ");
        Serial.println(Array_Strom[2]);
        Serial.print("Wert 4: ");
        Serial.println(Array_Strom[3]);
        Serial.print("Wert 5: ");
        Serial.println(Array_Strom[4]);
        Serial.print("Wert 6: ");
        Serial.println(Array_Strom[5]);
        Serial.print("Wert 7: ");
        Serial.println(Array_Strom[6]);
        Serial.print("Wert 8: ");
        Serial.println(Array_Strom[7]);
        Serial.print("Wert 9: ");
        Serial.println(Array_Strom[8]);
        Serial.print("Wert 10: ");
        Serial.println(Array_Strom[9]);

        Serial.println("Höchste Werte:");
        Serial.println(Array_Strom[8]);
        Serial.println(Array_Strom[9]);
        Serial.println("Tiefste Werte:");
        Serial.println(Array_Strom[0]);
        Serial.println(Array_Strom[1]);

        Addition_Strom =
          Array_Strom[2] +
          Array_Strom[3] +
          Array_Strom[4] +
          Array_Strom[5] +
          Array_Strom[6] +
          Array_Strom[7] ;

        Serial.println("Ergebnis Addition: ");
        Serial.println(Addition_Strom);
        Durchschnitt_Strom = Addition_Strom / 6;
        Serial.println("Durchschnitt: ");
        Serial.println(Durchschnitt_Strom);
        aktuellerFuellstand = mapFloat(Durchschnitt_Strom, mindestStrom, maximalStrom, mindestFuellstand, maximalFuellstand);

        if (aktuellerFuellstand <= 10)
        {

          //---- Anzeige beim leeren Zustand ----//
          //lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Leer!");
          lcd.setCursor(0, 1);
          lcd.print(Durchschnitt_Strom);
          lcd.print("mA ");
        }
        else
        {
          //---- Anzeige im befüllten Zustand ----//
          //lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print(aktuellerFuellstand);
          lcd.print("l");
          lcd.setCursor(0, 1);
          lcd.print(Durchschnitt_Strom);
          lcd.print("mA ");
        }
      }
    }
  }
}

Mfg
süffi1234
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2020, 11:33
Beitrag #2
RE: Messwerte im Array
Was soll dieser Unsinn?
Code:
for (int i = 0; i < 1; i++)
Da ist i immer 0.

Wo sortierst Du die Werte?

Dir ist klar, dass Array_Strom in jedem loop-Durchlauf neu angelegt wird und mit zufälligen Werten gefüllt ist?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2020, 12:30
Beitrag #3
RE: Messwerte im Array
Die Messwerte sortiere ich mit dem Befehl sortArrray, hierzu habe ich mir eine Bibliothek heruntergeladen.

Ja, der Sensor soll ja auch immer wieder neu eingelesen werden, da der Füllstand sich schnell ändert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2020, 12:36
Beitrag #4
RE: Messwerte im Array
Und Wie meinst du das mit i und dem Unsinn Genau ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2020, 12:39
Beitrag #5
RE: Messwerte im Array
Nochmal: Du füllst nur Strom_array[0]. Alle andere Werte in Strom_array haben undefinierte Werte.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2020, 12:53
Beitrag #6
RE: Messwerte im Array
Und wie kann ich das so realisieren, das der alle arrays füllt, ich stehe gerade total auf dem Schlauch
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2020, 13:07
Beitrag #7
RE: Messwerte im Array
13:05:49.065 -> Wert 1: 11.40
13:05:49.065 -> Wert 2: 11.50
13:05:49.065 -> Wert 3: 11.50
13:05:49.065 -> Wert 4: 11.60
13:05:49.065 -> Wert 5: 11.70
13:05:49.065 -> Wert 6: 11.70
13:05:49.065 -> Wert 7: 11.70
13:05:49.065 -> Wert 8: 11.70
13:05:49.065 -> Wert 9: 11.80
13:05:49.100 -> Wert 10: 11.90
13:05:49.100 -> Höchste Werte:
13:05:49.100 -> 11.80
13:05:49.100 -> 11.90
13:05:49.100 -> Tiefste Werte:
13:05:49.100 -> 11.40
13:05:49.100 -> 11.50
13:05:49.100 -> Ergebnis Addition:
13:05:49.100 -> 69.90
13:05:49.100 -> Durchschnitt:
13:05:49.100 -> 11.65


Das sind meine Ergebnisse im seriellen Monitor, das kommt aber ja hin, das sieht mir nicht nach zufälligen Werten aus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2020, 13:11
Beitrag #8
RE: Messwerte im Array
So nimmt er aber alle Werte oder?
Code:
for (int i = 0; i <= 10; i++)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Zweidimensionales Array Bitklopfer 15 951 09.06.2021 14:45
Letzter Beitrag: GuaAck
  Auf Array einer Klasse zugreifen Nichtraucher 16 1.455 25.11.2020 20:26
Letzter Beitrag: Tommy56
  Verständnisfrage 2D Array hugofant 2 629 06.10.2020 07:35
Letzter Beitrag: hugofant
  Array Werte in einen String ChriscoGT 3 1.313 12.05.2020 15:41
Letzter Beitrag: Tommy56
  Array Harry 6 1.248 03.04.2020 20:06
Letzter Beitrag: Tommy56
  Vorlage für Char Array über Serielle Schnittstelle Luis90 2 1.370 08.03.2020 18:05
Letzter Beitrag: hotsystems
  Bit Array Groomit 3 1.140 24.01.2020 19:27
Letzter Beitrag: Tommy56
  atof array ausgeben Pet 6 2.215 27.11.2019 13:12
Letzter Beitrag: Pet
  wie kann ich ausgangspins aus einem array steuern? uwe.z 4 1.612 04.11.2019 21:46
Letzter Beitrag: Holzauge
  Falsche Werte im Array semmelsamu 6 1.669 27.10.2019 18:45
Letzter Beitrag: semmelsamu

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste