- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 35

Thema: brauche ziemlich genaue Nulldurchgangsdetektion bei 230V~

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied Avatar von Taramtamtam
    Registriert seit
    06.12.2011
    Ort
    Thüringen
    Alter
    46
    Beiträge
    40

    Frage brauche ziemlich genaue Nulldurchgangsdetektion bei 230V~

    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

Ä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
  •  

LiFePO4 Speicher Test