Hallo,
ich habe einen Dimmer/Phasenanschnitt mit Hilfe der bekannten
Triacansteuerung realisiert. Jetzt merke ich das ich trotz
Timerintterrupt, in der ich den Triac/Ausgang lösche, undefeniert, immer
wenn der yC gerade etwas arbeiten muss, (UART, Schleifenaufruf...) ein
Flackern der Lampe wahrnehme. Laut Oszi löscht er im Nulldurchgang den
Ausgang nicht und hat somit nach dem Nulldurchang die komplette
Halbwelle.
Ich benutze diese Interrupt/Timer Initialisierungen:
Marvin M. schrieb:> Hallo,>> nutzen die Routinen, die die Störungen verursachen, ebenfalls einen> Interrupt oder sperren ihn?
Hi, dieses "oder sperren ihn?" verstehe ich vom Sinn nicht...
Die Routinen die die Störungen verursachen haben keine Interrupts mehr,
diese Routine z.B hat "nur" Schleifen und Stört:
1
voidEingaenge_abfragen(void)
2
{
3
PORTC|=(1<<PC4);
4
5
// Mit PL alle Eingänge in das Register schieben.
6
7
// PL auf High
8
PORTC|=(1<<PC5);
9
// PL auf Low
10
PORTC&=~(1<<PC5);
11
// PL auf High
12
PORTC|=(1<<PC5);
13
14
15
//Abfragen welches Registerbit gesetzt -> mit clock weiter schieben
16
for(m=(Eingangskarten*16)-1;m>=0;m--)
17
{
18
19
if(PINA&(1<<PINA0))
20
{// Logisch 1 wenn Schalter nicht gedrückt da Pullup an
Ich hab mir deinen Code jetzt nicht genau angeguckt, aber du musst den
Triac doch nur einmal "zünden", dann bleibt er doch "an". Also kurzen
Puls aufs Gate und dann is gut. Damit ist sichergestellt dass er im
Nulldurchgang definitiv aus ist.
Knut
Knut schrieb:> Ich hab mir deinen Code jetzt nicht genau angeguckt, aber du musst den> Triac doch nur einmal "zünden", dann bleibt er doch "an". Also kurzen> Puls aufs Gate und dann is gut. Damit ist sichergestellt dass er im> Nulldurchgang definitiv aus ist.>>> Knut
Ja das ist Richtig, ich lösche den Triac erst wieder mit steigender
Flanke des Nulldurchgangs:
1
ISR(INT0_vect)
2
{
3
// TRIAC Zündung löschen
4
AusgangUnsetBit(16);
5
AusgangOut();
6
7
8
9
10
// gestoppten Timer mit Prescaler 1024 wieder starten
11
TCCR0B|=(1<<CS00)|(1<<CS02);// Prescaler 1024
12
TCNT0=0;
13
14
}
Wenn ich jetzt Softwaremäßig den Nulldurchgang nicht mitbekomme (warum
auch immer, ist wie im Anhang verdrahtet) dann würde er das Bit nicht
löschen und wäre wieder/immer noch an. Das gehe ich mal noch genauer auf
den Grund....
Markus P. schrieb:>//=====================================================================
=============
> //Interrupt 0 Nulldurchgangerkennung steigende Flanke> // Im Nulldurchang wird der "TriacAusgang" gelöscht und der Timer wieder >gestartet>//=====================================================================
=============
Das ist zwar theoretisch möglich, würde ich aber schon früher machen,
da:
Knut schrieb:> Triac doch nur einmal "zünden", dann bleibt er doch "an"
Knut
Interessant wäre auch mal deine Nulldurchgangserkennung-Hardware. Nicht
das die einfach zu spät den Nulldurchgang meldet und da dein Triac schon
gezündet hat. Wenn du das dann mit der Netzspannung vergleichst:
Markus P. schrieb:> Laut Oszi löscht er im Nulldurchgang den> Ausgang nicht
Knut
Knut schrieb:> Interessant wäre auch mal deine Nulldurchgangserkennung-Hardware. Nicht> das die einfach zu spät den Nulldurchgang meldet und da dein Triac schon> gezündet hat. Wenn du das dann mit der Netzspannung vergleichst:>> Markus P. schrieb:>> Laut Oszi löscht er im Nulldurchgang den>> Ausgang nicht>>> Knut
Optokoppler 4N25
Optokoppler MOC3020
Brückengleichrichter B250C1500
Schmitttriger 74HC14
TIC 246M 16 A /600V als Triac
Knut schrieb:> Ok, nein, dass sieht ok aus. Versuch einfach mal den Ausgang vorm> Nulldurchgang auszuschalten.
oder bei fallender Flanke an INT0 auslösen, dann wird der Nulldurchgang
noch kurz vor dem eigentlichen Zeitpunkt erkannt.
Oder für die Triacansteuerung gleich eine Fast-PWM Betriebsart des
Timers verwenden, und mit INT0 nur den Timer auf die Netzspannung
syncronisieren.
Sascha
@Markus P.: Noch ein kleiner Tip, ich verwende AC Optokoppler, damit
kann man sich den Gleichrichter sparen.
Wenn wir hier schon beim Thema Flackern sind, habe gerade auch meine
Software fertig, im Moment zum testen noch per Poti, aber ich habe ein
leichtes hin und hergehen der Zündimpulse, sieht man am Ende des Videos
einigermaßen. Findet ihr das ist das schon zu unruhig, um Flackerfrei
eine Helligkeitsstufe zu halten.
http://kosmos.bplaced.net/24032012005.mp4