Dimmer
            
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Realisierung einer mikroprozessorgesteuerten Dimmerschaltung über I2C-Bus mit VisualBasic.
 
 
 
 
 
 
 
 
 
Inhaltsverzeichnis
 
2	AUFGABENSTELLUNG	3
3	THEORETISCHE GRUNDLAGEN	3
4	SCHALTUNGEN	4
 
4.1	Prinzipschaltung	4
4.2	Schaltung für Layout	4
4.3	Layout	5
 
5	BAUTEILWERTE	5
6	SCHALTUNGSERKLÄRUNG	6
7	DIMENSIONIERUNG	6
8	OSZILLOGRAMME	8
9	PROGRAMME UND FLUßDIAGRAMME	9
 
9.1	Programmversion von Bögner & Zeman	9
9.
2	Weiterbearbeitung des Bögner & zeman – programmes	12
 
10	ABSCHLIEßENDE  FEHLERBEHEBUNG	18
11	FEHLERANALYSE	19
12	NEUE  SCHALTUNG	19
 
12.1	Prinzipschaltung	19
12.2	Schaltung für Layout	20
12.3       Layout	20
 
ANHANG	21 
 
 
 
 
 
 
 
 
Aufgabenstellung
 
Weiterbearbeitung der von Bögner & Zeman (5 HNA 97) entwickelten Schaltung einschließlich Fehlerbehebung. In weiterer Folge dann Ansteuerung über I2C-Bus und Benutzeroberfläche mit Visual Basic programmieren.
 
Nach Aufbau der Schaltung und Programmierung des vorhanden Programmes (aus der Dokumentation von Bögner & Zeman) stellten wir folgende Fehler fest :
 
·) Die Lampe flackerte in unregelmäßigen Abständen.
 
·) Die Routine für die Dünkler-Einstellung dauerte länger als jene für die Heller-Einstellung.
 
 
 
 
Theoretische Grundlagen
 
 
Siehe ANHANG A.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
Schaltungen
 
PRINZIPSCHALTUNG
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
In der Prinzipschaltung wurde die Leitung und der R6  (Pull-Up) für die Resetschaltung des uP nicht berücksichtigt.
SCHALTUNG FÜR LAYOUT
 
LAYOUT
 
 
 
 
Bauteilwerte
 
 
 
Baut.
Wert
Baut.
Wert
R1
10k/10W
C1
1mF/16V
R2
390 k
C2
10 nF
R3
39 k
C3
10 mF
R4
330 E
C4
40 pF
R5
10 k
C5 
40 pF
R6
10 k
Z1
5V6
R7
330 E
Z2
5V6
R8
10 k
D1
1N4004
R9
1 M
D2
1N4004
R10
100 k
D3
1N4004
 
 
 
 
 
 
Schaltungserklärung
 
Der erste Teil der Schaltung (R1, Z1, D1, C1) dient dazu, um die Versorgungsspannung für den Inverter zu erzeugen.
 Über die Zenerdiode werden die 5,6 V erzeugt und mit dem C1 geglättet. Der zweite Teil (R2, R3, Z2) dient dazu, um das Eingangssignal für den Inverter zu liefern (ca. 50 Hz-Rechteck) und gewährleistet die Nulldurchgangsdetektion. R4 und R6 sind die Vorwiderstände für die LED des Optokopplers bzw. Optotriacs. Über den Optokoppler bzw.
 Optotriac wird der Laststromkreis vom mP-Stromkreis getrennt. Da der Optokoppler einen Open-Kollektor-Ausgang hat, wurde R5 als Pull-Up-Widerstand verwendet. C3 wird auf Versorgungsspannung (325 V) geladen. R9 muß genügend groß sein, um zu gewährleisten, daß der Strom durch R9 unter dem Zündstromminimum bleibt. R8 muß so dimensioniert werden, daß der Strom IGT in dem vom Datenblatt gegebenen Bereich liegt. C2 wurde über die im Datenblatt angeführte Impulsbreite dimensioniert.
 
 
Dimensionierung 
 
Für R4 und R6 :	
Annahme : I = 10 mA
                                                     UD = 1,5 V	Þ	R4 = R6 =  = 350 W   Þ
 
R4 = R6 = 330 W
 
R5 gewählt als Pull-Up mit R5 = 10 kW
 
 
Dimensionierung des Laststromkreises :
 
 
Laut Datenblatt : Typische Haltezeit des Zündstromes : tGT = 2 ms. (Gewählt : 15 ms)
		    Bereich des Zündstromes : 	       IGT = 1..35 mA. (Gewählt : 32,5 mA)
 
 
Berechnung :		R7 =  = 10kW	 	R8 >  = 326 kW  gewählt  R8 = 1 MW
 
			R9 = 		C2 =  =  » 10 nF	
 
 
Berechnung des C3 :
 
Annahme: t = 8 msec..
 
...Zeit, welche der Kondensator hat, um sich auf 325 V aufzuladen.
	     
	U » 325 V	(Kondensatorspannung)
 
	 = 230 ×  = 325,269 V	(tatsächlicher Spitzenwert)
 
	U = 	 Þ	t = = 9,665
 
	t = R × C	Þ	C3 = =  		gewählt:	 C3 = 10 uF
 
  
Oszillogramme
 
 
 
Diese Meßergebnisse wurden am 4.2.
98 mit der Programmversion „dimmer5“ aufgenommen. (Bei 200 V Versorgungsspannung)
 
Programme und Flußdiagramme
PROGRAMMVERSION VON BÖGNER & ZEMAN
 
 
*****************************************
* PROGRAMM : 		dimmer1.asm 	 *
*****************************************
charin		code		3027h	;Char in hide
port11		equ 		91h    	;Port-Pin 1.1
zeitv		equ		R3	;Feineinstellung 	(Tastatur)
malzeitv		equ		60d 	;Grobeinstellung (Konstante)
 
;************************************* ISR *****************************************
org	8003h
 
	jmp	INTERRUPT	
 
;****************************** HAUPTPROGRAMM *********************************
org	8200h
 
	mov	zeitv,#2d		;Maximale Helligkeit
	setb	port11		;Finsterniss	
	orl	tcon,#01h       	;IT0 Flanken-aktiv (neg. Flanke)
	setb	ea		;Alle enabled
	setb	ex0		;Externer Int. enabled
 
ABFRAGE:
 
	call	charin		;Zeichen einlesen
	
	mov	R0,A		;Zeichen ins Register retten
	subb	A,#64h		;Wenn Zeichen=d dann A=0
	jz	DUENKLER	;Wenn A=0 dann DUENKLER
 
	mov	A,R0		;Gerettetes Zeichen wieder in Akku
	subb	A,#68h		;Wenn Zeichen=h dann A=0
	jz	HELLER		;Wenn A=0 dann HELLER
 
	jmp 	ABFRAGE	;Wenn keines der beiden dann ABFRAGE
 
DUENKLER:
 
	mov	a,zeitv		
	subb	a,#67d		;Kontrolle ob Lampe dunkel
	jz	ABFRAGE	;Wenn ja.
..ABFRAGE
 
	mov	a,zeitv		
	inc	a		;zeitv um einen Wert vergrößern ® duenkler
	mov 	zeitv,a		;wieder zurückschreiben
	jmp	ABFRAGE		
 
HELLER:
 
	mov 	a,zeitv
	subb	a,#2d		;Kontrolle ob Lampe voll leuchtet
	jz	ABFRAGE	;Wenn ja...ABFRAGE
 
	mov 	a,zeitv
	dec 	a		;zeit um einen Wert verringern ® heller
	mov	zeitv,a		;wieder zurückschreiben
	jmp 	ABFRAGE
 
;******************************* UNTERPROGRAMM ********************************
INTERRUPT:
;=========
 
SPRUNG:	
 
	mov 	a,zeitv
 
TIME0:
 
	dec	a		;Zeitverzögerung abhängig von zeitv
	mov	r2,#malzeitv	;Allgemeine Zeitverzögerung (Konstante)
				;R2 (Malzeitv) dient als konstante Zeitver-
				;zögerung
TIME1:
 
	djnz	r2,TIME1	;Malzeitkonstante decrementieren
				;Wenn nicht Null dann TIME1
				;Wenn Null dann Kontrolle ob A (zeitv) 0 ist
	jnz	TIME0		;Wenn nicht Null dann TIME0
				;Wenn A=0 und R2=0 dann :
	clr	port11		;Ausgabe des Zündimpulses (Leuchtphase)
				;(60*zeitv)
	mov	r4,#100d		;Konstante Zeitverzögerung
LOOP1:
	djnz	r4,LOOP1	;Wenn Konstante Verzögerung abgelaufen, dann :
	setb	port11		;Kein Zündimpuls (Dunkelphase)  (100)
 
	mov 	r5,#255d		;Allgemeine Zeitverzögerung
LOOP2:
 	mov 	r6,#16d
LOOP3:
	djnz	r6,LOOP3
	djnz	r5,LOOP2	;Verschachtelte Zeitschleife (LOOP2/3)
 
	clr	port11		;Zündimpuls (Leuchtphase)  (16*255=4080)
	mov	r4,#100d		;Allgemeine Zeitverzögerung
LOOP4:
	djnz	r4,LOOP4
	setb	port11		;Kein Zündimpuls (dunkelphase)  (100)
 
	RETI
 
END	
 
WEITERBEARBEITUNG DES BÖGNER & ZEMAN – PROGRAMMES
 
Dokumentation :                    Diese Version ist die ursprüngliche Version aus der Dokumentation von   Bögner & Zeman.
Aufgetretene Fehler : 	·) Lampe flackert in unregelmäßigen Abständen
			·) Funktion DÜNKLER dauert länger als HELLER
Ursache:	·) Dadurch, daß die Lampe flackert, wurden über die Leitungen aufgetretene    Spikes in den Beginn der Schaltung rückgekoppelt ® Lampe flackert.
			·) Die Ursache warum DÜNKLER länger dauert als HELLER konnte noch nicht 			    gefunden werden			
 
Fehlerbehebungsversuch :
	 
Zuerst versuchten wir, über einen Tiefpaß die Störimpulse wegzufiltern. Da die Spikes aber so kurz waren, daß der Tiefpaß sie nicht wegfiltern konnte, versuchten wir in einer neuen Version des Programmes die im System aufgetretenen Spikes softwaremäßig auszuschalten, indem wir zu Beginn des Interrupts eine Routine einfügten, in der bei einem High-Zustand am Port-Pin 3.2 (externer Interrupt) die Interrupt-Serviceroutine sofort verlassen wird. (Interrupt wird bei Low am Pin 3.2 ausgelöst).
 Bei einem Low-Zustand am Pin muß dieser mindestens so lange sein, daß der mP die in den Akku hineingeschriebene Konstante von 10d bis 0d dekrementieren kann ® kurze Spikes werden nicht anerkannt.
 
Einzufügende Routine nach INTERRUPT :
 
	push	acc		;damit Inhalt aus Akku nicht verloren geht
	
	mov 	a,#10d		
s:	jb	p3.2,r		;wenn Bit am Port gesetzt (kein Interrupt) - ISR verlassen
	dec	a		
	jnz	s		;wenn Akku = 0 dann ISR weiter baerbeiten
Und am Ende des Programmes :
 
r:	pop	acc		;Inhalt aus Akku wiederherstellen
	RETI			;ISR verlassen
 
 Dokumentation :		Das Flackern blieb trotz Softwareänderung bei 230V gleich. Durch Zufall stellten wir fest, daß die Schaltung bei nur 200V tadellos funktionierte. Daraufhin untersuchten wir, ob dieses Flackern sich auch bei der alten Programmversion durch eine 200V-Versorgung ausschalten läßt. Wir stellten fest, daß die Schaltung mit der alten Programmversion bei 200V-Versorgungsspannung trotzdem noch ein wenig flackerte  Þ Softwaremäßige Spikefehlerbehebung war ein voller Erfolg
Zu behebende Fehler :   ·) Spannungsversorgung 200V 
			   ·) DÜNKLER langsamer als HELLER 
 
 Fehlerbehebungsversuch
 Aufgrund der Tatsache, daß bei Tastendruck auf  <d> die Routine für DÜNKLER aus irgendeinem unerklärlichen Grund langsamer durchlaufen wird als HELLER (Festgestellt am Oszilloskop durch die Phasenverschiebung der Impulse zur Netzfrequenz.
..bei <d> langsamer) ließen wir die Tastaturabfrage weg und ließen den mP intern von dünkler auf heller regeln. In diesem neuen Programm wurde die Routine ABFRAGE logischerweise gelöscht.
 *****************************************
* PROGRAMM : 		dimmer3.asm   *
*****************************************
 
charin		code		3027h	;Char in hide
port11		equ 		91h    	;Port-Pin 1.
1
zeitv		equ		R3	;Feineinstellung (Tastatur)
malzeitv		equ		60d    	;Grobeinstellung (Konstante)
 
;*********************************** ISR **************************************
org	8003h
 
	jmp	INTERRUPT	
 
;****************************** HAUPTPROGRAMM *********************************
org	8200h
 
	mov	zeitv,#3d		;Maximale Helligkeit
	setb	port11		;Finsterniss	
	orl	tcon,#01h       	;IT0 Flanken-aktiv (neg. Flanke)
	setb	ea		;Alle enabled
	setb	ex0		;Externer Int. enabled
 
DUENKLER:
 
	mov	a,zeitv		
	subb	a,#67d		;Kontrolle ob Lampe dunkel
	jz	heller		;Wenn ja...wieder heller
 
	mov	a,zeitv		
	inc	a		;zeitv um einen Wert vergrößern ® duenkler
	mov 	zeitv,a		;wieder zurückschreiben
 
	mov	r0,#030h		;so oft <d> bis ganz dunkel
z11:
	mov	r7,#0ffh
z12:	djnz	r7,z12
	djnz	r0,z11
 
	jmp	duenkler	
HELLER:
 
	mov 	a,zeitv
	subb	a,#2d		;Kontrolle ob Lampe voll leuchtet
	jz	duenkler		;Wenn ja.
..wieder duenkler
 
	mov 	a,zeitv
	dec 	a		;zeit um einen Wert verringern -> heller
	mov	zeitv,a		;wieder zurückschreiben
 
	mov	r0,#030h		;so oft <d> bis ganz dunkel
z21:	
	mov	r7,#0ffh
z22:	djnz	r7,z22
	djnz	r0,z21
 
	jmp 	heller
 
;******************************* UNTERPROGRAMM ********************************
INTERRUPT:
;=========
 
	push	acc
	
	mov 	a,#10d
s:	jb	p3.2,r	
	dec	a
	jnz	s
 
SPRUNG:	
 
	mov 	a,zeitv
 
TIME0:
 
	dec	a		;Zeitverzögerung abhängig von zeitv
	mov	r2,#malzeitv	;Allgemeine Zeitverzögerung (Konstante)
				;R2 (Malzeitv) dient als konstante Zeitver-
				;zögerung
TIME1:
 
	djnz	r2,TIME1	;Malzeitkonstante decrementieren
				;Wenn nicht Null dann TIME1
				;Wenn Null dann Kontrolle ob A (zeitv) 0 ist
	jnz	TIME0		;Wenn nicht Null dann TIME0
				;Wenn A=0 und R2=0 dann :
	clr	port11		;Ausgabe des Zündimpulses (Leuchtphase)
				;(60*zeitv)
	mov	r4,#100d		;Konstante Zeitverzögerung
LOOP1:
	djnz	r4,LOOP1	;Wenn Konstante Verzögerung abgelaufen, dann :
	setb	port11		;Kein Zündimpuls (Dunkelphase)  (100)
 
	mov 	r5,#255d		;Allgemeine Zeitverzögerung
LOOP2:
 	mov 	r6,#16d
LOOP3:
	djnz	r6,LOOP3
	djnz	r5,LOOP2	;Verschachtelte Zeitschleife (LOOP2/3)
 
	clr	port11		;Zündimpuls (Leuchtphase)  (16*255=4080)
	mov	r4,#100d		;Allgemeine Zeitverzögerung
LOOP4:
	djnz	r4,LOOP4
	setb	port11		;Kein Zündimpuls (dunkelphase)  (100)
 
r:	pop	acc
	RETI
 
 
END	
 Dokumentation :   · ) Wie erwartet waren bei der automatischen Heller/Dünkler -       Einstellung beide Routinen gleich schnell. Daraus folgerten wir, daß der Fehler in der Tastaturabfrage liegen muß (Wir probierten das alte Programm nochmals mit anderen Tasten als <h> und <d> aus, was aber den Fehler nicht beeinflusste). Da wir diesen Fehler aber nur als Feinheit ansahen, wollten wir uns damit nicht allzu lange aufhalten und begannen mit dem I2C-Bus-Programm.
Zu behebende Fehler :   · ) Spannungsversorgung 200 V
			   · ) DÜNKLER langsamer als HELLER
 
 
 
 
 
 
 
 
 
 
 
 
 
Programmvorbereitung zur I2C-Bus-Ansteuerung
 Nachdem eine andere Gruppe unserer Klasse sich schon seit Semesterbeginn mit dem I2C-Bus beschäftigt hat, übernahmen wir das Slave-Programm dieser Gruppe und fügten es in unserer Dimmer-Programm ein. Wir bemerkten, das der Empfang der vom Master geschickten Daten nicht korrekt war. Nach langen Überlegungen kamen wir zu dem Schluß, daß durch die am Ende des Programms vorhandenen Zeitschleifen das Programm ständig in der ISR bleibt und dadurch den Interrupt vom Master nicht bearbeiten kann. Aus diesem Grund versuchten wir, die Zeitschleifen durch Timer zu ersetzen, die dann bei einem Overflow in eine ISR springen. Da diese zweite ISR sehr kurz wäre, würde die Kommunikation zwischen Master und Slave nicht beeinflusst werden. Das Programm ist dem ursprünglichen Programm vom Ablauf her sehr ähnlich, bis auf die Tatsache, daß die Software-Verzögerung und die 10 msec-Verzögerung über das Timer 0 – Interrupt gesteuert werden.
 Die Einstellung der Impulsbreite erfolgt nach wie vor über die Zeitschleife.
 *****************************************
* PROGRAMM : 		dimmer5.asm   	 *
*****************************************
 
charin		code		3027h	;Char in hide
port11		equ 		91h    	;Port-Pin 1.1
zeitv		equ		R3	;Feineinstellung (Tastatur)
malzeitv		equ		60d     	;Grobeinstellung (Konstante)
n1		data		21h
n2		data		22h
 
;*********************************** ISR **************************************
;********** Exterener Interrupt
	
	org	8003h			;Externer Interrupt /INT0 
	jmp	inter1
 
;**** Timer0, Mode1 16bit
	
	org	800bh			;Timer 0 overflow-Interrupt
	ljmp	inter2
 
;****************************** HAUPTPROGRAMM *********************************
org	8200h
 
	mov	zeitv,#0d			;Maximale Helligkeit
	setb	port11			;Finsternis	
	orl	tcon,#01h       		;IT0 Flanken-aktiv (neg. Flanke)
	setb	ea			;Alle enabled
	setb	ex0			;Externer Int. enabled
;Timer0 init
	anl	tmod,#11110000b		;Werte für Timer 1 beibehalten
	orl	tmod,#00000001b		;16-bit-Timer
	anl	tcon,#11001100b		;Werte für Timer 1 beibehalten
	orl	tcon,#00000010b		;Interrupt-Edge-Flag setzen
 
	setb	et0			;Timer0 Interrupt enablen
ABFRAGE:
 
	call	charin			;Zeichen einlesen
	
	mov	R0,A			;Zeichen ins Register retten
	mov    	A,R0
	subb	A,#64h			;Wenn Zeichen=d dann A=0
	jz	DUENKLER		;Wenn A=0 dann DUENKLER
 
	mov	A,R0			;Gerettetes Zeichen wieder in Akku
	subb	A,#68h			;Wenn Zeichen=h dann A=0
	jz	HELLER			;Wenn A=0 dann HELLER
 
	jmp 	ABFRAGE		;Wenn keines der beiden dann ABFRAGE
 
DUENKLER:
 
	mov	a,zeitv		
	subb	a,#24d			;Kontrolle ob Lampe dunkel
	jz	ABFRAGE		;Wenn ja.
..ABFRAGE
 
	mov	a,zeitv		
	inc	a			;zeitv um einen Wert vergrößern -> duenkler
	mov 	zeitv,a			;wieder zurückschreiben
	jmp	ABFRAGE		
 
HELLER:
 
	mov 	a,zeitv
					;Kontrolle ob Lampe voll leuchtet
	jz	ABFRAGE		;Wenn ja...ABFRAGE
 
	mov 	a,zeitv
	dec 	a			;zeit um einen Wert verringern -> heller
	mov	zeitv,a			;wieder zurückschreiben
	jmp 	ABFRAGE
 
;**************************************
;************** Interrupts ***************
;**************************************
 
;********* Periode starten
					
	org	8300h			;externer Interrupt.
..
inter1:	push	acc			;Akku in Stack retten
 
	clr	tr0			;Timer 0 stoppen
	clr	tf0			;Flag löschen
	
	mov 	a,#5d			;Schleife für Spike-Fehlerbehebung
s:	jb	p3.2,aus			;
	dec	a			;
	jnz	s			;
 
	clr	ex0			;externen Interrupt disablen
 
mov	a,#0ffh			;Softwaremäßige Verzögerung :
	subb	a,zeitv			;In Timer-Register TH0/TL0 werden die neuen Werte geschrieben
	mov	th0,a	
	mov	a,#0h
	mov	tl0,a	
 
setb	tr0			;Timer starten
 
aus:	pop	acc			;Akkuinhalt wieder aus Stack holen
 
	reti				
 
;********* Zündimpuls positive Halbwelle + Warten zwischen den beiden Impulsen
	
	org	8350h			;Timer 0 – Interrupt ...
inter2:	push	acc			;Akkuinhalt in Stack retten
 
	clr	tr0			;Timer stoppen
	clr	tf0			;Timer-Flag löschen
 
	clr	port11			;Zündimpuls
	mov	n1,#100d			;Einstellung der Impulsbreite
LOOP2p:	djnz	n1,loop2p
	setb	port11			;Zündimpulsende
 
	mov	th0,#0dch		;Einstellung der 10 msec Zeitverzögerung über Timer 0
	mov	tl0,#0efh
 
	setb	tr0			;Starten des Timer 0
 
	mov	dptr,#800Ch		;Interrupt auf 8400h verbiegen
	mov	a,#84h
	movx	@dptr,a
 
	mov	dptr,#800Dh
	mov	a,#00h
	movx	@dptr,a
 
	pop	acc			;Akkuinhalt aus Stack holen
 
	reti
 
;********* Zündimpuls positive Halbwelle
	
	org	8400h
inter3:	push	acc			;Akkuinhalt in Stack retten
 
	clr	tr0			;Timer 0 stoppen
	clr	tf0			;Timer-Interrupt-Flag löschen
 
	setb	ex0			;Externen Interrupt wieder zulassen
 
	clr	port11			;Zündimpuls
	mov	n1,#100d			;Einstellung der Impulsbreite
LOOP2n:	djnz	n1,loop2n
	setb	port11			;kein Zündimpuls
 
	mov	dptr,#800Ch		;Interrupt wieder auf 8300h verbiegen
	mov	a,#83h
	movx	@dptr,a
 
	mov	dptr,#800Dh
	mov	a,#50h
	movx	@dptr,a
 
	pop	acc			;Akkuinhalt wieder aus Stack holen
 
	reti
 
END	 
 
 
 
 
 
 
 
 
 
 
 
  Abschließende Fehlerbehebung
 
Nach Abschluß der Vorbereitung des Programmes für die I2C-Bus – Ansteuerung traten trotzdem noch immer die bekannten 2 Fehler auf : 	
·) Die Versorgungsspannung durfte nicht höher als 215 V sein.
				          	·) Die Funktion Dünkler war langsamer als Heller.
 Wir programmierten zuerst einmal die Ansteuerung des mP-Boards über Visual Basic. Bei diesem Programm konnte über einen Regler die Helligkeit der Lampe verstellt werden. Bei diesem Programm trat der Heller-Dünkler-Fehler nicht auf. Da wir in Zukunft ohnehin nur über Visual Basic mit dem mP-Board kommunizieren werden, war dieser Fehler für uns  hiermit ausgeschaltet.
Der Versorgungsspannungsfehler konnte nicht so einfach ausgeschaltet werden. Nach langwierigen Schaltungsanalysen bemerkte ich, daß die Leitung für die Gate-Ansteuerung des TRIAC´s wie bei der Prinzipschaltung über der 230 V-Leitung mit den beiden Dioden lag. Interessanterweise stellte ich fest, daß die Lampe auch flackerte, wenn das Programm gar nicht gestartet wurde, d.h. an das Gate des TRIAC´s gar keine Spannung kam. Ich folgerte daraus das das Gate von irgendwo genügend Spannung bekommen muß, daß der TRIAC zünden kann.
 Ich trennte den Diodenzweig (D2, D3) auf und stellte fest, daß der TRIAC jetzt nicht mehr zünden konnte. Das Gate des TRIAC´s braucht nur ca. 1,5 V, daß der TRIAC zünden kann. Ich nahm an, daß die notwendige Gatespannung über eben diese Leitung mit den beiden Dioden kommen mußte. Für die Fehlerbehebung konnte ich mit dem Versuchsaufbau auf Lochrasterplatte nicht mehr viel machen, daher entschloß ich mich, das Layout anzufertigen und die Schaltung dann nochmals aufzubauen und zu überprüfen.
 
 
 
 
 
 
 
 
 
 
 
  Fehleranalyse
 Nachdem die Schaltung mit dem fertigen Layout aufgebaut wurde, stellte ich fest, daß das Verhalten der Schaltung genauso ist, wie bei dem Versuchsaufbau.
 Der einzige Ausweg erschien mir, die Schaltung mit dem neuen Opto-Triac BRT 12 H (siehe Datenblätter im Anhang) aufzubauen und dadurch die Ansteuerschaltung des Triac’s BTA 12 CW wegzulassen. Der BRT 12 H ist in der Lage, die Lampe direkt mit den von dem mP erzeugten Signal anzusteuern.
Nach dem Aufbau der Schaltung mit dem neuen Opto-Triac funktionierte die Schaltung auf Anhieb einwandfrei.
 
 
 
  Neue Schaltung
 
PRINZIPSCHALTUNG
 
 
Bei der Prinzipschaltung wurde wieder auf die Einzeichnung der Resetleitung und des Reset-Pull-Up’s R6 verzichtet.
 
 
 
 
 
 
 
 
 
 
 
SCHALTUNG FÜR LAYOUT
Anhang 
| Anmerkungen: | 
 | impressum | datenschutz
© Copyright Artikelpedia.com