Mikrocontrollerprogrammierung für die Leistungselektronik

Werbung
Fakultät für Elektrotechnik und Informationstechnik
Versuch BENT07
Mikrocontrollerprogrammierung
für die Leistungselektronik
Bearbeitung und Aufbau:
Dr.-Ing. C. Kreischer
Oliver Jüdt
Maik Rose
L EHRSTUHL FÜR E NERGIEWANDLUNG
P ROF. D R .-I NG . M. P FOST
Dortmund, den 16.05.2017
INHALTSVERZEICHNIS
INHALTSVERZEICHNIS
Inhaltsverzeichnis
1
Einleitung
4
2
Einführung in die Leistungselektronik
2.1 Halbleiterschalter und -steller . . . . . . . . . . . .
2.1.1 Vor- und Nachteile von Halbleiterschaltern
2.1.2 Der Thyristor . . . . . . . . . . . . . . . .
2.1.3 Der Triac . . . . . . . . . . . . . . . . . .
2.2 Wechselstromsteller . . . . . . . . . . . . . . . . .
2.2.1 Stromverläufe . . . . . . . . . . . . . . . .
2.2.2 Ohmsche Last R . . . . . . . . . . . . . .
2.2.3 Induktive Last L . . . . . . . . . . . . . .
2.2.4 Ohmsch-induktive Last . . . . . . . . . . .
2.2.5 Darstellen der Leistung . . . . . . . . . . .
2.2.6 TSE-Beschaltung . . . . . . . . . . . . . .
2.3 Steuerverfahren . . . . . . . . . . . . . . . . . . .
2.3.1 Steuerung mit Nadelimpulsen . . . . . . .
2.3.2 Steuerung mit (π-α)-Impulsen . . . . . . .
2.4 Vorbereitungsaufgaben . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
5
7
8
9
10
11
11
12
13
13
13
14
15
3
Prozessorboard
16
3.1 Der Prozessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4
Programmierumgebung
18
4.1 AVR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5
Programmierung
5.1 Die Ports . . . . . . . . . . . .
5.1.1 Zugriff auf Ports . . . .
5.1.2 Taster und Schalter . . .
5.1.3 Vorbereitungsaufgaben .
5.2 Die Timer . . . . . . . . . . .
5.2.1 Der Vorzähler (Prescaler)
5.2.2 16-Bit Timer/Counter . .
5.2.3 Vorbereitungsaufgaben .
5.3 Analoge Eingabe . . . . . . . .
5.3.1 Register des ADC . . .
5.4 Programmieren mit Interrupts .
5.4.1 Interrupt-Quellen . . . .
5.4.2 Register . . . . . . . . .
5.4.3 Vorbereitungsaufgaben .
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
19
20
21
22
22
22
24
25
25
27
27
28
29
Steuerboard
30
6.1 Taster und LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.2 Nulldurchgangsdetektor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.3 Leistungselektronik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2
ABBILDUNGSVERZEICHNIS
ABBILDUNGSVERZEICHNIS
7
Durchführung
7.1 Aufgaben zur Einarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Steuerung des Halogenstrahlers durch ein Potentiometer . . . . . . . . . . . . . . .
7.3 Steuerung des Halogenstrahlers durch zwei Taster . . . . . . . . . . . . . . . . . .
32
32
32
32
8
Literaturverzeichnis
33
Abbildungsverzeichnis
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3.1
3.2
3.3
4.1
5.1
6.1
6.2
6.3
Thyristor (Vierschichttriode) . . . .
Ausschaltverhalten eines Thyristors
Thyristorkennlinie und Symbol . . .
Triackennlinie und Symbol . . . . .
Stellen einer RL-Last . . . . . . . .
Phasenanschnitt . . . . . . . . . . .
Zeitverläufe bei Phasenanschnitt . .
Momentanleistung . . . . . . . . .
π − α -Impulse . . . . . . . . . . .
Prozessor-Board . . . . . . . . . . .
Pinbelegung des ATMega16 . . . .
Schnittstellen . . . . . . . . . . . .
Codevision AVR . . . . . . . . . .
Taster . . . . . . . . . . . . . . . .
Steuerboard . . . . . . . . . . . . .
Nulldurchgangsdetektion . . . . . .
Leistungselektronik . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
7
8
8
9
11
12
14
16
17
17
18
20
30
31
31
1
1
EINLEITUNG
Einleitung
Leistungselektronik wird auf allen Gebieten angewandt, die ein Umformen, Steuern oder kontaktloses Schalten von elektrischer Energie erfordern. Anwendungsschwerpunkte sind Industriebetriebe,
elektrische Energieerzeugung und -verteilung, Elektrowärme, Elektrochemie, elektrische Traktion
und in rasant zunehmendem Maße auch elektrische Hausgeräte.
Einsatzgebiete im Haushalt sind drehzahlgeregelte Kleinantriebe, Heizungsregelungen und Helligkeitssteuerungen zur stufenlosen Verstellung der Beleuchtung, sowie in Verbindung mit Mikroelektronik „intelligente Geräte”, z.B die Waschmaschine mit Fuzzy-Control.
Der Versuch BENT07 erfolgt mit dem Ziel einerseits ein Mikrocontrollersystem vorzustellen und
die Grundlagen zum Einsatz eines Controllers in einer speziellen Anwendung zu vermitteln, sowie
andererseits eine praxisnahe Leistungselektronik vorzustellen, die eine Leistungsregelung durch eine analoge Spannung (Potentiometer) oder einen digitalen Zähler (Taster) zuläßt.
Damit läßt sich anschaulich das Prinzip der Phasenanschnittsteuerung erläutern, welches in der Helligkeitssteuerung von Leuchtmitteln große Verbreitung gefunden hat (Dimmer).
Die Verwendung eines Mikrocontrollers bietet gegenüber einer „fest verdrahteten” elektronischen
Schaltung aus Standardkomponenten (integrierte Schaltkreise, Transistoren, Kondensatoren, usw.),
die auf einen speziellen Anwendungsfall angepasst ist, durch die Programmierbarkeit wesentliche
Vorteile. Eine Mikrocontrolleranwendung ist flexibel, anpassbar, erweiterbar, klein und benötigt zudem im allgemeinen kürzere Entwicklungszeiten.
Die Auswahl eines Mikrocontrollers für einen bestimmten Anwendungsfall gestaltet sich aufgrund
einer Unmenge verschiedenster auf dem Markt verfügbarer Typen schwierig. Im allgemeinen unterscheiden sich die Controller (neben dem Preis) in der Anzahl der Befehle und deren unterschiedlich
komplexer Wirkungsweise, sowie in der Anzahl der funktionellen Erweiterungen des eigentlichen
CPU-Kerns, wie zusätzliche I/O-Möglichkeiten, A/D- oder D/A-Wandler, zusätzlichem Speicher
usw..
Bei diesem Praktikumsversuch wird ein Mikrocontroller der Firma ATMEL benutzt, der mit dem
Codevision AVR C-Compiler in C programmiert wird.
Es gibt einige Gründe, weshalb eine höhere Programmiersprache der reinen Assembler-Programmierung vorgezogen werden kann. So kann mit C das Programm wesentlich lesbarer geschrieben
werden als in Assembler. Auch das Speicherplatzproblem spielt bei den heutigen, leistungsfähigen
Mikrocontrollern keine große Rolle mehr, so dass auch dieser Grund für die Programmierung mit
Assembler wegfällt.
4
2
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
Einführung in die Leistungselektronik
2.1
Halbleiterschalter und -steller
In Wechsel- und Drehstromkreisen verläuft der Strom nach jeder Halbschwingung der Netzperiode
durch Null und wechselt dabei seine Polarität. Unter Verwendung von Halbleitern zum Schalten
einer Wechselstromlast muss eine bidirektionale Stromführung des Halbleiters gewährleistet sein,
z.B. mit zwei gegensinnig parallel geschalteten Thyristoren (Kap. 2.1.2). In einem solchen Halbleiterschalter beginnt der Strom zu fließen, sobald die Thyristoren gezündet werden. Die Stromhalbschwingungen unterschiedlicher Polarität werden abwechselnd von den beiden Thyristoren geführt.
Damit ein kontinuierlicher Wechselstrom fließen kann, muss nach jeder Stromhalbschwingung der
jeweilige Thyristor neu gezündet werden. Erfolgt diese Zündung nicht, erlischt der Wechselstrom im
natürlichem Nulldurchgang der Last.
2.1.1
Vor- und Nachteile von Halbleiterschaltern
Gegenüber mechanischen Schaltern für Wechselstrom im Niederspannungsgebiet weisen Halbleiter unterschiedliche Merkmale auf. Vorteile von Halbleiterschaltern sind die praktisch unbegrenzte Schaltspielzahl (Anzahl von Schaltvorgängen), die Verschleißfreiheit, die Möglichkeit den Einschaltzeitpunkt über den Zündimpuls exakt einzustellen und das Ausschalten ohne Lichtbogen im
natürlichen Stromnulldurchgang. Dagegen stehen die Nachteile des Durchlaßspannungsabfalls im
geschlossenen Zustand, der häufig eine Kühlung notwendig macht, des Isoliervermögens im gesperrten Zustand mit Rückwärtsströmen von einigen Milliampere und des höheren Preises. Trotz dieser
Nachteile werden Halbleiterschalter im Niederspannungsgebiet dort eingesetzt, wo hohe Schaltspielzahlen ohne notwendige Wartungsarbeiten verlangt werden.
2.1.2
Der Thyristor
Ein Thyristor ist ein Leistungshalbleiter mit der Vierschichtstruktur pnpn. (siehe Abbildung 2.1 auf
der nächsten Seite)1
Wird der Thyristor bei positiver Anodenspannung über einen vom Steueranschluß zur Kathode fließenden Steuerstrom gezündet, so schaltet dieser auf die Durchlaßkennlinie um. Die Durchlaßkennlinie entspricht der einer Halbleiterdiode mit dem Unterschied, daß infolge von drei statt einem PNÜbergang eine etwas höhere Durchlaßspannung uT von 1, 2V − 2V auftritt. Das Umschalten von der
positiven Sperrkennlinie auf die Durchlaßkennlinie tritt auch ohne Steuerstrom auf, wenn die zulässige positive Spitzensperrspannung überschritten wird oder die Spannungssteilheit einen kritischen
Wert überschreitet.
Die positiven Sperrspannungen, bei der ein Thyristor ohne Steuerstrom vom gesperrten in den leitenden Zustand schaltet, heißt Nullkippspannung U(BO)null . Eine derartige periodische Zündung führt zu
Kristallschäden und langsamen Zerstörung des Thyristors, während das Überschreiten der zulässigen
Sperrspannung auf der negativen Sperrkennlinie zur sofortigen Zerstörung führt.
Ein einmal gezündeter Thyristor kann über den Steueranschluß (Gate) nicht wieder gelöscht werden.
Nur wenn der Anodenstrom durch Vorgänge in der Sekundärbeschaltung oder durch eine treibende
Wechselspannung den Haltestrom IH unterschreitet, geht der Thyristor in den sperrenden Zustand
über.
1 Heumann,
S. 33
5
2.1
Halbleiterschalter und -steller
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
Abbildung 2.1: Thyristor (Vierschichttriode)
Beim Schaltverhalten des Thyristors gibt es die Sperrverzugszeit trr , welche die Zeit beschreibt,
bei der der Strom nach dem Nulldurchgang bis auf 10% seines Scheitelwertes abgeklungen ist. Dies
ist mit der (Speicherladung Qstg ) zu erklären, die zwischen t1 und t4 (siehe Abbildung 2.2)2 in den
Raumladungszonen gespeichert ist. Je höher die Temperatur, der Durchlassstrom oder die Stromsteilheit ist, destor höher auch die gespeicherte Ladung. Das steile Abreißen des Thyristorstroms an
t4 führt aufgrund von Induktivitäten, wie sie in realen Schaltungen z.B. durch Leiterbahnen stets
vorkommen, zu Überspannungen. Besonders der Triac (Kapitel 2.1.3) reagiert darauf empfindlich.
Eine sogenannte TSE-Beschaltung (Trägerstaueffekt-Beschaltung) (Kapitel 2.2.6) hilft dabei, diese
zu dämpfen.
Abbildung 2.2: Ausschaltverhalten eines Thyristors
Nach dem Abschalten und Abklingen des Thyristorstroms muss vorübergehend negative Sperrspannung zwischen Thyristoranode und -kathode liegen. Der Thyristor ist
nämlich zunächst nicht in der Lage, positive Sperrspannung aufzunehmen. Zwar sperren die beiden äußeren PN-Übergänge, in den Basiszonen und vor allem an der mittleren
Sperrschicht sind jedoch zunächst nach dem Abschalten noch überzählige Ladungsträger vorhanden, die durch Rekombination abgebaut werden müssen. Erst danach kann
der Thyristor wieder eine positive Sperrspannung übernehmen, ohne durchzuschalten.
Mit Freiwerdezeit tq wird die Mindestzeit zwischen dem Nulldurchgang des Stromes von der Vorwärts- zur Rückwärtsrichtung und der frühest zulässigen Wiederkehr
einer positiven Sperrspannung bezeichnet. Wird die Sperrspannung vor Ablauf der Freiwerdezeit positiv, so schaltet der Thyristor auch ohne Steuerstrom wieder durch.
Den Zeitraum negativer Sperrspannung nach dem Nulldurchgang des Stromes, der
von einer bestimmten Schaltung vorgegeben wird, nennt man Schonzeit tc .3
2 Heumann,
3 Heumann,
S. 36
S. 36-37
6
2.1
Halbleiterschalter und -steller
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
Sie muss vom Anwender/Entwickler schaltungstechnisch so eingestellt werden, dass sie in jedem
Betriebspunkt größer ist als die Freiwerdezeit tq , damit der Thyristor nicht unkontrolliert zündet.
Wichtige elektrische Kenngrößen eines Thyristors sind die höchstzulässige periodische negative
Spitzensperrspannung URRM und der Nennstrom IN , der den arithmetischen Mittelwert des dauernd
zulässigen Durchlaßstroms angibt. Der höchste zulässige Durchlaßstrom bei Belastung mit sinusförmigen Stromhalbschwingungen wird mit Dauergrenzstrom ITAV M bezeichnet. Mit Grenzstrom ist
der Wert des Durchlaßstromes ausgewiesen, bei dem abgeschaltet werden muß, um eine Zerstörung
des Thyristors zu vermeiden.
Abbildung 2.3: Thyristorkennlinie und Symbol
2.1.3
Der Triac
In Wechselstromkreisen fließt ein Strom nach jeder Halbschwingung der Netzperiode durch Null und
wechselt dabei seine Richtung. Für das Schalten einer Wechselstromlast mit einem Halbleiterschalter
ist es notwendig, dass eine Stromführung in beiden Richtungen möglich ist.
Zweirichtung-Thyristoren, auch bidirektionale Thyristoren oder Triacs genannt, sind in der Lage
den Strom in beiden Richtungen zu führen. Sie enthalten in einer Siliziumscheibe zwei
gegenparallel geschaltete pnpn-Zonenschichten. Die Polarität des Zündstromes ist beliebig. Triacs
erreichen Spitzensperrspannungen zwischen 1000 und 1500V bei Strömen bis über 100A. Kritisch
ist bei Triacs die zulässige Spannungssteilheit, die nur einige 10V /µs zuläßt.
Dieses lieg darin begründet, dass die Freiwerdezeit tq bei Wechselspannungsbetrieb unter der Stromführung in beide Richtungen mindestens halbiert ist, d.h die Zeit zur Rekombination der Ladungsträger ist verkürzt.
Anwendung finden Triacs vorwiegend in Elektronikschützen sowie zur Helligkeitssteuerung von
Lampenlasten. Für das Steuern und Löschen eines Triacs gelten die gleichen Bedingungen wie für
den Thyristor.
7
2.2
Wechselstromsteller
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
Abbildung 2.4: Triackennlinie und Symbol
2.2
Wechselstromsteller
Halbleiterschalter für Wechselspannung (Thyristoren, Triacs) erlauben nicht nur das bisher behandelte einmalige Einschalten von Stromkreisen, sondern auch das Schalten in jeder Halbschwingung.
T1
i
T2
u1
R
u2
L
Abbildung 2.5: Stellen einer RL-Last
Der Laststrom fließt jeweils vom Zündzeitpunkt α bis zu seinem natürlichem Nulldurchgang, dem
Löschwinkel αL . Der Stromfluß im Lastkreis erfolgt somit während der Dauer des Stromflußwinkels
αC = αL − α.
8
2.2
Wechselstromsteller
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
Abbildung 2.6: Phasenanschnitt
Für einen Wechselstrom muss eine Zündung in jeder Spannungshalbschwingung erfolgen. Fehlt die
fortlaufende Zündung des Halbleiterschalters, so erlischt der Wechselstrom im natürlichen Nulldurchgang.
Die Abbildung 2.5 zeigt die Grundschaltung eines Wechselstromstellers für eine ohmsch-induktive
Last mit zwei gegensinnig parallel geschalteten Thyristoren (T 1, T 2) als Halbleiterschalter.
Der Zündverzögerungswinkel oder Steuerwinkel α, mit dem die Thyristoren dabei periodisch in
jeder Halbperiode gezündet werden, ist als die Zeit zwischen dem Nulldurchgang der Phasenspannung und dem Einschalten definiert.
Nach diesem Verfahren (Phasenanschnitt) läßt sich die Leistungsaufnahme von Wechselstromlasten
kontaktlos und stetig verändern bzw. „stellen”. Deshalb werden Stromrichterschaltungen für diesen
Anwendungsfall Wechselstromsteller genannt. Die Ausgangsfrequenz ist bei Anschnittssteuerung
gleich der Eingangsfrequenz des Wechselstroms.
2.2.1
Stromverläufe
Die Stromverläufe eines einphasigen Wechselstromstellers sind abhängig vom Steuerwinkel und der
Beschaffenheit der Last.
Die einfachsten Berechnungsverhältnisse stellen sich bei einer rein ohmschen Last ein. Als Wechselstromhalbleiterschalter sollen zunächst zwei gegensinnig parallel geschaltete Thyristoren (Wechselwegpaar) angenommen werden. Der Strom hat während der Stromflußdauer αC den gleichen zeitlichen Verlauf wie die Speisespannung. Die positiven Strompulse werden über den Thyristor T1 und
die negativen Strompulse über den Thyristor T2 geführt.
9
2.2
2.2.2
Wechselstromsteller
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
Ohmsche Last R
Unter Voraussetzung idealer Schaltelemente und ohmscher Last R stellt sich ein sinusförmiger Stromverlauf ein:
Û
i(ωt) = · sin(ωt) = Iˆ · sin(ωt)
R
f ür α ≤ ωt ≤ π bzw. π + α ≤ ωt ≤ 2π, sonst i = 0
Durch die Integration der Stromhalbschwingung über die Periodendauer 2π ergibt sich in Abhängigkeit vom Steuerwinkel α bzw. vom Stromflußwinkel αC = π − α der lineare Mittelwert (Gleichanteil) des Ventilstromes durch den Thyristor T 1 (siehe Abb. 2.7 auf der nächsten Seite).
1
iT1 α =
2π
Z π
α
Iˆ
· [− cos(ωt)]πα
Iˆ · sin(ωt) dωt =
2π
Iˆ
Iˆ
· (1 + cos(α)) =
· (1 − cos(αC ))
2π
2π
Der Effektivwert des Stromes durch den Thyristor T 1, der den Strom in der positiven Halbwelle der
Periode führt berechnet sich zu:
r Z
q
1 π ˆ2
IT1 α eff = i2T1 α =
I · sin2 (ωt) dωt
2π α
=
= ...
r
αC − sin(αC ) cos(αC )
Iˆ
=√ ·
π
2
Bei maximalem Aussteuergrad mit α = 0◦ ist der Effektivwert des Thyristors T 1 bzw. Triacs Tr
maximal
√
Iˆ
IT1 max eff = √
bzw. ITr max eff = 2 · Iˆ
2
Die bisherigen Betrachtungen beziehen sich auf die positive Halbwelle des Laststromes, der von
dem Thyristor T 1 geführt wurde. Für das Stellen der Wechselstromlast ist somit der Thyristor T 2
mit einzubeziehen, so daß sich die doppelten Werte für den den Gleichanteil und den Effektivwert
des Laststromes ergeben, was der Verwendung eines Triacs anstelle des Thyristorwechselwegpaares
als Halbleiterschalter entspricht.
Gleichanteil :
iTr α = 2 · iT1 α =
Iˆ
Iˆ
· (1 + cos(α)) = · (1 − cos(αC ))
π
π
Effektivwert :
√
ITr α eff = 2 · IT1 α eff = 2Iˆ ·
r
π − α + sin(α) cos(α) √ ˆ
= 2I ·
π
r
αC − sin(αC ) cos(αC )
π
Für den ohmschen Belastungswiderstand sind nachfolgende Kenngrößen für den vollständigen
Steuerbereich von 0 ≤ α ≤ π definiert.
Wirkleistung P :
π−α+sin(α) cos(α)
)
P
U · ITr α eff R · (ITr α eff )2 R · 2Iˆ2 (
π
=
=
=
2
2
ˆ
P0
U · ITr eff
R · (ITr eff )
R · 2I
1
1
= (π − α + sin(2α))
π
2
Nachfolgend sind die Gleichungen des Stromes für eine rein induktive Last (L-Last) und für eine
ohmsch-induktiver Last (RL-Last) angegeben.
10
2.2
2.2.3
Wechselstromsteller
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
Induktive Last L
Û h
π i
π
sin(ωt − ) − sin(α − )
ωL
2
2
für α ≤ ωt ≤ 2π − α bzw. π + α ≤ ωt ≤ π − α, sonst i = 0
i(ωt) =
π
Û
ωL sin(α − 2 )
Hierbei handelt es sich also um sinusförmige Stromkuppen, die um den Betrag
Nulllinie verschoben sind.
2.2.4
zur
Ohmsch-induktive Last
In der Praxis ist für gewöhnlich der ohmsch-induktive Belastungsfall eines Wechselstromstellers
anzutreffen. Im Gegensatz zum Betrieb als Wechselstromschalter wird beim Wechselstromsteller in
jeder Halbperiode der Netzspannung periodisch einer der beiden Thyristor (T 1, T 2) gesteuert. Die
Abbildung 2.7 (oben) zeigt den idealisierten stationären Zeitverlauf der Eingangsgrößen: Spannung
(u(ωt)), Laststrom (i(ωt)), Grundwelle des Laststromes (i1 (ωt)), sowie (unten) den Spannungsverlauf (uRL ) an der ohmsch-induktiven Last.
Die Größen Stromflußdauer αC = π − αL , Phasenwinkel ϕ, Löschwinkel αL sind zusätzlich angegeben. Augenscheinlich ist hierbei, daß nur im Fall der ohmschen Last der Stromfluß im Nulldurchgang der Phasenspannung endet (αL = π), bei vorhandenen Blindwiderständen der Last ist αL 6= π.
i
h
R
Û
i(ωt) = p
sin(ωt − ϕ) − e(− ωL (ωt−α)) sin(α − ϕ)
R2 + (ωL)2
ωL
mit ϕ = arctan
für α ≤ ωt bzw. π + α ≤ ωt , sonst i = 0
R
u
i0
i
pi
phi
2pi
t
al
a
ac
pi
ur
pi
2pi
t
Abbildung 2.7: Zeitverläufe bei Phasenanschnitt
Man erkennt, dass sich kein rein sinusförmiger Verlauf mehr ergibt. Der Strom setzt sich aus einer
Sinuskurve und einer abklingenden Exponentialfunktion mit der Zeitkonstanten τ = RL zusammen.
11
2.2
2.2.5
Wechselstromsteller
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
Darstellen der Leistung
Der Augenblickswert der Leistung p(ωt) ist das Produkt aus Augenblickswert der Spannung u(ωt)
und des Stroms i(ωt). Für einen Stromkreis mit sinusförmig verlaufender Wechselspannung und
um den Lastwinkel ϕ nacheilendem sinusförmigem Strom nimmt der Augenblickswert der Leistung
p(ωt) auch negative Werte an (Abb. 2.8). In jedem Fall ergibt sich eine mit der doppelten Speisefrequenz (Netzfrequenz) um den Mittelwert schwingende Leistungspulsation.
Die mittlere Leistung (Wirkleistung) berechnet sich zu
1
P= ·
T
Z T
u(ωt)i(ωt) dωt .
0
Die Amplitude des Wechselanteils der Leistungsschwingung ist die Scheinleistung
S = UI .
Die mittlere Leistung (Wirkleistung) ist auch über die Effektivwerte der Spannung U und des Stromes I sowie dem Lastwinkel ϕ definiert:
P = UI · cos(ϕ)
p
u
ls
i1
lp
pi
2pi
t
phi
T
Abbildung 2.8: Momentanleistung
Eine Phasenanschnittssteuerung mit konstantem Steuerwinkel α entspricht einem periodischem Vorgang, der eine nichtsinusförmige Größe, den Strom, hervorruft. Mittels Fourier − Analyse ist dieser
Strom in Grund- und Oberschwingungen jeweils definierter Amplitude und Phase zerlegbar. Die
Amplituden der Harmonischen (Ströme mit ganzen Vielfachen der Grundfrequenz) nehmen für gewöhnlich mit steigenden Ordnungszahlen ab.
Aus der Betrachtung der Blindleistung Q , die sich allgemein aus der Phasenverschiebung des Stromes (hier der Grundschwingung) in Bezug zur treibenden Spannung definiert, ist ersichtlich, daß
die Oberschwingungen des Stromes zu einer zusätzlichen Leistung, der Verzerrungsleistung oder
Deformationsleistungen D führen (Meßeinheit VAD=Volt-Ampere-Deformation).
Wirkleistung P und Blindleistung Q beziehen sich immer auf die Grundschwingung i1 des Stromes (mit dem Index 1 gekennzeichnet). Im Wechselstromnetz tritt also bei einem Phasenanschnitt
(Steuerwinkel α) neben der reduzierten Grundschwingungswirkleistung P1 auch bei rein ohmscher
Last induktive Grundschwingungsblindleistung Q1 auf.
Wirkleistung: P1 = UI1 cos(ϕ1 ) ,
Blindleistung: Q1 = UI1 sin(ϕ1 )
Dabei wird cos(ϕ1 ) Grundschwingungs-Leistungsfaktor oder Verschiebungsfaktor genannt.
12
2.3
2.2.6
Steuerverfahren
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
TSE-Beschaltung
Ähnlich wie bei Dioden fließt nach dem Nulldurchgang des Stromes noch einige Zeit ein beträchtlicher Strom in Rückwärtsrichtung, bis die Raumladungszonen abgebaut sind. Sobald der Thyristor
eine Spannung in Rückwärtsrichtung aufnehmen kann, sinkt der Rückstrom ir rasch auf den statischen Sperrstrom Ir ab, wodurch in den Induktivitäten des Lastkreises durch die hohe di /dt Änderung
Überspannungen erzeugt werden, die weit über die zulässige Spitzensperrspannung hinausgehen
und dadurch den Halbleiter zerstören können. Diese durch den Trägerstaueffekt (TSE) hervorgerufenen Spannungen können durch ein parallel geschaltetes RC-Glied gedämpft werden. Dadurch
entsteht zusammen mit der Induktivität im Lastkreis ein gedämpfter Reihenschwingkreis. Der Strom
in der Induktivität wird jetzt nicht mehr plötzlich unterbrochen, sondern klingt in einer gedämpften
Schwingung ab.
2.3
Steuerverfahren
Die Ansteuerung der Halbleiterelemente eines Wechselstromstellers ist nach unterschiedlichen Steuerverfahren möglich, die nach dem jeweiligen Anwendungsfall zu wählen sind.
2.3.1
Steuerung mit Nadelimpulsen
Wird ein Wechselwegpaar (zwei antiparallel geschaltete Thyristoren) oder ein Triac während jeder
Halbwelle zum Zeitpunkt α mit Nadelimpulsen gesteuert, so fließt der Strom bei ideal angenommenen Halbleiterelementen jeweils ab dem Zündwinkel α bis zum natürlichen Nulldurchgang des
Laststromes beim Löschwinkel αL , bei dem das Ventil zwangskommutiert, d.h. durch das Unterschreiten des Haltestromes selbsttätig sperrt.
Der Laststrom fließt im Stromkreis während der Dauer des Stromflußwinkels αC = αL − α.
Mit der Variation des Steuerwinkels α ändert sich auch der Stromflußwinkel αC . Damit ist der Effektivwert des Laststromes und die der Last zugeführte Energie steuerbar.
Das Verfahren des „Anschneidens“ der jeweilige Halbwelle durch einen Halbleiterschalter wird allgemein als Phasenanschnittsteuerung bezeichnet.
Bei ohmsch-induktiver Last mit einem Phasenwinkel ϕ ist der Steuerbereich unter Verwendung von
nadelförmigen Steuerimpulsen eingeschränkt auf ϕ ≤ α ≤ 180◦ (siehe Abb. 2.7 auf Seite 11).
Bei Verminderung des Steuerwinkels bei Nadelimpulsen von α ≤ ϕ tritt der Lückbetrieb ein, d.h.
daß das Zünden des Halbleiters für die Übernahme der Stromführung entgegengesetzter Phasenspannung erfolglos bleibt und der Laststrom nur in einer Netzhalbperiode geführt wird. Unter Zuhilfenahme des Löschwinkels ist dieses Verhalten einsichtig nachvollziehbar. Mit α ≤ ϕ ergibt sich ein
Löschwinkel von αL = α + αC > 180◦ + ϕ. Bei dem darauf folgendem Steuerimpuls zum Zeitpunkt
ωt = 180◦ + α < 180◦ + ϕ, findet keine Kommutierung statt, da der Halbleiter noch stromführend
ist.
Der Halbleiterschalter für die zweite Netzhalbperiode ist erstmalig zum Zeitpunkt ωt > αL steuerbar,
nur liegt zu diesem Zeitpunkt kein Steuersignal vor, da die Zündung mit dem „kurzen“ Nadelimpuls
erfolgte.
Während dieses Betriebes entsteht zudem eine Gleichstromkomponente des Stromes, die z.B. bei einer Trafo-Last zu störenden Sättigungserscheinungen führt, daher wird die Steuerung von Wechselstromstellern mit Nadelimpulsen nur bei ohmschen oder leicht induktiven Lasten eingesetzt. Die verwendeten Steuersätze sollten die Möglichkeit besitzen, den minimalen Steurerwinkel auf αmin = ϕ
begrenzen zu können.
13
2.3
2.3.2
Steuerverfahren
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
Steuerung mit (π-α)-Impulsen
Diese Art der Steuerung (siehe Abb. 2.9) wird bei stark induktiven Lasten eingesetzt, bei denen der
Laststrom, bedingt durch die große Induktivität, nur langsam ansteigt. Die (π − α)-breiten Steuerimpulse sorgen dafür, dass der Gatestrom bis zum Nulldurchgang der Spannung vorhanden ist, so dass
der Anodenstrom in dieser Zeit den Wert des Haltestromes erreichen kann und die Halbleiterventile
gezündet werden können.
Wird ein Triac durch (π − α)-breite Steuerimpulse gesteuert, so ist, im Gegensatz zur Steuerung mit
Nadelimpulsen, sein Zünden auch bei Steuerwinkel α < ϕ für alle nachfolgenden Halbwellen sofort
nach seinem Löschen möglich. Bei einer Steuerung mit α < ϕ wird der Halbleiterschalter in jeder
Halbwelle zum frühestmöglichen Zeitpunkt wieder gezündet und es entstehen die gleichen transienten Einschwingvorgänge wie beim Steuern mit Dauerstrom oder beim Schließen eines mechanischen
Schalters. Um diese Einschwingvorgänge zu meiden, sollte der minimale Steuerwinkel auf αmin = ϕ
begrenzt werden .
u
i
pa
2pi
a
3pi
ac
t
pi
Abbildung 2.9: (π − α) -Impulse
In zwei unabhängigen Versuchsabschnitten wird die Ausgangsspannung einmal analog mittels einer
Steuerspannung (0 − 5V ) durch ein Potentiometer und einmal digital mittels 2 Taster gesteuert.
Zur optischen Veranschaulichung der Phasenanschnittsteuerung wurde ein Halogenscheinwerfer mit
einer Leistung von P = 150W gewählt.
14
2.4
Vorbereitungsaufgaben
2.4
Vorbereitungsaufgaben
2
EINFÜHRUNG IN DIE LEISTUNGSELEKTRONIK
1. Welche Bedingungen müssen erfüllt sein, damit der Thyristor bzw. ein Triac mittels Zündimpuls gesteuert werden kann?
2. Warum zündet ein Thyristor bzw. ein Triac bei einem Zündwinkel von α = 0◦ mit einer Verzögerung, die deutlich größer ist als z.B. bei α = 90◦ ?
3. Welche Bedingungen müssen für die Löschbarkeit (Ausschalten) eines Thyristors bzw. eines
Triacs erfüllt sein? Ist ein Thyristor überhaupt bei reiner Gleichspannung löschbar?
4. Welchen Wert darf der minimale Steuerwinkel αmin bei einer induktiven oder bei einer ohmschinduktiven Last für den ordentlichen Betrieb nicht unterschreiten?
5. Welche Konsequenzen hat die Steuerung eines Halbleiterschalters bei einem Steuerwinkel
α ≤ αmin , wenn
(a) nadelförmige Steuerimpulse,
(b) Steuerimpulse der Breite π − α
verwendet werden?
6. Für einen Wechselstromsteller mit rein induktiver Belastung sind für α = 120◦ der Strom i(ωt)
und die Spannung am Verbraucher uL (ωt) zu zeichnen.
15
3
3
PROZESSORBOARD
Prozessorboard
3.1
Der Prozessor
Der auf diesem Prozessorboard (STK-500) verwendete Mikrocontroller ATMega16 von ATMEL
(Abbildung 3.2 auf der nächsten Seite)4 verfügt über 16 kB Flash Programmspeicher, einen 8 Kanal
10 Bit Analog/Digital Wandler, Timer zur Pulsbreitenmodulation, einen Watchdog-Timer, 32 programmierbare I/O-Ports (Ein- und Ausgänge des Controllers) und ein 1 kB SRAM sowie ein 512
Byte EEPROM.
Die Atmel-Mikrocontroller haben wegen des internen 10-bit A/D-Wandlers große Verbreitung gefunden. Häufige Anwendungsgebiete für einen Mikrocontroller sind (Echtzeit-)Reaktion auf Ereignisse wie Spannungen, Stromstärken, Temperaturen oder Helligkeiten. Diese Überwachungsaufgaben und der direkte Anschluß an analoge Sensoren machen einen A/D-Wandler zu einer unabdingbaren Notwendigkeit. Lösungen mit externen A/D-Wandlern verursachen höhere Kosten und haben
zudem den Nachteil größerer Platinenabmessungen (min. ein zusätzliches Bauteil) und geringerer
Zuverlässigkeit.
Abbildung 3.1: Das Prozessor-Board STK-500
In der Mitte der Platine befindet sich der Prozessor. An allen Ein- und Ausgabeleitungen befinden
sich jeweils ein Widerstand und eine Zenerdiode, die als Überspannungsschutz dienen. Neben dem
Prozessor befindet sich der Quarz, der den 6 MHz Betriebstakt erzeugt.
Auf der linken Seite befinden sich die Portanschlüsse. Jeder 8-Bit Port ist über eine 10-polige Pfostenleiste rausgeführt.
Zur Kommunikation mit dem Steuerboard werden zwei Portanschlüsse verwendet.
3.2
Schnittstellen
Als Schnittstellen besitzt das Board eine serielle RS-232 Schnittstelle für die In-System-Programmierung.
4 Datenblatt
ATMega16, S. 2
16
3.3
Display
3
PROZESSORBOARD
Abbildung 3.2: Pinbelegung des ATMega16
Abbildung 3.3: Schnittstellen
3.3
Display
Unter den Pfostensteckern befindet sich ein Anschluß für ein maximal 80 Zeichen darstellendes alphanumerisches Display.
An diesem Anschluß ist für die Kommunikation mit dem Benutzer ein zweizeiliges alphanumerisches LC-Display mit 16 Zeichen pro Zeile angeschlossen.
Für die Ausgabe einer Variablen gibt es in der Datei Display.c eine Funktion
void DispWriteInt ( char zeile, char spalte, unsigned int wert, char laenge) .
Z.B. mit dem Befehl DispWriteInt( 2 , 4 , x , 3 ); wird die Variable x mit einer maximalen Länge von
drei Zeichen in der 2. Zeile in der 4. Spalte ausgegeben.
Um einen Text auszugeben, wird dieser zuerst in einer Hilfsvariablen gespeichert.
char hilfsvariable[ ] = ” Wort ”;
Mit der Funktion print_string( char *str, unsigned char zeile, unsigned char spalte )
wird das Wort an der Stelle, wo es auf dem Display ausgegeben werden soll, im Displaybuffer gespeichert.
Mit print_string( hilfsvariable , 2 , 3 ) wird das Wort in die 2. Zeile, beginnend mit der 3. Spalte
ausgegeben.
17
4
4
4.1
PROGRAMMIERUMGEBUNG
Programmierumgebung
AVR
Zur Durchführung des Versuches steht ein PC mit der Software CodeVision AVR zur Verfügung.
Mit dieser Software wird der Quellcode erstellt und der Controller programmiert.
CodeVisionAVR beinhaltet einen C cross-compiler und eine integrierte Entwicklungsumgebung, die
für die ATMEL AVR Mikrocontroller entwickelt wurde.
Der C cross-compiler implementiert alle Elemente der ANSI C Programmiersprache, indem sie erst
in Assembler umgewandelt und dann in Maschinencode umgesetzt werden, wobei ein Intel-HEXFile generiert wird.
Um den automatischen Transfer des Programms nach erfolgreicher Kompilierung zum Mikrocontroller zu ermöglichen, ist eine Programmiersoftware in die Entwicklungsumgebung eingebaut.
Abbildung 4.1: Programmierumgebung
Mit dieser Programmierumgebung wird der Controller über die RS-232 Schnittstelle programmiert.
Nach dem Starten des Programms muss das Projekt der jeweiligen Durchführungsaufgabe geöffnet
werden. Im linken Fenster werden alle Dateien angezeigt, die zum Projekt gehören.
Die Datei Steuerboard.c wird im rechten Fenster geöffnet und kann dort für die Lösung der Aufgaben
verändert werden.
Mit dem Button ”Make the projekt” wird das Projekt compiliert und ein HEX-File generiert.
Nach erfolgreicher Compilation wird der Mikrocontroller programmiert.
Dazu muss das Programmierkabel mit dem Prozessorboard verbunden und die Spannungsversorgung
eingeschaltet sein.
18
5
5
PROGRAMMIERUNG
Programmierung
5.1
Die Ports
Mit Ports werden die digitalen Schnittstellen bezeichnet, die als Ein- und Ausgänge den Mikrocontroller mit der Außenwelt verbinden.
Dabei besitzt jeder Port acht Leitungen, die als P0 bis P7 bezeichnet werden. Die Ports arbeiten mit
einer Digitallogik, also ’0’ und ’1’, wobei ’1’ 5V entspricht. Liegen mehr als 5V an einem Port an,
wird der Controller beschädigt.
5.1.1
Zugriff auf Ports
Alle Ports der AVR-Controller werden über Register gesteuert.
Register sind besondere Speicher im Controller mit acht Bit Kapazität, die direkt in Befehlen verwendet werden können. Außerdem können sie sowohl Quelle von Daten als auch das Ziel der Ergebnisse
von Operation sein.
Zur Steuerung der Ein- und Ausgänge sind jedem Port 3 Register zugeordnet:
DDRx : Datenrichtungsregister für Port x (x entspricht A, B, C oder D).
Mit diesem Register wird die Datenrichtung festgelegt, wobei eine ’0’ einem Eingang und eine ’1’
einem Ausgang entspricht.
Jeder Port besteht aus 8 Kanälen (Pins), die über das 8Bit große Portregister initialisiert werden.
Die Bitkombination eines Registers lässt sich auf die verschiedenen Arten: Binär: 0b,
Hexadezimal: 0x wie auch Dezimal: kein Präfix initialisieren.
Mit DDRB=0xFF; wird der gesamte Port B als Ausgang definiert.
(Hexadezimal FF = Dezimal 255 = Binär 11111111)
An der Binärzahl erkennt man die 8Bits, die alle auf ’1’ gesetzt sind.
Alternativ kann auch DDRB=0b11111111; geschrieben werden.
Wenn z.B. nur der 6.Pin des Ports B als Ausgang definiert werden soll,
(Binär 00100000 = Dezimal 32 = Hexadezimal 20) wird das über den Befehl DDRB=0x20;
initialisiert.
Mit dieser Methode wird immer das gesamte Register definiert. Es ist aber auch ein Einzelbitzugriff
möglich, mit dem nur ein Bit unabhängig von den anderen Bits eines Registers verändert werden
kann.
Der Einzelbitzugriff erfolgt über logische Verknüpfungen:
Wenn der Port B schon definiert ist, der Zustand der Bits aber nicht bekannt ist, kann z.B. der 6.Pin
als Ausgang (logisch ’1’) mit der Oder-Verknüpfung geschaltet werden:
DDRB=(DDRB | 0b0010000);
Das 6.Bit ist jetzt auf ’1’ gesetzt, die anderen Bits haben den vorherigen Zustand behalten.
Mit der Und-Verknüpfung kann ein einzelnes Bit (hier 6.Bit) auf ’0’ gesetzt werden:
DDRB=(DDRB & 0b11011111);
PORTx : Datenregister für Port x (x entspricht A, B, C oder D).
Dieses Register wird verwendet, um die Ausgänge eines Ports anzusteuern.
Mit PORTD=0xFF werden alle Pins des Ports D auf ’1’ gesetzt,
19
5.1
Die Ports
5
PROGRAMMIERUNG
mit PORTD.2=1 wird nur der 3. Pin eines als Ausgang definierten Ports auf ’1’ gesetzt.
(PORTD.0 entspricht dem 1. Kanal)
PINx : Eingangadresse für Port x (x entspricht A, B, C oder D).
In diesem Register wird lediglich eine Adresse definiert,
in welcher der aktuelle Zustand der Eingangspins eines Ports vom Controller abgelegt wird.
Der Zugriff auf den Zustand der Pins erfolgt wie bei einem normalen Register.
Mit x=PIND.4 wird der Wert des 5. Pins in x gespeichert.
Mit dem PINx Befehl kann also ein Zustand also nur ausgelesen werden.
5.1.2
Taster und Schalter
Um dem Mikrocontroller externe Steuerbefehle zuführen zu können, müssen Taster an dem Controller angeschlossen werden.
Abbildung 5.1: Taster
Die Taster werden zwischen dem Eingangspin des Controllers und Masse geschaltet. Damit bei offenem Schalter der Controller kein undefiniertes Signal bekommt, wird zwischen der Versorgungsspannung und dem Eingangspin ein sogenannter Pull-Up Widerstand geschaltet. Dieser dient dazu,
den Pegel bei geöffnetem Schalter auf logisch 1 zu ziehen. Der Widerstandswert des Pull-Up Widerstandes sollte nicht zu klein sein, da sonst über den Widerstand ein zu hoher Strom in den Controller
fließen würde. Bei einem zu großen Widerstandswert würde der Eingang nicht mehr auf logisch 1
bleiben, deshalb wurde für die Steuerplatine Pull-Up Widerstände von 10kΩ gewählt. Die AVR’s
haben auch an den meisten Pins softwaremäßig zuschaltbare interne Pull-Up Widerstände. Im Programmcode entspricht das Drücken eines Tasters somit einer logischen 0.
20
5.1
Die Ports
5.1.3
5
PROGRAMMIERUNG
Vorbereitungsaufgaben
1. Wie wird der gesamte Port A als Eingang initialisiert?
2. Bei der Initialisierung sollen die Pins 1, 3, 5 und 7 eines als Ausgang definierten Ports D auf
’1’ gesetzt werden.
3. Wenn am 4. Pin des als Eingang definierten Ports A eine ’1’ anliegt, soll der 1. Pin des Ports
D auf ’0’ gesetzt werden
21
5.2
Die Timer
5.2
Die Timer
5
PROGRAMMIERUNG
Die Timer finden Anwendung für zeitgesteuerte Prozesse und regelmäßig wiederkehrende Aufgaben.
Der Mikrocontroller besitzt einen 8-Bit Timer (256 Werte) und 16-Bit Timer (65536 Werte).
Als Eingangstakt für die Timer/Counter kann entweder die CPU-Taktfrequenz,
der Vorzähler oder ein an einen I/O-Pin angelegtes Signal verwendet werden. Wenn ein externes
Signal verwendet wird, so darf dessen Frequenz nicht höher sein als die Hälfte des CPU-Taktes.
5.2.1
Der Vorzähler (Prescaler)
Der CPU-Takt wird durch den Vorzähler auf eine wählbare Teilung reduziert. Die so geteilte Frequenz wird den Eingängen beider Timer zugeführt. Bei einem CPU-Takt von 6 MHz und einer
Einstellung des Vorteiler auf 1024 wird der Timer mit einer Frequenz von 6 MHz / 1024, also mit
ca. 5,9 kHz versorgt. Wenn der Timer läuft, wird das Daten- bzw. Zählregister mit dieser Frequenz
inkrementiert.
5.2.2
16-Bit Timer/Counter
Viele AVR-Modelle besitzen außer den 8-Bit Timern auch einen oder sogar zwei (einige ATMegaModelle) 16-Bit Timer. Die 16-Bit Timer/Counter sind wesentlich komplexer aufgebaut als die 8-Bit
Timer/Counter, bieten dafür aber auch viel mehr Möglichkeiten:
• Erzeugung eines pulsweitenmodulierten Ausgangssignals (PWM).
• Vergleichswert-Überprüfung mit Erzeugung eines Ausgangssignals (Output Compare Match).
• Einfangen eines Eingangssignals mit Speicherung des aktuellen Zählerwertes (Input Capturing), mit zuschaltbarer Rauschunterdrückung (Noise Filtering).
Folgende Register sind dem Timer/Counter 1 zugeordnet:
TCCR1A = Timer/Counter Control Register A Timer 1
In diesem und dem folgenden Register wird die Verwendung und die Quelle des Timers/Counters
eingestellt.
Für diesen Versuch wird nur das folgende Register verwendet:
TCCR1B = Timer/Counter Control Register B Timer 1
Bit
Name
R/W
Initialwert
7
ICNC1
R/W
0
6
ICES1
R/W
0
5
R
0
4
R
0
3
CTC1
R/W
0
22
2
CS12
R/W
0
1
CS11
R/W
0
0
CS10
R/W
0
5.2
Die Timer
5
PROGRAMMIERUNG
ICNC1 = Input Capture Noise Canceler Timer/Counter 1 (Rauschunterdrückung des Eingangssignals.)
Wenn dieses Bit gesetzt ist und mit dem Input Capture Signal gearbeitet wird, so werden am Input
Capture Pin ICP jeweils 4 Messungen mit der CPU-Frequenz des Eingangssignals abgefragt. Nur
dann, wenn alle 4 Messungen den gleichen Zustand aufweisen, gilt das Signal als erkannt.
ICES1 = Input Capture Edge Select Timer/Counter 1
Mit diesem Bit wird bestimmt, ob die steigende (ICES1=1) oder fallende (ICES1=0) Flanke zur
Auswertung des Input Capture Signals an Pin ICP heran gezogen wird.
CTC1 = Clear Timer/Counter on Compare Match Timer/Counter 1
Wenn dieses Bit gesetzt ist so wird nach einer Übereinstimmung des Datenregisters
TCNT1H/TCNT1L mit dem Vergleichswert in OCR1H/OCR1L das Datenregister
TCNT1H/TCNT1L auf 0 gesetzt.
CS12, CS11, CS10 = Clock Select Bits
Diese 3 Bits bestimmen die Quelle für den Timer/Counter:
CS12
0
0
0
0
1
1
1
1
CS11
0
0
1
1
0
0
1
1
CS10
0
1
0
1
0
1
0
1
Resultat
Stopp, Der Timer/Counter wird angehalten.
CPU-Takt
CPU-Takt / 8
CPU-Takt / 64
CPU-Takt / 256
CPU-Takt / 1024
Externer Pin T1, fallende Flanke
Externer Pin T1, steigende Flanke
TCNT1H, TCNT1L = Timer/Counter Daten Register Timer/Counter 1
Dieses Register ist als 16-Bit Aufwärtszähler mit Schreib- und Lesezugriff realisiert. Wenn der Zähler den Wert 65535 erreicht hat, beginnt er beim nächsten Zyklus wieder bei 0.
In der PWM-Betriebsart wird das Register als Auf/Ab-Zähler verwendet, d.h. der Wert steigt zuerst von 0 bis er den Überlauf von 65535 erreicht hat. Dann zählt das Register rückwärts wieder bis
0.
OCR1BH, OCR1BL = Timer/Counter Output Compare Register Timer/Counter 1
Der Wert im Output Compare Register wird ständig mit dem aktuellen Wert im Datenregister
TCNT1H/TCNT1L verglichen. Stimmen die beiden Werte überein so wird ein sogenannter Output
Compare Match ausgelöst, wenn das entsprechende Bit im TIMSK Register gesetzt ist.
23
5.2
Die Timer
5
PROGRAMMIERUNG
Gemeinsame Register
Verschiedene Register beinhalten Zustände und Einstellungen, welche sowohl für den 8-Bit, als auch
für den 16-Bit Timer/Counter in ein und demselben Register zu finden sind.
TIMSK = Timer/Counter Interrupt Mask Register
Bit
Name
R/W
Initialwert
7
OCIE2
R/W
0
6
TOIE2
R/W
0
5
TICIE1
R/W
0
4
OCIE1A
R/W
0
3
OCIE1B
R/W
0
2
TOIE1
R/W
0
1
OCIE0
R/W
0
0
TOIE0
R/W
0
OCIE2 = Timer/Counter2 Output Compare Interrupt Enable
Beim Timer/Counter 2 kann zusätzlich zum Überlauf ein Vergleichswert definiert werden. Wenn dieses Bit gesetzt ist wird beim Erreichen des Vergleichswertes ein Compare Match Interrupt ausgelöst.
TOIE2, TOIE1, TOIE0 = Timer/Counter Overflow Interrupt Enable
Wenn dieses Bit gesetzt ist, wird bei einem Überlauf des Datenregisters des Timer/Counter 0, 1 oder
2 ein Timer Overflow 0, 1 oder 2 Interrupt ausgelöst.
TICIE1 = Timer/Counter1 Input Capture Interrupt Enable
Wenn dieses Bit gesetzt ist, wird ein Capture Event Interrupt ausgelöst, wenn ein entsprechendes
Signalereignis am Pin 20 PD6(ICP1) auftritt.
OCIE1A, OCIE1B = Output Compare MatchA/MatchB Interrupt Enable Timer/Counter 1
Beim Timer/Counter 1 kann zusätzlich zum Überlauf ein Vergleichswert definiert werden. Wenn
dieses Bit gesetzt ist, wird beim Erreichen des Vergleichswertes ein Compare MatchA/MatchB Interrupt ausgelöst.
OCIE0 = Output Compare Interrupt Enable Timer/Counter 0
Beim Timer/Counter 0 kann zusätzlich zum Überlauf ein Vergleichswert definiert werden. Wenn
dieses Bit gesetzt ist, wird beim Erreichen des Vergleichswertes ein Compare Match Interrupt ausgelöst.
5.2.3
Vorbereitungsaufgaben
1. Wie wird der Timer1 mit einer Frequenz von CPU-Takt / 1024 und einem Startwert von Null
initialisiert?
2. Bei einem Timerwert von 70 soll ein Output Compare MatchB Interrupt ausgelöst werden.
24
5.3
Analoge Eingabe
5
5.3
Analoge Eingabe
PROGRAMMIERUNG
Da der Controller keine analogen Werte direkt verarbeiten kann, müssen sie in digitale Zahlenwerte umgewandelt werden. Der ADC (Analog-Digital-Converter) wandelt analoge Signale in digitale
Werte um, welche vom Controller interpretiert werden können. Dafür muss eine Spannung zwischen
0 und 5 V am ADC Eingang anliegen, die dann in einen digitalen Wert zwischen 0 und 1023 (bei
einem 10Bit ADC) umgewandelt wird. Dies ist z.B. bei einer Ansteuerung mit einem Potentiometer
nötig.
Bei dem ATMega16 stehen ausschließlich die Pins des Port A für den ADC zur Verfügung!
5.3.1
Register des ADC
Der ADC verfügt über eigene Register, welche hier aufgelistet werden:
ADCSRA = ADC Control and Status Register A.
Mit diesem Register wird die Verwendung des ADC eingestellt. Das Register ist wie folgt aufgebaut:
Bit
Name
R/W
Initialwert
7
ADEN
R/W
0
6
ADSC
R/W
0
5
ADATE
R
0
4
ADIF
R/W
0
3
ADIE
R/W
0
2
ADPS2
R/W
0
1
ADPS1
R/W
0
0
ADPS0
R/W
0
ADEN = ADC Enable
Dieses Bit muss gesetzt werden, um den ADC zu aktivieren. Wenn das Bit nicht gesetzt ist, können
die Pins wie normale I/O-Pins verwendet werden.
ADSC = ADC Start Conversion
Mit diesem Bit wird ein Messvorgang gestartet.
Wenn das Bit nach dem Setzen des ADEN-Bits zum ersten Mal gesetzt wird, führt der Controller
zuerst eine zusätzliche Wandlung und erst dann die eigentliche Wandlung aus. Diese zusätzliche
Wandlung wird zu Initialisierungszwecken durchgeführt. Das Bit bleibt nun so lange auf 1, bis die
Umwandlung abgeschlossen ist; im Initialisierungsfall bis die zweite Umwandlung erfolgt ist und
geht danach auf 0.
ADATE = ADC Auto Trigger Enable
Der ADC startet bei Auftreten eines Trigger-Signals. Der Trigger kann über die Bits ADTS im Register SFIOR gewählt werden.
ADIF = ADC Interrupt Flag
Dieses Bit wird vom ADC gesetzt wenn eine Umwandlung erfolgt und das ADC Data Register
aktualisiert ist. Wenn das ADIE Bit gesetzt ist, wird der ADC Interrupt ausgelöst und die InterruptBehandlungsroutine aufgerufen. Das Bit wird automatisch gelöscht, wenn die Interrupt-Behandlungsroutine
aufgerufen wird. Es kann jedoch auch gelöscht werden, indem eine logische 1 in das Register geschrieben wird.
ADIE = ADC Interrupt Enable
Wenn dieses Bit gesetzt ist wird der ADC-Interrupt aktiviert.
25
5.3
Analoge Eingabe
5
PROGRAMMIERUNG
ADPS2 ... ADPS0 = ADC Prescaler Select Bits
Diese Bits bestimmen den Teilungsfaktor zwischen der Taktfrequenz und dem Eingangstakt des
ADC. Der ADC benötigt einen eigenen Takt, welchen er sich selber aus der CPU-Taktfreqenz erzeugt. Der ADC-Takt sollte zwischen 50 und 200kHz sein. Der Vorteiler muss also so eingestellt
werden, dass die CPU-Taktfrequenz dividiert durch den Teilungsfaktor einen Wert zwischen 50200kHz ergibt.
ADPS2
0
0
0
0
1
1
1
1
ADPS1
0
0
1
1
0
0
1
1
ADPS0
0
1
0
1
0
1
0
1
Teilungsfaktor
1
2
4
8
16
32
64
128
ADCL, ADCH = ADC Data Register
Wenn eine Umwandlung abgeschlossen ist, befindet sich der gemessene 10 Bit Wert in diesen beiden 8 Bit Registern. Von ADCH werden nur die beiden niederwertigsten Bits verwendet. Der AVR
Compiler liest beide Register aus und schreibt den Wert in das 16 Bit Register ADCW.
ADMUX = ADC Multiplexer Select Register
Mit diesem Register wird der zu messende Kanal ausgewählt.
Das Register ist wie folgt aufgebaut:
Bit
Name
R/W
Initialwert
7
REFS1
R/W
0
6
REFS0
R/W
0
5
ADLAR
R/W
0
4
MUX4
R/W
0
3
MUX3
R/W
0
2
MUX2
R/W
0
1
MUX1
R/W
0
0
MUX0
R/W
0
MUX2 ... MUX0 : Mit diesem 3 Bits wird der zu messende Kanal bestimmt. Es wird die entsprechende Pinnummer des Ports in das Register geschrieben. Auf die weiteren Bit wird hier nicht näher
eingegangen. Diese sind als Null zu schreiben.
Mit dieser Funktion kann eine AD-Wandlung durchgeführt werden:
// Read the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW/2;
}
26
5.4
Programmieren mit Interrupts
5.4
Programmieren mit Interrupts
5
PROGRAMMIERUNG
Ein Interrupt unterbricht die Ausführung des Hauptprogramms, die Interruptroutine wird ausgeführt
und danach wird das Hauptprogramm an der unterbrochenen Stelle fortgesetzt.
Um das Hauptprogramm nicht unnötig lange zu unterbrechen, sollte die Interruptroutine möglichst
kurz und schnell abzuarbeiten sein.
Die Betätigung eines Tasters könnte z.B einen Interrupt auslösen und einen Zähler erhöhen oder
bei einem Timer löst das Erreichen eines Vergleichswertes einen Output Compare Match Interrupt
aus, welcher für die Ansteuerung einer Phasenanschnittssteuerung wichtig ist.
Um mit Interrupts arbeiten zu können, muss das I-Bit im AVR Statusregister SREG, welches die globalen Interrupts aktiviert, gesetzt werden. Dieses übernimmt der Assemblerbefehl ”sei” : #asm(”sei”);
5.4.1
Interrupt-Quellen
Die folgenden Ereignisse können einen Interrupt auf dem AVR auslösen, wobei die Reihenfolge der
Auflistung auch die Priorität der Interrupts aufzeigt.
Vector No.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Program Address
$000
$002
$004
$006
$008
$00A
$00C
$00E
$010
$012
$014
$016
$018
$01A
$01C
$01E
$020
$022
$024
$026
$028
Source
RESET
INT0
INT1
TIMER2 COMP
TIMER2 OVF
TIMER1 CAPT
TIMER1 COMPA
TIMER1 COMPB
TIMER1 OVF
TIMER0 OVF
SPI, STC
USART, RXC
USART, UDRE
USART, TXC
ADC
EE_RDY
ANA_COMP
TWI
INT2
TIMER0 COMP
SPM_RDY
Interrupt Definition
External Pin, Power-on Reset
External Interrupt Request 0
External Interrupt Request 1
Timer/Counter2 Compare Match
Timer/Counter2 Overflow
Timer/Counter1 Capture Event
Timer/Counter1 Compare Match A
Timer/Counter1 Compare Match B
Timer/Counter1 Overflow
Timer/Counter0 Overflow
Serial Transfer Complete
USART, Rx Complete
USART Data Register Empty
UART, Tx Complete
ADC Conversion Complete
EEPROM Ready
Analog Comparator
Two-wire Serial Interface
External Interrupt Request 2
Timer/Counter0 Compare Match
Store Program Memory Ready
Angemerkt sei hierbei, dass die externen Interrupts ausschließlich folgenden Pins entsprechen können:
INT0: PD2
INT1: PD3
INT2: PB2
27
5.4
5.4.2
Programmieren mit Interrupts
5
PROGRAMMIERUNG
Register
GICR = General Interrupt Control Register.
Interrupts, die durch ein externes Signal ausgelöst werden, heißen externe Interrupts. Diese werden
durch das GIC Register aktiviert.
Bit
Name
R/W
Initialwert
7
INT1
R/W
0
6
INT0
R/W
0
5
INT2
R/W
0
4
R
0
3
R
0
2
R
0
1
IVSEL
R/W
0
0
IVCE
R/W
0
INT0..2 = External Interrupt Request 0..2 Enable
Wenn diese Bits gesetzt sind, wird ein Interrupt ausgelöst, wenn am INT0 - INT2 Pin eine steigende/fallende Flanke oder ein Low-Level (je nach Konfiguration im MCUCR) erkannt wird. Der
Interrupt wird auch ausgelöst, wenn der Pin als Ausgang geschaltet ist. Auf diese Weise bietet sich
die Möglichkeit, Software-Interrupts zu realisieren.
MCUCR = MCU Control Register.
Mit diesem Register wird die Art des Ereignisses, welches einen Interrupt auslösen soll, definiert.
Bit
Name
R/W
Initialwert
7
SM2
R/W
0
6
SE
R/W
0
5
SM1
R/W
0
4
SM0
R/W
0
3
ISC11
R/W
0
2
ISC10
R/W
0
1
ISC01
R/W
0
0
ISC00
R/W
0
Bits 3..0 - ISCX1,ISCX0: External Interrupt Control 1 Bit 1 and Bit 0
Die externen Interrupts 0 und 1 werden durch die Pins INT0 und INT1 ausgelöst, wenn sie im Register GICR aktiviert worden sind. Wie die Interrupts durch die externen Pins aktiviert werden, ist in
der nächsten Tabelle definiert:
ISCX1
0
0
1
1
ISCX0
0
1
0
1
Description
Ein Low Level von INTX generiert eine Interruptanforderung
Jede logische Änderung an INTX generiert eine Interruptanforderung
Die fallende Flanke von INTX generiert eine Interruptanforderung
Die steigende Flanke von INTX generiert eine Interruptanforderung
28
5.4
Programmieren mit Interrupts
5
PROGRAMMIERUNG
GIFR = General Interrupt Flag Register.
Bit
Name
R/W
Initialwert
7
INTF1
R/W
0
6
INTF0
R/W
0
5
INTF2
R/W
0
4
R
0
3
R
0
2
R
0
1
R
0
0
R
0
Bits 7..5 - INTF0..2: External Interrupt Flags 0..2
Bei Aktivierung der externen Interrupts INT0 - INT2 wird das jeweilige Flag automatisch zu 1 gesetzt. Gelöscht wird es wieder, wenn die jeweilge Interrupt-Routine abgearbeitet wurde. Alternativ
wird es auch durch das Hineinschreiben einer logischen 1 gelöscht.
5.4.3
Vorbereitungsaufgaben
1. Wie werden die externen Interrupts 0 und 1 aktiviert?
2. Die beiden Interrupts sollen bei der fallenden Flanke ausgelöst werden.
29
6
6
STEUERBOARD
Steuerboard
Auf dem Steuerboard, welches direkt an das Controllerboard angeschlossen wird, befindet sich die
Leistungselektronik, die Spannungsversorgung für das Prozessorboard, eine Schaltung für die Nulldurchgangsdetektion der Netzspannung, 8 LEDs zur optischen Anzeige sowie 2 aktive Taster für die
manuelle Eingabe.
Die LEDs sind am PORTB.0 bis PORTB.7 angeschlossen, die Taster an PIND.0 und PIND.1.
Abbildung 6.1: Steuerboard
Im folgenden wird auf die einzelnen Elemente näher eingegangen:
6.1
Taster und LEDs
Da die Ausgangssignale des Controllers für den Betrieb von mehreren LEDs zu schwach sind, werden die Signale über Transistoren verstärkt, die die an Vcc angeschlossen LEDs mit GND verbinden.
Die Taster verbinden bei Betätigung den Controllereingang mit GND; der Eingang wird also auf ’0’
gesetzt.
6.2
Nulldurchgangsdetektor
Die Zeitverzögerung des Ansteuersignals für die Leistungsendstufe muss sich auf eine absolute
Zeit nach dem Nulldurchgang der Netzspannung beziehen. Deshalb ist eine Synchronisation mit
der Netzspannung in Form eines Nullspannungsdetektors erforderlich.
Der Nulldurchgangsdetektor setzt beim Nulldurchgang der Spannung das Signal, welches am Controller am PORTD.2 angeschlossen ist, auf ’0’.
Durch einen Impulsformer wird das Signal des Nullspannungsdetektors in einen genau definierten
Impuls umgewandelt.
Abb. 6.2 zeigt den zeitlichen Verlauf des gleichgerichteten Sinus der Netzspannung und das Signal
des Nulldurchgangsdetektors.
30
6.3
Leistungselektronik
6
STEUERBOARD
Abbildung 6.2: Nulldurchgangsdetektion
6.3
Leistungselektronik
Die Ansteuerung der Zweiwegehalbleiterschalter (Triac) erfolgt mit einem speziellen Optokoppler,
dem Opto-Triac. Mit dem Opto-Triac MOC3020 ist auf einfache Weise eine (π−α)-Treiberschaltung
zu realisieren, da auch das im Steuerkreis befindliche Triac stromführend bleibt, solange der Haltestrom nicht unterschritten wird.
Am Optotriac sind Phase und Gateleitung angeschlossen, die bei einem positivem anliegendem
Zündsignal miteinander verbunden werden. So liegt dann am Gate des Triacs (T2) eine genügend
hohe Spannung an, um ihn zu zünden.
Das aus R14 und C10 bestehende RC-Glied dämpft die durch den Trägerstaueffekt (TSE) hervorgerufenen Spannungen.
Die durch die Phasenanschnittssteuerung veränderbare Spannung für den Halogenstrahler liegt zwischen X2-1 und X2-3 an.
Abbildung 6.3: Leistungselektronik
31
7
LEDs
Taster
Potentiometer
Nulldurchgangsdetektor
Optokoppler
DURCHFÜHRUNG
PORTB.0 - PORTB.7
PIND.0 - PIND.1
PINA.0
PIND.2
PORTD.3
Tabelle 7.1: Zusammenfassung der Anschlüsse
7
Durchführung
7.1
Aufgaben zur Einarbeitung
1. Eine LED soll über 2 Taster ein- und ausgeschaltet werden.
2. Der Wert des Potentiometers, das an PINA.0 angeschlossen ist, soll über den A/D-Wandler in
den Mikrocontroller eingelesen werden und auf dem Display angezeigt werden.
3. Durch Drücken des Tasters an PIND.0 soll ein Zähler erhöht werden
4. Ein Timer soll mit einer Frequenz von CPU-Takt / 1024 gestartet werden und beim Erreichen
eines Vergleichswertes von 70 soll ein Interrupt ausgelöst werden, der einen Zähler erhöht.
7.2
Steuerung des Halogenstrahlers durch ein Potentiometer
In diesem Versuchsteil soll der Halogenstrahler über das Potentiometer gesteuert werden. Dazu müssen die analogen Werte des Potentiometers eingelesen und mit Hilfe des A/D-Wandlers in digitale
Werte umgewandelt werden.
Nun soll mit Timern und Interrupts die Phasenanschnittssteuerung implementiert werden, die über
den Schieberegler gesteuert werden soll.
7.3
Steuerung des Halogenstrahlers durch zwei Taster
Im nächsten Versuchsteil soll die Phasenanschnittssteuerung über zwei Taster gesteuert werden. Der
eine Taster (PIND.0) soll den Phasenanschnittswinkel erhöhen und so den Strahler dimmen, der
andere Taster (PIND.1) die Helligkeit des Strahlers erhöhen.
32
8
8
LITERATURVERZEICHNIS
Literaturverzeichnis
[1]
Soter, Dr.-Ing. S.: Leistungselektronik I/II, Skriptum zur Vorlesung,
Wintersemester 2002/2003. Lehrstuhl für Maschinen, Antriebe und Leistungselektronik,
Universität Dortmund
[2]
Ulrich Tietze, Christoph Schenk: Halbleiter-Schaltungstechnik / - Berlin Springer Verlag;
11. neubearbeitete Auflage 1999 ISBN 3-540-64192-0
[3]
Datenblatt des Controllers ATMega16, Atmel
[4]
Mikrocontroller Tutorial
http://www.mikrocontroller.net/articles/c/Index.htm
[5]
Meyer, M.: Leistungselektronik, Springer Verlag, ISBN 3-540-52460-6
[6]
Zach, F.: Leistungselektronik,Springer Verlag,
3.Auflage 1989, ISBN 3-211-82179-1
[7]
Heumann, K.: Grundlagen der Leistungselektronik, Teubner Verlag,
6.Auflage 1996, ISBN 3-519-06110-4
[8]
Soter, Dr.-Ing. S. , Buchhold, Dipl.-Ing. S. , Lach, Dipl.-Ing. R. : Versuch 416,
Microcontrollergesteuerter Wechselstromsteller. Version 0.1, Lehrstuhl für Maschinen,
Antriebe und Leistungselektronik, Universität Dortmund
[9]
Soter, Dr.-Ing. S. , Buchhold, Dipl.-Ing. S. , Lach, Dipl.-Ing. R. : Versuch 415,
Microcontrollerprogrammierung für die Leistungselektronik. Version 2.1, Lehrstuhl
für Maschinen, Antriebe und Leistungselektronik, Universität Dortmund
33
Herunterladen