*gelöst* HB-UNI-Sen-CURRENT - Zu geringe Messwerte

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Spezialtrick
Beiträge: 14
Registriert: 06.11.2018, 19:54
Hat sich bedankt: 11 Mal

Re: HB-UNI-Sen-CURRENT - Zu geringe Messwerte

Beitrag von Spezialtrick » 27.09.2022, 23:16

HMSteve hat geschrieben:
27.09.2022, 21:53
Sqrt(2) stimmt erstmal nur sicher bei Sinus, dann ist Vp=1.414 Vrms, aber das brauchen wir hier gar nicht.

Ins Datenblatt des SCT013-30 geschaut: Windungsverhaeltnis 1800:1, RL=62 Ohm, also hast Du 1.03V RMS bei 30A RMS (das misst ein taugliches Zamgenamperemeter) bzw entsprechend weniger bei kleinerem Teststrom gem. Dreisatz. Ohmsche Last, um je nach Messgeraet abweichende Messfehler wg Spikes etc im Kurvenverlauf auszuschliessen.
Wenn Deine Testlast also bspw. 3A zieht, sollte der SCT 103mV liefern. Wenn Du 103mV DC an den ADC legst, sollte Dein Device entsprechend 3A anzeigen.
Je kleiner Deine Teststrom und damit die Spannung, umso mehr stoeren bswp Einstreuungen ueber lange Leitungswege vor dem ADC, deswegen finde ich 12W bei vermuteten 230V als ersten Test auch unglücklich klein.
Noch kurz für mein Verständnis zurück zum ADS1115. Wenn ich im Sketch

Code: Alles auswählen

ads1115.setGain(GAIN_TWO); // 2x gain   +/- 2.048V  1 bit = 1mV
angebe und dann 2.048V auf A1 und A2 des ADS1115 anlege, sollte ich im Serial Monitor bzw. Plotter den Maximalwert erhalten oder?

Misst der ADS1115 bei ca. 2,048V dann korrekt?

Code: Alles auswählen

22:49:27.463 -> Differential 0_1: 32767(32765mV)

Weitergehend habe ich mal einen SCT013-030 samt Multimeter an die Phase meines Backofens gehangen und zusätzlich mit einem Zangenamperemeter gemessen. Bei 9,46A auf dem Zangenamperemeter gab mein Multimeter 362,3mV aus. Nach Dreisatz sollten es 324,7mV. Also eine Differenz von 37,6mV. Das dürfte wohl noch im Rahmen sein, oder?

Um die Werte mit denen abzugleichen, die in der Homematic ankommen, habe ich das ganze nochmals parallel am HB-UNI-Sen-CURRENT gemessen. Bei 9,39A auf dem Zangenamperemeter und 352,3mV am Multimeter wurden in der Homematic lediglich 2,83A gemeldet.

So langsam bin ich komplett verwirrt...

HMSteve
Beiträge: 537
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 13 Mal
Danksagung erhalten: 95 Mal

Re: HB-UNI-Sen-CURRENT - Zu geringe Messwerte

Beitrag von HMSteve » 28.09.2022, 10:31

Wie gesagt wuerde ich systematisch mit bekannter Gleichspannung am ADC und Debug-Ausgaben im Sketch den Fehler suchen. In Jérômes Link finden sich auch gute Beispielsketches, so kannst Du erstmal von der AskSin-Komplexitaet abstrahieren und Deine Mess-Hardware testen.
Was auffaellt: Du erhaeltst ca 30% des erwarteten Messwertes. Jérôme hat ja den Sensortyp als Config-Parameter ausgelegt. Hast Du geprueft, dass Du da den 30A- und nicht den 100A-Sensor hinterlegt hast?

Viele Gruesse,
Stephan

Spezialtrick
Beiträge: 14
Registriert: 06.11.2018, 19:54
Hat sich bedankt: 11 Mal

Re: HB-UNI-Sen-CURRENT - Zu geringe Messwerte

Beitrag von Spezialtrick » 29.09.2022, 23:08

Das habe ich heute gemacht. Musste mir ja erstmal Glühbirnen beschaffen. :P

Ich habe mir diesen Sketch aus Jérômes Link zusammen kopiert:

Code: Alles auswählen

#define ADS1115_CONVERSIONDELAY (1)

#include <Wire.h>
#include <Adafruit_ADS1X15.h>


Adafruit_ADS1115 ads;
  
const float FACTOR = 30; //30A/1V
const float multiplier = 0.0625F;
 
void setup()
{
  Serial.begin(9600);
 
  ads.setGain(GAIN_TWO);        // ±2.048V  1 bit = 0.0625mV
  ads.begin();
}
void printMeasure(String prefix, float value, String postfix)
{
 Serial.print(prefix);
 Serial.print(value, 3);
 Serial.println(postfix);
}
 
void loop()
{
 float currentRMS = getCorriente();
 float power = 230.0 * currentRMS;
 
 printMeasure("Irms: ", currentRMS, "A ,");
 printMeasure("Potencia: ", power, "W");
 delay(1000);
}
 
float getCorriente()
{
 long tiempo = millis();
 long rawAdc = ads.readADC_Differential_0_1();
 long minRaw = rawAdc;
 long maxRaw = rawAdc;
 while (millis() - tiempo < 1000)
 {
   rawAdc = ads.readADC_Differential_0_1();
   maxRaw = maxRaw > rawAdc ? maxRaw : rawAdc;
   minRaw = minRaw < rawAdc ? minRaw : rawAdc;
 }
  maxRaw = maxRaw > -minRaw ? maxRaw : -minRaw;
  float voltagePeak = maxRaw * multiplier / 1000;
  float voltageRMS = voltagePeak * 0.70710678118;
  float currentRMS = voltageRMS * FACTOR;
  return(currentRMS);
}

//float getCorriente()
//{
// float voltage;
// float corriente;
// float sum = 0;
// long tiempo = millis();
// int counter = 0;
// 
// while (millis() - tiempo < 1000)
// {
//   voltage = ads.readADC_Differential_0_1() * multiplier;
//   corriente = voltage * FACTOR;
//   corriente /= 1000.0;
// 
//   sum += sq(corriente);
//   counter = counter + 1;
//  }
// 
// corriente = sqrt(sum / counter);
// return(corriente);
//}
Sodann habe ich mit Multimeter am SCT013-030, Zangenamperemeter an der Phase, Messsteckdose und dem Sketch jeweils eine 12,5w LED, eine 42w Glühbirne und eine 60w Glühbirne durchgemessen. Nachfolgend die Ergebnisse:

12,5w LED:
Multimeter: 3,43mV
Zangenamperemeter: 0,051A
Messsteckdose: 13w
Sketch: 3,79w und 0,017A

42w LED:
Multimeter: 7,23mV
Zangenamperemeter: 0,179A
Messsteckdose: 45w
Sketch: 14,58w und 0,056A

60w LED:
Multimeter: 9,73mV
Zangenamperemeter: 0,243A
Messsteckdose: 60w
Sketch: 12,573w und 0,055A


Wenn ich das nun per Dreisatz durchrechne, passen die gemessenen Werte der RMS Spannung am Multimeter fast zur gemessenen Stromstärke an der Phase:

1,03V 30A
0,034333333V 1A
3,43333E-05V 0,001A
12,5w 0,001751V 0,051A
42w 0,006146V 0,179A
60w 0,008343V 0,243A

Demnach misst der SCT013-030 also richtig. Ich gehe daher davon aus, dass die ADS1115 defekt oder eher gefälscht sind... Meine ADS1115 sehen vom Layout genauso aus, wie die gefälschten unter dem nachfolgenden Link:

https://forums.adafruit.com/viewtopic.php?f=19&p=853293

Ich habe bereits mit dem Händler Kontakt aufgenommen und bekomme Neue gesendet. Traurig, dass es ein recht großer und bekannter Händler ist... Gleichzeitig habe ich aber auch weitere ADS1115 von anderen Händlern bestellt. Ich hoffe, dass ich wenigstens zwei funktionierende ADS1115 zubekomme. Ich füge euch noch zwei Fotos an, damit keiner auf diese Boards reinfällt...
tempImageMLpJlW.gif
tempImagedeaOIB.gif
Was auffaellt: Du erhaeltst ca 30% des erwarteten Messwertes. Jérôme hat ja den Sensortyp als Config-Parameter ausgelegt. Hast Du geprueft, dass Du da den 30A- und nicht den 100A-Sensor hinterlegt hast?
Daran habe ich gedacht. 8)

Spezialtrick
Beiträge: 14
Registriert: 06.11.2018, 19:54
Hat sich bedankt: 11 Mal

Re: HB-UNI-Sen-CURRENT - Zu geringe Messwerte

Beitrag von Spezialtrick » 30.09.2022, 16:50

Kurz vor der Verzweiflung hat es nun doch noch funktioniert...

Ich habe nun 10 ADS1115 bestellt und getestet. Die letzten 3 haben dann tatsächlich die gewünschte Funktionalität. :x

Alle anderen geben lediglich 30% der erwarteten Messwerte aus. Funktioniert hat letztlich die Nachlieferung von AZ-Delivery. :roll:

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: *gelöst* HB-UNI-Sen-CURRENT - Zu geringe Messwerte

Beitrag von jp112sdl » 30.09.2022, 18:02

Das ist eine echt große Ausfallquote.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

HMSteve
Beiträge: 537
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 13 Mal
Danksagung erhalten: 95 Mal

Re: *gelöst* HB-UNI-Sen-CURRENT - Zu geringe Messwerte

Beitrag von HMSteve » 30.09.2022, 18:24

Oh je, ich hab auch noch zwei ungetestet herumliegen, gut, zu wissen, dass Misserfolg wahrscheinlich ist. Aber bald ist ja Winter und vielleicht Zeit, eine Platine zu machen, sofern die ADS bei einem der verlässlichen Distributoren lieferbar sind…

Spezialtrick
Beiträge: 14
Registriert: 06.11.2018, 19:54
Hat sich bedankt: 11 Mal

Re: *gelöst* HB-UNI-Sen-CURRENT - Zu geringe Messwerte

Beitrag von Spezialtrick » 01.10.2022, 11:44

Bin einfach froh, dass ich doch noch funktionierende Chip erhalten habe...

Vielleicht würde es ja Sinn machen, eine Liste von Händlern, die funktionierende bzw. defekte Chips geliefert haben, ins Git aufzunehmen?

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“