-         

Ergebnis 1 bis 4 von 4

Thema: Timerproblem (Phasenanschnitt)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    22.02.2005
    Alter
    37
    Beiträge
    9

    Timerproblem (Phasenanschnitt)

    Anzeige

    Hallo,

    ich habe ein Problem mit der Phasenanschnitt Steuerung über einen Triac.

    Die Nulldurchgangserkennung habe ich mit einem Optokoppler realisiert.
    Funktioniert soweit auch ganz gut (Jede Sekunde werden genau Hundert Nulldurchgänge gezählt).

    Als Optotriac für die Zündung verwende ich einen MOC3020 und als Schalttriac einen BTB12 (Ein- bzw. Ausschalten fünktioniert einwandfrei).

    Ich besitze leider kein Oszilloskop, was natürlich die Überprüfung meiner Software sehr schwierig macht.

    Vielleicht kann mir jemand bei eine kurzen Blick auf die Software helfen, um evtl. Grundprobleme zu beseitigen.

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 19200
    
    
    Config Pind.2 = Input
    Config Pind.5 = Output
    
    
    Portd.2 = 1
    
    Triac Alias Portd.5
    
    Config Timer1 = Timer , Prescale = 8
    '16 bit timer mit prescaler 8 und 16 Mhz ergibt
    'Zeitspanne von 0 - 32 ms
    
    
    Config Int0 = Change
    On Int0 Int0_isr
    On Timer1 Timer_irq
    Enable Interrupts
    Enable Timer1
    Enable Int0
    
    Dim X As Word
    
    
    
    X = 55536                                                   '5ms
    
    
    
    
    '**************************************************************************
    '**************************************************************************
    
     Do
    
      nop
     ' Incr X
     ' Print X
     ' Waitms 100
    
    Loop
    
    '**************************************************************************
    '**************************************************************************
    
    
    
    Int0_isr:
    
      Start Timer1
    
    Return
    
    
    '*************************
    
    
    Timer_irq:
    
      Stop Timer1
    
      Timer1 = X
    
      Set Triac
      Waitus 30
      Reset Triac
    
    Return
    Mein Gedanke war: Bei Nulldurchgang wird ein Interrupt ausgelöst, indem der Timer1 gestartet wird. Dieser zählt dann je nach gewünschter Helligkeit eine bestimmte Zeit ab und löst einen Timerinterrupt aus, in der der Triac kurz gezündet wird. Dieser löscht sich beim Nulldurchgang selber und das ganze beginnt wieder von vorne.

    ERGEBNIS: Lampe dimmt ca 2 mal in der Sekunde leicht runter und dann wieder hoch!?

    Irgendwie scheint mir das so, als ob das nicht ganz synchron läuft.

    Allerdings habe ich auch schon versucht Pausen einzufügen, da der Nulldurchgangs Interrupt ja nicht genau bei Null ausgelöst wird und zudem die Timerwerte von 0 - 10 ms zu ändern. -> ohne Erfolg.

    Vielleicht hat jemand eine Idee, wo der Hund begraben sein könnte?

    Gruß Daniel

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    23.02.2006
    Beiträge
    40
    Du Konfigurierst den Interrupt auf Change, willst du pro Nulldurchgang
    wirklich 2x auslösen?
    Da ja der Null-Impuls, wenn auch nur kurz, ein Recheck ist.
    Desweiteren hab ich die Erfahrung gemacht, das der Einfach-Nullspannungs-Dedektor nur mit Optpkoppler oft nicht präzise genug ist,
    du solltest noch einen Schmitt-Trigger spendieren.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    22.02.2005
    Alter
    37
    Beiträge
    9
    Hallo jojo3!

    Sorry, dass ich mich erst so spät melde!


    Du Konfigurierst den Interrupt auf Change, willst du pro Nulldurchgang
    wirklich 2x auslösen?
    Ich versteh dann nicht, warum ich dann pro Sekunde "nur" hundert Impulse zähle (wäre ja eigentlich richtig). Wenn ich zwei mal pro Nulldurchgang auslöse, müssten es ja 400 Impulse sein, oder?

    Meine Nulldurchgangserkennung ist aber auch zugegeben sehr sehr einfach aufgebaut. Ich versuch jetzt mal eine besser Erkennung aufzubauen, indem ich einen Brückengleichrichter verwende.

    Desweiteren hab ich die Erfahrung gemacht, das der Einfach-Nullspannungs-Dedektor nur mit Optpkoppler oft nicht präzise genug ist,du solltest noch einen Schmitt-Trigger spendieren.
    Ist keine schlechte Idee! Wenns mit obigen nicht klappt versuch ichs so!

    Danke dir für deine Hilfe!

    Gruß Daniel

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    22.02.2005
    Alter
    37
    Beiträge
    9
    Ich versteh dann nicht, warum ich dann pro Sekunde "nur" hundert Impulse zähle (wäre ja eigentlich richtig). Wenn ich zwei mal pro Nulldurchgang auslöse, müssten es ja 400 Impulse sein, oder?

    Meinte eigentlich 200 Impulse!

Berechtigungen

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