Show Posts
Pages: 1 ... 5 6 [7] 8 9 ... 18
91  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 21, 2013, 11:47:25 am
Quote
Das geht nicht! Zumindest nicht mit lediglich einem Strommesser. Du kannst den ua. den Anschnittswinkel nicht berechnen.

Also kann ich nicht nur mit hilfe des ACS 712 den strom von einem Phasenanschnittregler messen.

Steht das 100% fest? Wenn ja muss ich nach alternativen suchen wie zB:

Quote
Im Sommer hatte ich Dir daher irgendwann mal vorgeschlagen, den KEMO-Regler wegzulassen, das Schalten/Regeln über ein Solid-State-Relais zu machen,  und die Heizleistung in Prozentschritten von 10% bis 90% mit einer Ein-Aus-Modulation im 10-Sekunden-Takt zu regeln.
92  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 21, 2013, 11:43:36 am
Ja, schuldigung, wie es so aussieht war das nur die lösung für Sinus. smiley

Der Nullpunkt hält sich bei 0 und springt auch nicht rum. (evt. kleine abweichungen)

Nun habe ich das ganze mit dem Kemo M028 der wohl ein Phasenanschnittregler ist ausprobiert und der sketch funktioniert nicht.

1. Der wert springt in einem bestimmten bereich rum, anstatt wie vorher vllt alle 2 sec sich minimal zu ändern

2. Der Wert ist falsch

es wurde zB. etwas um den wert 1000W angezeigt, gemessen habe ich jetzt mit einem True RMS messgerät 150V Was Ja nach (U*U)/R (R = 16 ohm) 1400W ergibt.

Nun hat Uwe ja schon einen lösung vorgeschlagen:

Quote
Wenn Du die Leistung eines mit Phasenanschnittsteuerung geregelten Verbrauchers messen willst, dann mußt Du den quadatischen Mittelwert der Spannung bzw des Stroms aus den Momentanwerten berechen und dann Strom und Spannung multiplizieren. Bei ohmschen Verbrauchern mußt Du das nur einmal machen, wenn Du die Nennleistung/den Nennstrom kennst. Die Spanung ist dann Phasengleich mit dem Strom und steht im gleichen Verhältnis wie momentane der Effektivwert des Stromes zum Nennstrom.

Du hattest ja schon mal meinen sketch kommentiert:
Code:
uint32_t sum2=0;
     uint16_t n=0;
     uint32_t StartTime, StopTime;
     int16_t adc;
     uint32_t avrg=0xFFFF;
     float I;
  
     StartTime=millis()+1;
     StopTime=StartTime+MEAS_INT;
     while(StartTime>millis());  // Wir warten bis eine neue Millisekunde anfängt...
     while(StopTime>millis()) // Dann summieren wir bis zur StopTime
  {
     adc=(MEDIAN-analogRead(ACS_ADC)); // die Differenz zum Mittelwert
     sum2+=(uint32_t)adc*adc;                 // wird quadriert und aufsummiert
     n++;
  }
  if (n>0)
  {
    avrg=sqrt(sum2/n);   // ... und am Ende die Wurzel aus dem Durchschnitt der Quadrate
  }

  I=(float)avrg*5/(K_ACS*1024);
  W =(I*I)* R; // R=16 Ohm

Nun schaffe ich es aber nicht anhand dieses Vorschlags den sketch zu ändern und bitte euch drum und es mir zu erklären.

Ich weiß zum Beispiel nicht wie man den Momentanwert berechnet und anschließend mit strom und spannung multiplizieren soll, wenn ich den strom ersmal errechnen muss und die spannung höhstens anhand von dem gemessenen Stroms und R ausrechnen kann.
93  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 21, 2013, 09:26:41 am
Oder ist es Unmöglich mit dem ACS 712 den Wechselstrom von einem Phasenanschittregler zu messen?
94  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 21, 2013, 07:42:19 am
Och mensch warum schweift das denn jetzt wieder in eine andere richtung

uwefed hatte doch schon einen anreiz gegeben:

Quote
Wenn Du die Leistung eines mit Phasenanschnittsteuerung geregelten Verbrauchers messen willst, dann mußt Du den quadatischen Mittelwert der Spannung bzw des Stroms aus den Momentanwerten berechen und dann Strom und Spannung multiplizieren. Bei ohmschen Verbrauchern mußt Du das nur einmal machen, wenn Du die Nennleistung/den Nennstrom kennst. Die Spanung ist dann Phasengleich mit dem Strom und steht im gleichen Verhältnis wie momentane der Effektivwert des Stromes zum Nennstrom.

Können wir nicht dabei bleiben. Ich kann das bloß nicht im programm umsetzen und bitte euch drum mir zu helfen.

Das das ganze gefährlich ist weiß ich, da bastelt auch ein anderer Elektriker dran rum.

An eine alternative zum Kemo will estmal nicht denken.

Ich will doch nur mit dem ACS712 Richtig den strom messen und ihn anschließend über die Formel (I*I)*R=P in watt umwandeln.

Bitte ändert doch einfach die messformel so das sie mit dem phasenanschnittregler funktioniert und erklärt sie mir.

95  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 21, 2013, 06:21:51 am
Quote
MIt R kommst noch weit bei einer Phasenanschnittssteuerung. Es handelt sich hier nicht mehr um einen rein ohmschen Widerstand.

Meinst du nicht weit? Warum ist die Heizung kein rein ohmscher Wiederstand?

Quote
Technische Geräte sollte man nicht überlasten, das kann zu schweren Fehlfunktionen oder zum Defekt führen.

Ich überlaste den Kemo nicht da ich garnicht die maximale Leistung erreiche.

Der Kemo reguliert auch nur von 10-90%. Ich dachte mir da das ja funktioniert und das andere kompliziert zu messen ist lasse ich den Kemo.

Nun fällt aber auf das der Kemo ja ein Phasenanschnittregler ist und mein sketch wohl nur für normale Sinus-Schwingungen ausgelegt ist.

Jetzt hat uwefed einen lösungsvorschlag gemacht den ich nicht umsetzen kann und euch nach hilfe frage.
96  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 21, 2013, 02:44:01 am
Gut dann ist der Fehler ja schon mal gefunden. Danke

Quote
Junge, Du machst uns verrückt

Tut mir wirklich leid. Ich hatte das ganze mit dem Wechselstrom und Phasenanschnitt nicht so in der Schule und im internet ist das auch sehr kompliziert umschrieben.

Hier nochmal der Rechenteil im sketch:

Code:
uint32_t sum2=0;
     uint16_t n=0;
     uint32_t StartTime, StopTime;
     int16_t adc;
     uint32_t avrg=0xFFFF;
     float I;
  
     StartTime=millis()+1;
     StopTime=StartTime+MEAS_INT;
     while(StartTime>millis());  // Wir warten bis eine neue Millisekunde anfängt...
     while(StopTime>millis()) // Dann summieren wir bis zur StopTime
  {
     adc=(MEDIAN-analogRead(ACS_ADC)); // die Differenz zum Mittelwert
     sum2+=(uint32_t)adc*adc;                 // wird quadriert und aufsummiert
     n++;
  }
  if (n>0)
  {
    avrg=sqrt(sum2/n);   // ... und am Ende die Wurzel aus dem Durchschnitt der Quadrate
  }

  I=(float)avrg*5/(K_ACS*1024);
  W =(I*I)* R; // R=16 Ohm

Das ganze wurde schon mal von michael_x kommentiert.

Quote
Momentanwerten berechen

passiert das bei mir bereits irgenwo?

Quote
und dann Strom und Spannung multiplizieren

wo soll ich den den Stromwert herbekommen den muss ich doch erstmal hiermit heraufinden und spannung kann ich nicht messen.(höhstens R*I kann ich rechnen)

Könntest du bitte deine vorgeschlagenen änderungen am sketch vornehmen und sie auch kommentieren?

Gruß

strohhirn
97  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 20, 2013, 02:19:30 pm
Ist alles gut gekühlt. Und das Modul funktionier auch.

Das problem ist das der Wert falsch ist und er rumspringt, was beides vorher nicht war.
98  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 20, 2013, 02:08:51 pm
Heute nicht mehr aber morgen vllt.
99  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 20, 2013, 01:55:27 pm
Eigentlich nicht.
Ich reguliere die Heizung mit dem Kemo M028.
http://www.kemo-electronic.de/datasheets/m028.pdf

Aber das hat alles schon mit der 1kW Heizung funktioniert und auf einmal nichtmehr.
Der wert springt wild rum und ist falsch.
100  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 20, 2013, 01:15:53 pm
Es gibt 3 Versionen davon und ich habe die 20A Version.
101  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 20, 2013, 01:02:12 pm
Was meinst du mit getaktet?

102  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 20, 2013, 12:29:00 pm
Logischerweise auch ein ohmscher wiederstand.
103  International / Deutsch / Re: Mit ACS 712 Wechselstrom messen (dringend) on: September 20, 2013, 12:17:47 pm
Wie muss ich dann jetzt meine Formel ändern?

Außerdem hat das ganze doch recht präzise mit einer 1kW Heizung funktioniert. (das ist doch wie die 3kW Heizung ein ohmscher Wiederstand)
104  International / Deutsch / Mit ACS 712 Wechselstrom messen on: September 20, 2013, 12:00:57 pm
Hallo,

vor einiger Zeit dachte ich das es mir gelungen sei mit dem ACS 712 Wechselstrom ziemlich genau zu messen.
http://forum.arduino.cc/index.php?topic=143265.0

Da habe ich es den sketch mit einem 1kW Wasserkocher ausprobiert und es funktionierte ziemlich präzise

Nun habe ich das ganze an einer 3kW Heizung ausprobiert und nichts ist wie es war. smiley-cry

Hier mal der sketch:

Code:
#include <Bounce.h>
#include <LiquidCrystal.h>
#define MEDIAN   512
#define MEAS_INT 20  
#define ACS_ADC  A0
#define K_ACS    0.1028    //für 20A version

uint8_t RelaisKnopf2 = 24;
uint8_t buttonState_k2 = 0;
Bounce bouncer_k2 = Bounce( RelaisKnopf2, 5 );


uint8_t k[] = {A15, A14, A13, A12};
int backLight = 53;
LiquidCrystal lcd(39, 41, 43, 45, 47, 49, 51);

int ledPin = 12;// LED connected to digital pin 12
int fade;
int poti = A7;
void setup()  {
  pinMode(backLight, OUTPUT);
  digitalWrite(backLight, HIGH);
  lcd.begin(20, 4);
  
  uint8_t i;
  for (i = 0; i < 4; i++) {
    pinMode(k[i], OUTPUT);
    digitalWrite(k[i], LOW);
  }
  
  
  analogReference(DEFAULT);
  analogRead(ACS_ADC);
  
  Serial.begin(9600);
 
 int myEraser = 7;             // this is 111 in binary and is used as an eraser
 TCCR1B &= ~myEraser;   // this operation (AND plus NOT),  set the three bits in TCCR2B to 0
 
 int myPrescaler = 2;         // this could be a number in [1 , 6]. In this case, 3 corresponds in binary to 011.  
 TCCR1B |= myPrescaler;  //this operation (OR), replaces the last three bits in TCCR2B with our new value 011

}

void loop()  {
  
  if ( bouncer_k2.update() ) {  //Relais2
     if ( bouncer_k2.read() == HIGH) {
       if ( buttonState_k2 == LOW ) {
          digitalWrite(k[1], HIGH);
         buttonState_k2 = HIGH;
       } else {
          digitalWrite(k[1], LOW);
         buttonState_k2 = LOW;
      }
    }
  }
  
fade = analogRead (poti);
fade = map(fade, 0 , 1023, 0, 255);

  analogWrite(ledPin, fade);
  fade = map (fade,0,255,100,0);
  messwertAnzeigen(0,0,fade,3);
  
  
  lcd.setCursor(0, 1);
  lcd.print("I=");
  uint32_t sum2=0;
  uint16_t n=0;
  uint32_t StartTime, StopTime;
  int16_t adc;
  uint32_t avrg=0;
  float I;
  
 
  
  StartTime=millis()+1;
  StopTime=StartTime+MEAS_INT;
  while(StartTime>millis());
  while(StopTime>millis())
  {
    adc=(MEDIAN-analogRead(ACS_ADC));
    sum2+=(uint32_t)adc*adc;
    n++;
    
  }
  if (n>0)
  {
    avrg=sqrt(sum2/n);
  }

  I=(float)avrg*5/(K_ACS*1024);
  lcd.setCursor(2, 1);
  lcd.print(I);
  lcd.print("A   ");
  
  int W;
  W= (I*I) * 16;
  lcd.setCursor(0, 2);
  lcd.print(W);
  lcd.print("W    ");
}

void messwertAnzeigen(int spalte, int zeile, int wert, int stellen)
{
  char buf[7];
  lcd.setCursor(spalte,zeile);
  itoa (wert,buf,10);
  lcd.print(wert);  
  for (int i=0;i<stellen-strlen(buf);i++)
  lcd.print(" ");
    
}

Der Wert springt nun wild rum in einem bestimmten bereich um den eigentlichen wert.
Das war vorher nicht so, da wurde der wert minimal jede 2 sec geändert oder garnicht.

Außerdem sind die werte die rauskommen vollkommen falsch.

ich habe z.B mal notiert:

A = 8,07 und Leistung somit 1041W (die formel wie ich es in Watt umrechne (R=16Ohm) (I*I)*R=P)

Gemessen habe ich aber 113V Wass ja denn ca. 800W wären. Es war zwar kein RMS-Messgerät, aber ein normales Messgerät kann doch nicht so falsch liegen.


Bitte helft mir diese beiden probleme zu lösen.
Was ist auch einmal falsch.

Gruß

strohhirn


 
105  International / Deutsch / Re: Programm blockiert Knöpfe on: September 19, 2013, 01:17:31 pm
Hey, das klappt, danke, genau sowas wollt ich smiley-grin wusste bloß nicht wie.

Pages: 1 ... 5 6 [7] 8 9 ... 18