www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Phanenanschnitt über timer als delay


Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
ich bin grad fast am verzweifeln an einer phasenanschnittsteuerung.
früher hatte ich in der software folgendes gemacht, sobald ein INT
(Nulldurchgang) ausgelöst wurde:

for (int i = 0; i < Time;i++)
  _delay_us(30);

danach hab ich den triac gezündet.
Nun kann ihc das leider nicht mahr machen, da die Software
umfangreicher geworde ist und der code nur zeit verschwendet. Dann hab
ich mir gedacht ich mach die verzögerung einfach durch einen timer.
Also hab ich obrigen code einfach durch folgendes ersetzt:

TCCR1B = (1<<CS11) | (1<<CS10);
TCNT1 = 65000;
TIMSK |= (1<<TOIE1);

SIGNAL (SIG_OVERFLOW1)
{
  TIMSK &= ~(1<<TOIE1);
  TriacZunden();
}

das ganze funktionert aber nicht...der Triac züdet bei manchen werten
von TCNT1 garnicht, bei manchen nach kurzerzeit und bei wieder anderen
sofort...und dass völlig durcheinander.
normal müsste dass doch genauso möglich sein als die erste
veriante...oder hab ich da n denkfehler ?

Gruß

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm den CTC-Mode!
(Ich gehe von eime AVR aus, der diesen Modus unterstützt.)

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>bei manchen werten von TCNT1 garnicht

Zeitabstand zu kurz?

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die besten Ergebnisse beim Phasenanschnitt habe ich mit dem Input
Capture gemacht. Die Zeitabstände zwischen den Nulldurchgängen steht
dann im Input Capture Register. Danach kannst du gemäss deiner Vorgaben
den Triac zünden.

MW

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die besten Ergebnisse habe ich mit einer Vollwellenerfassung über
Doppeloptokoppler gemacht. Dessen Ausgang habe ich mit dem
Analog-Comparator verschaltet. Somit erhalte ich immer zu exakt der
gleichen Zeit (also nicht wie beim Portpin temperaturabhängig und
hysteresebehaftet) 2 Flanken und somit 2 Interrupts (abfallende und
ansteigende Halbwelle, je 0,5 ms um den absoluten Nullpunkt). Dadurch
lassen sich Zünd und Löschzeitpunkte sehr genau bestimmen. Der Timer
zum Messen der Zündzeit läuft durch und erzeugt seinerseits zyklisch
einen Interrupt zum Zeitvergleich. Der Prozessor langweilt sich dann in
der Main und "wartet" auf die auflaufenden Interrupts.

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ TravelRec,

die Nullpunkterkennung baue ich wie folgt auf:
Phase -> Vorwiderstand -> Gleichrichter -> Optokoppler
Die Durchbruchspannung des Koplers klemmt die maximale Spannung am
Gleichrichter auf ca. 1,5 V, sodass da kein spannungsfestes Teil
eingebaut werden muss. Und der Vorwiderstand bestimmt den Strom durch
den Koppler. Das mit den Doppeloptokoppler ist auch eine Lösung,
erscheint mir aber teurer. Meine ersten Versuche mit 2 Kopplern
scheiterten damals an der Exemplarstreuung.

MW

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.