Hallo,
ich möchte gerne meine gemessenen Stromwerte aus einem Array sortiert anzeigen lassen im seriellen Monitor, jedoch geht es nur wenn es Int, also Ganzzahlen sind und leider irgendwie nicht bei Float also Gleitkommazahlen wie ich es gerne haben möchte, daher meine Frage ob und was ich im Code ändern muss.
Code:
//-------- Bibliotheken --------//
#include <LiquidCrystal_I2C.h> //Version 1.0.7
#include <Wire.h>
#include <Adafruit_INA219.h> //Version 1.0.9
#include <Adafruit_BusIO_Register.h> //Version 1.3.2
#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 = 50;
//-------- 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)
{
{
//-------- Mittelwert-Variablen --------//
const int Messungen_Strom = 20; // Anzahl Messungen - Strom
float Array_Strom[Messungen_Strom]; // Array für Messwerte - Strom
float Durchschnitt_Strom = 0; // Durchschnittswert - Strom
aktuelleZeit1 = millis();
{
if (aktuelleZeit1 - vorherigeZeit1 >= interval1)
{
vorherigeZeit1 = aktuelleZeit1;
//-------- Variablen für Strom, Spannung und Leistung --------//
float Strom_mA = 0;
//-------- Deklaration der Variablen vom INA219 Strommesssensor --------//
Strom_mA = ina219.getCurrent_mA();
//-------- Ausgabe von Daten im seriellen Monitor --------//
{
Serial.print("Strom gemessen: ");
Serial.print(Strom_mA);
Serial.println(" mA");
Serial.println("");
//-------- Mittelwert bliden - Strom --------//
//---- Werte einlesen ----//
for (int i = 0; i < Messungen_Strom; i++)
{
Array_Strom[i] = ina219.getCurrent_mA();
}
//---- Werte aufaddieren ----//
for (int i = 0; i < Messungen_Strom; i++)
{
Durchschnitt_Strom = Durchschnitt_Strom + Array_Strom[i];
}
//---- Summe durch Anzahl ----//
Durchschnitt_Strom = Durchschnitt_Strom / Messungen_Strom;
//---- Ausgabe im seriellen Monitor ----//
// 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.print("Wert 11: ");
// Serial.println(Array_Strom[10]);
// Serial.print("Wert 12: ");
// Serial.println(Array_Strom[11]);
// Serial.print("Wert 13: ");
// Serial.println(Array_Strom[12]);
// Serial.print("Wert 14: ");
// Serial.println(Array_Strom[13]);
// Serial.print("Wert 15: ");
// Serial.println(Array_Strom[14]);
// Serial.print("Wert 16: ");
// Serial.println(Array_Strom[15]);
// Serial.print("Wert 17: ");
// Serial.println(Array_Strom[16]);
// Serial.print("Wert 18: ");
// Serial.println(Array_Strom[17]);
// Serial.print("Wert 19: ");
// Serial.println(Array_Strom[18]);
// Serial.print("Wert 20: ");
// Serial.println(Array_Strom[19]);
sortieren(Array_Strom, Messungen_Strom);
Serial.print("Sortierte Werte: ");
for (int i = 0; i < Messungen_Strom; i++) {
Serial.println(Array_Strom[i]);
Serial.print(" ");
}
Serial.println("");
Serial.print("Max Number: ");
Serial.print(Array_Strom[19]);
Serial.println("");
Serial.print("Min Number: ");
Serial.print(Array_Strom[0]);
Serial.println("");
}
}
}
}
}
void sortieren(int a[], int size)
{
for (int i = 0; i < (size - 1); i++)
{
for (int o = 0; o < (size - (i + 1)); o++)
{
if (a[o] > a[o + 1])
{
int t = a[o];
a[o] = a[o + 1];
a[o + 1] = t;
}
}
}
}