Strom2HoTT

Status
Nicht offen für weitere Antworten.

Ziege-One

Erfahrener Benutzer
#41
Hi
in der Sensor.h

#define COEF_Volt 510 // /10mV pro Digi neue Scale mv *10 also für 26,6mV 266 eintragen
#define COEF_Current 915 // /10mA pro Digi
#define OffsetVolt 0 // Digi Offset offset in mv für 2,5V 2500 eingeben
#define OffsetCurrent 0 // Digi Offset

damit die werte übernommen werden in der Message.cpp

// Test for 1st time init of the Arduino (First power on)
int test = read_eprom(adr_eprom_test);
if (test != 123)
{
write_eprom(adr_eprom_test,123);

die 123 ändern ist egal was nur an beiden Stellen

ps wenn du den wert in der Funke editierst: oben unten ist +-1 links rechts ist +-10 damit gehts schneller
 
#42
Danke, hab ich auch gefunden. Hatte nur das Problem dass er es nicht übernehmen wollte. Hab dann einfach immer eeprom gelöscht und neu geladen. Dann hat er meine Werte auch übernommen. Bisher sieht es recht gut aus.
 
#43
Es funktioniert alles. Habe die Platine als Huckepack-Platine für den Arduino gefräst. Funktioniert super. Hast du bei dem ACS noch die Kondensatoren für VCC oder ViOut verbaut? Die habe ich bis jetzt noch nicht drin. Ansonsten ist der Sensor erstmal für 100A und 14S ausgestattet.
Hier die Fotos.
IMG_1636.JPG IMG_1637.JPG
 
#45
Hab gesehen, dass du in deinem neuen Programmcode das schieben der 10 Werte geändert hast und statt dessen immer Blöcke mit 50 Werte liest und dann den Durchschnitt bildest. Wie schnell erfolgt die Messung?
 
#47
Ja hab die Testsoftware genutzt. Erster Test war ohne Tiefpass oder sonstiger Beschaltung eine Abweichung von 80mAh zwischen Ladegerät und Sensor. Hab aber auch noch den 100B Sensor drin. Layout kann ich einstellen, wenn es komplett fertig ist. Was mir aufgefallen war ist, das der Sensor nach dem flashen erstmal in der Anzeige immernoch 560A oder so anzeigt. Im Programmiermenü in den Telemetrieeinstellungen stand der richtige Strom. Ich musste da erst einmal die Werte ändern und alle neu starten. Danach ging es.
Im rechten Bereich der Anzeige ist noch eine Anzeige für Füllstand. Die zeigt bei mir Werte von 0-60.000 an. Hast du n Tip wo man die Anpassen kann? Würde die dann einfach auf die eingestellte Warnschwelle einstellen.

IMG_1628.JPG
 
#49
So wird der Sensor bei mir angezeigt. Ist die 2. Seite. Erkannt wird er als GAM glaube ich.
Ja das stellt die verbrauchten mAh dar, ist aber ein wenig ungünstig, da die Warnschwelle bei 1600mAh kommt. Deswegen war meine Idee den Bereich kleiner zu wählen, damit man dort die mAh als Füllstand sehen kann. Also der Bereich z.B. von 0 bis Warnschwelle.
 
#51
Ok, Schade. Was mir bei meinem Test aufgefallen war, dass der maximale Strom vom Gefühl her zu hoch war. Kann vielleicht an meiner Hardwaremäßigen Strombeschaltung liegen. Ich denke, man sollte den maximalen Strom noch ein wenig länger betrachten. Wir haben ja 5ms pro Logging. Wenn da mal kurz ne Spitze rein kommt, kann die den Wert recht schnell versauen. Vielleicht macht es da mehr Sinn, das Logging des maximalen Stroms über einen längeren Zeitraum zu beobachten. Es interessiert ja eher der Strom bei Vollgas und nicht die kurze Spitze beim Anlaufmoment. Ich sehe hier eher Durchschnittszeiten von >100ms.
Oder wie siehst du das?
 
#52
Hatte mir das ungefähr so gedacht

unsigned int array_counter; //Array-Counter für Stromwerte anlegen
float current_array[10]; //Array für Stromwerte anlegen
float current_array_sum; //Summe aller Array-Stromwerte
...
...
...
...
array_counter+=1; //Array-Counter um 1 hochzählen
if(array_counter>9||array_counter<0) //Überprüfen ob Counter >9, dann wieder bei 0 anfangen
{
array_counter=0;
}
current_array[array_counter]=Current; //Wert in Array schreiben
current_array_sum=0; //Strom-Summe auf 0 setzen

for(uint8_t j=0; j<=9;j++) //Alle 10 Array-Werte addieren
{
current_array_sum+=current_array[j];
}

current_array_sum=current_array_sum/10; //Werte durch 10 teilen

// Min/Max
if (current_time > 5000)
{
if (Volt < Volt_min) Volt_min = Volt;
//if (Current > Current_max) Current_max = Current;
if (current_array_sum > Current_max) Current_max = current_array_sum; //Werte vergleichen.
}
 

Ziege-One

Erfahrener Benutzer
#53
Ja so könnte es gehn.
Kannst du ja mal testen und berichten ;)

Fehlt auch noch was wenn der offset benutzt wird und der Wert unter offset geht (also kleiner 0) gibt es auch Mischmasch :mad: in der Anzeige

If current < 0 then current = 0;

Das solte es beheben

Heute aben werde ich github mal auf den neusten Stand bringen :cool:

PS womit hast du das layout gemacht (Daten für die CNC)
 
Zuletzt bearbeitet:
#54
Hab ich mir überlegt und dann in Autocad gezeichnet, da ich beim letzten mal Probleme mit eagle hatte. Der kam mit meinem 1mm Fräser nicht klar und dann ist zu viel stehen geblieben oder wurde nicht richtig gefräst.
 
#58
Da haste ja meine Idee gut umgesetzt:cool: Ist dann einfach schneller zu löten. Das Glätten des Spitenstroms war aber jetzt noch nicht im neuen Code, oder? Nur die Änderungen die ich in dem Testcode schon hatte. Ich probiere die Tage mal die Änderung beim Spitzenstrom aus.
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten