-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 35

Thema: brauche ziemlich genaue Nulldurchgangsdetektion bei 230V~

  1. #1
    Benutzer Stammmitglied Avatar von Taramtamtam
    Registriert seit
    06.12.2011
    Ort
    Thüringen
    Alter
    39
    Beiträge
    40

    Frage brauche ziemlich genaue Nulldurchgangsdetektion bei 230V~

    Anzeige

    Hallo,

    ich möchte mit einem ATMega32 mit 16MHz - Quarz eine induktive Last (Motor) bei 230V Wechselstrom schalten.
    Dazu habe ich mir eine Relaiseplatine mit Transistor und Diode gebaut. Das funktioniert, wenn ich es ohne
    den Motor schalte, einwandfrei.

    Außer dem Motor habe ich auch ein recht großes GLCD und mehrere DS1621- Temperatursensoren an dem Atmega.

    Mache ich den Motor an das Relaise, "stürzt" mein Controler oft beim abschalten des Motors ab - wenn nicht,
    funktioniert für ca. 1 Sekunde der I²C-Bus nicht mehr richtig (ich sehe das, weil nach dem abschalten des Motors,
    die Temperaturen auf dem Display die unmöglichsten Werte annehmen).

    Ich habe mir nun überlegt, den Motor nur dann zu schalten, wenn die Phase der Netzspannung möglichst genau auf 0 ist,
    um die Spitzen der Netzspannung beim ein- und ausschalten zu vermeiden.

    Dazu habe ich vom L1 der Netzspannung einen Draht über einen 1 MOhm-Wiederstand an PD2 und
    einen über 1 MOhm-Wiederstand an GND gelegt.

    Folgendes Programmsegment kümmert sich um das "Pahsenkorekte" schalten der Relaise :

    Code:
    void schalte_bei_null(volatile byte *_port, byte pin, byte neuer_zustand) 	
      // wartet auf Phasennulldurchgang und
      // schaltet bei Phasennulldurchgang port->pin auf Zustand(1/0)
    {
    	if (neuer_zustand)                                
    	{                                                       // EINSCHALTEN  
    		cli();                                          // interrupts ausschalten, dass die Funktion nicht vom Timer unterbrochen werden kann 
    		while(!(PIND & (1<<PIND2))); 	 // warten, bis eine untere Halbwelle auf 0 geht
    		while(PIND & (1<<PIND2)); 	 // warten, bis eine obere Halbwelle auf 0 geht
    		asm volatile ("nop"::);                // noch kurz warten, weil 0 am PinD2 nicht genau 0 der Netzspannung ist
    		asm volatile ("nop"::);
    		asm volatile ("nop"::);
    		*_port |= (1<<pin);                  // entsprechenden Pin einschalten
    	}
    	else
    	{                                                       // AUSSCHALTEN  
    		cli();
    		while(!(PIND & (1<<PIND2))); 	 //warten, bis eine untere Halbwelle auf 0 geht
    		while(PIND & (1<<PIND2)); 	 //warten, bis eine obere Halbwelle auf 0 geht
    		asm volatile ("nop"::);
    		asm volatile ("nop"::);
    		asm volatile ("nop"::);
    		*_port &= ~(1<<pin);
    	}
    	sei();            // Interrupts wieder aktivieren...
    }

    Nun endlich meine Frage / mein Problem...

    Ich habe das Programm in den Controller übertragen und gestartet - es lief vorerst einwandfrei.

    nach einigen Streßtests ( über 20 Minuten mehrmals pro Minute an / und ausschalten ) habe ich jedoch bemerkt,
    daß der ATMega zwar nicht mehr abstürzt, jedoch das Problem mit dem I²C-Bus weiterhin oft auftaucht.

    Meine Vermutung ist, dass ich mit dem Programm nicht genau den Nullpunkt erwische.
    Ich habe kein Oszi oder ähnliche Geräte (Elektronik ist mein Hobby).

    Kann bitte jemand von euch tollen Leuten, die ihr hier alle seid, die Schaltung nachbasteln und
    durchmessen, wie viele
    Code:
    asm volatile ("nop"::);
    se ich einfügen oder wegnehmen muß,
    um GENAU den Phasennullpunkt der Netzspannung zu erwischen ?

    ATMega32 / 16MHz macht 62.5 ns pro "nop"

    Danke schonmal...
    Geändert von Taramtamtam (18.12.2011 um 15:19 Uhr) Grund: Rechenfehler

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    Ich denke, dass dein Problem, wegen unbekannter Schaltverzögerung des angeblich mechanischen Relais, unlösbar ist. Eine Lösung könnte ein rein elektronischer Schalter deines Motors sein (z.B. "solid state relay").
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Ich würde ein Solid State Relais (SSR) einbauen. Diese schalten genau beim Nulldurchgang. Es gibt keine Funkenbildung o.Ä.
    Dadurch gibt es keine Störungen o.Ä. das den Controller bzw die Busverbindung beeinflussen kann.
    Als Beispiel http://www.reichelt.de/Solid-State-R...2f36ca57e8fb18
    Es gibt aber auch welche für niedrigere Ströme, aber auch für höhere Ströme (ein oder dreiphasig).

    MfG Hannes

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Sehr oft genügt auch schon ein Snubber an dem Relaiskontakt der den Motor schaltet. Es wird die Funkenbildung und damit die dadurch entstehende Störung unterdrückt.
    http://www.dse-faq.elektronik-kompen...faq.htm#F.25.1
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    @ Taramtamtam

    ... und dann brauchst du dich nicht um Phasennullpunkt der Netzspannunges kümmern.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    52
    Beiträge
    1.819
    Dass es mit einem mechanischen Relais nicht möglich sein wird genau im Nulldurchgang zu schalten wurde schon gesagt, ebenso, dass dies mit manchen Solid-state Relais möglich ist. Will man Störungen vermeiden, wird man bei induktiven Lasten zweckmäßigerweise im Nulldurchgang des Stroms schalten, der nicht gleichzeitig mit dem Nulldurchgang der Spannung auftritt. Das ist insgesamt also schwierig durchzuführen, man müsste den Strom im Motorkreis zeitlich hochaufgelöst messen. Ein möglicher Weg zum Ziel wäre ein Thyristorschalter, der automatisch im Nulldurchgang des Stroms abschaltet. Auch das Konzept der Spannungsmessung der Netzspannung über hohe Widerstände direkt am Mikrokontroller finde ich fahrlässig, eine saubere glavanische Trennung (Optokoppler) sollte man sich unbedingt gönnen.
    Ich würde dem Vorschlag von Hubert G. zustimmen, den Störimpuls an der Quelle der Entstehung zu unterdrücken statt ihn verhindern zu wollen. Zusätzlich sollte man sich überlegen wie der Störimpuls auf den Stromkreis des MC eingekoppelt wird und dort noch nachbessern. Schließlich könnten auch andere Störimpulse über das Netz kommen und den MC stören, die Du nicht beeinflussen kannst.

  7. #7
    Benutzer Stammmitglied Avatar von Taramtamtam
    Registriert seit
    06.12.2011
    Ort
    Thüringen
    Alter
    39
    Beiträge
    40
    WOW... Vielen dank für die schnellen Antworten...

    Ich würde am liebsten auch die Störung an der Quelle beseitigen, aber ich habe keinerlei Daten zu dem Motor - er steckt
    in einem Gehäuse - ist ein elektrisches Ventil mit zwangsrückzug (Feder). Der Motor stellt das Ventil in eine Richtung, solange
    er Strom bekommt - und wenn nicht zieht die Feder das Ventil in Nullposition. Das ganze läuft mit 230V~.

    Sowas mit dem Schnubber hab ich mir ja auch erst überlegt - fehlen halt nur die Daten... Wie dimensioniert man sowas ?
    Der Motor dürfte 5 bis 15 Watt haben - mehr wird das nicht sein.

    Das Strom und Spannung bei induktiven Lasten nicht sync sind hatte ich wohl vergessn ...
    Aber wer macht nun die Störung ? Der Strom oder die Spannung ?

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    @ ranke

    Genau !

    Die Nullstromüberwachung ist vor allem beim Abschalten am wichtigsten, weil beim Eischalten: keine Spannung = kein Strom.

    Zitat Zitat von Taramtamtam Beitrag anzeigen
    Aber wer macht nun die Störung ? Der Strom oder die Spannung ?
    Abhängig von Einkopplung der Störung: Spannung kapazitätiv und Strom induktiv.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  9. #9
    Benutzer Stammmitglied Avatar von Taramtamtam
    Registriert seit
    06.12.2011
    Ort
    Thüringen
    Alter
    39
    Beiträge
    40
    Ok, ich war mal mutig...

    ich hab das Gehäuse geöffnet. Da steht am Motor unter anderem 5W / 5RPM.

    Kann mir jemand mit diesen Angaben sagen oder schreiben , wie ich den Motor richtig entstört kriege..?
    Wie müßte Hubert´s Snubber dimensioniert werden ? Und wirkt diese Entstörung nicht störend, wenn doch mal zufällig
    nicht an der Spitze sondern an einer anderen Stelle der Sinuskurve geschaltet wird ?

    MfG

  10. #10
    Benutzer Stammmitglied Avatar von Taramtamtam
    Registriert seit
    06.12.2011
    Ort
    Thüringen
    Alter
    39
    Beiträge
    40
    Zusätzlich sollte man sich überlegen wie der Störimpuls auf den Stromkreis des MC eingekoppelt wird und dort noch nachbessern. Schließlich könnten auch andere Störimpulse über das Netz kommen und den MC stören, die Du nicht beeinflussen kannst.
    Es handelt sich um eine Heizungssteuerung, die ich vor 3 Jahren mit einer CControl von Conrad gebaut hatte. Habe sie vor zwei Jahren wegen dem großen Grafikdisplay auf ATMega32 umgerüstet. Die Steuerung selber bezieht Ihre Spannung über ein Stabilisiertes 12V- Netzteil wo noch ein 5V Festspannungsregler mit nochmaliger Siebung und Stabilisierung (war damals ein Bausatz von Conrad, Reichelt oder ELV ??? ) dran ist. Das "Hängenbleiben" nach dem Schalten hatte ich bisher mit dem Watchdog des ATMega´s gelöst - nicht sehr schön - aber es ging halt so. Wenn der Controler hängen geblieben ist, hat ihn der Watchdog nach 2 sek. neu gestartet. - ich weiß, das macht man nicht... Naja

    Da ich nun im Spätherbst / Winter etwas Zeit zum basteln gefunden habe, wollte ich mich mal darum kümmern, es eleganter zu machen.

    Wie kann ich die Übertragung der Störung über ein stabilisiertes Netzteil und ein Festspannungsreglerfertigmodul noch verhindern ?

Seite 1 von 4 123 ... LetzteLetzte

Ähnliche Themen

  1. Genaue Zeitmessung?
    Von bomberman_z im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 28.08.2008, 11:03
  2. LCD Pollin/Wintek 27x4 - Kontrast ziemlich mies
    Von Andree-HB im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 19.11.2005, 21:56
  3. bin grad ziemlich ideenlos...
    Von cht im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 5
    Letzter Beitrag: 28.09.2004, 13:44
  4. Genaue Navigation
    Von JohnMcClane im Forum Sensoren / Sensorik
    Antworten: 38
    Letzter Beitrag: 18.09.2004, 21:04
  5. Genaue Seilwinde
    Von Starchild im Forum Sensoren / Sensorik
    Antworten: 10
    Letzter Beitrag: 27.08.2004, 20:16

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •