Bachelorprojekt

Werbung
Bachelorprojekt
18. Dezember 2012
Bachelorprojekt
„Energieerzeugung mithilfe eines Ergometers“
Robert Becker:5024356 , Sebastian Wilken: 5024355
18.12.2012
Betreuer: Prof. Dr.-Ing. Dirk Rabe , Dipl.-Ing. Harald Buss
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Inhaltsverzeichnis
1. Eidesstattliche Erklärung ................................................................................ 4
2. Einführung ...................................................................................................... 5
2.1 Projektstand ............................................................................................. 5
2.2 Ablauf des Projektes ................................................................................. 7
3. Inbetriebnahme ............................................................................................. 8
4.Komponenten ............................................................................................... 11
4.1 Generator ............................................................................................... 11
4.2 Ergometer .............................................................................................. 12
4.3 Anzeige mit Lichtleiste ............................................................................ 14
4.4 Display am Lenkrad ................................................................................ 15
5.Messungen .................................................................................................... 16
5.1 Strom- Spannungs- und Leistungsmessung ............................................ 16
6. Hardware ..................................................................................................... 23
6.1 I2C 7-Segment-Anzeigen ........................................................................ 24
6.2 Analog-Digital-Wandler .......................................................................... 24
6.3 Lade- und Erreger-Schaltung .................................................................. 25
6.5 I2C Ansteuerung Display ......................................................................... 27
6.6 Counterschaltung ................................................................................... 27
7. Software ....................................................................................................... 28
7.1Aufgabe der Software.............................................................................. 28
7.2 Entwicklungsumgebung .......................................................................... 29
7.3. Ablaufdiagramme .................................................................................. 29
7.3.1 Hauptprogramm .............................................................................. 30
7.3.2 Interrupt Service Routine................................................................. 31
7.4 Bibliotheken der Software ...................................................................... 33
7.5 Bestandteile der Software ...................................................................... 34
7.5.1 void ad_init() ................................................................................... 34
2
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.5.2 void ad_read() ................................................................................. 34
7.5.3 void Last_i2c(unsigned char value) .................................................. 34
7.5.4 void umrechnung (unsigned int daten) ............................................ 34
7.5.5 void segout1(unsigned int wert,unsigned char Adresse) ................. 35
7.5.6 void segout2(unsigned int wert,unsigned char Adresse) ................. 35
7.5.7 void segout3(unsigned int wert,unsigned char Adresse) ................. 35
7.5.8 ISR(TIMER0_COMP_vect) ................................................................ 36
7.5.9 void TIMER0_interrupt_init() ........................................................... 37
7.5.10 void InitPWM() .............................................................................. 37
7.5.11 void setPWM_Err(unsigned char pwm1) ....................................... 38
7.5.12 void reset() .................................................................................... 38
7.5.13void Port_INIT() .............................................................................. 38
7.5.14 void lcd_ausgabe() ......................................................................... 38
7.5.15 int main() ....................................................................................... 39
8. Zeitmanagement .......................................................................................... 40
9.Tests .............................................................................................................. 43
10. Fazit ............................................................................................................ 43
11. Quellen ....................................................................................................... 44
3
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
1. Eidesstattliche Erklärung
Erklärung
[ ]
Soweit unsere Rechte berührt sind, erklären wir uns damit
einverstanden, dass das Bachelorprojekt für Angehörige der Hochschule
Emden/Leer für Studium/ Lehre/ Forschung uneingeschränkt zugänglich
gemacht wird.
Eidesstattliche Erklärung
Hiermit versichern wir, dass wir das vorliegende Bachelorprojekt bis auf die
offizielle Betreuung eigenständig und ohne fremde Hilfe angefertigt haben und
die benutzten Quellen und Hilfsmittel vollständig angegeben sind.
Ort, Datum
Robert Becker
Sebastian Wilken
4
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
2. Einführung
Die Grundlage für das Bachelorprojekt „Energieerzeugung mithilfe eines
Ergometers“ lag in dem Bachelorprojekt „Energieerzeugung mit Hilfe eines
Rudergerätes und eines Ergometers“.
Die Grundidee des Projektes war, die Möglichkeit zu schaffen, elektrische
Energie aus Muskelkraft zu erzeugen und diese auch anschaulich darzustellen.
Bei dem bestehenden Projekt sollte die Effizienz gesteigert , verschiedene
Schwierigkeitsstufen eingestellt und die erzeugte Energie in Akku´s gespeichert
werden können, um einen „netzfreien-Betrieb“ sicher zu stellen. Wie auch
schon zu Beginn, sollte dieses Projekt der Veranschaulichung der
Energieerzeugung mit Muskelkraft dienen. Auch der Aufwand von der
Energieerzeugung in einem Kraftwerk soll durch dieses Projekt gezeigt werden,
indem man selber beim Treten merkt wie schwer es doch ist ein paar Watt zu
produzieren.
2.1 Projektstand
Zu Beginn des Projektes ist die ursprüngliche Aufgabe, ein Energiefahrrad zu
entwickeln, mit dem durch Muskelkraft erzeugte mechanische Energie in
elektrische Energie umgewandelt und visualisiert wird.
Ein weiteres Projekt war die Energieerzeugung mit Hilfe einer Rudermaschine.
Nach anfänglichen Lieferschwierigkeiten des zu verwendenden Ergometers,
welches nach mehreren Kriterien ausgewählt wurde, hat sich der Projektstart
um etwa 2 Monate verschoben. Nachdem am Ergometer die Lichtmaschine
sowie der Rippenriemen montiert war, wurde das Energiefahrrad von der
Rudermaschinen-Gruppe übernommen und an die entwickelte Steuerung
angeschlossen. Das Ergometer sollte auf den Emder Energietagen vorgestellt
werden, da sich die Rudermaschine als nur bedingt tauglich für dieses
Vorhaben erwies.
Nach den Energietagen wurde das Projekt übernommen. Zu diesem Zeitpunkt
war es möglich, mit dem Ergometer eine elektrische Leistung von etwa 65
Watt zu erzeugen. Die erzeugte Energie wurde einmal auf Displays in Zahlen
angezeigt und zum anderen, sichtbar durch das Zuschalten von Strahlern bei
steigender Leistung. Des Weiteren dient das Terminalprojekt einer anderen
Gruppe zur Visualisierung der Messdaten auf einen PC. Mittels USB5
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Schnittstelle werden die Messdaten auf das Terminalprogramm übertragen
und dort dargestellt. Es ist auch möglich die erfassten Daten auszudrucken,
siehe auch Abbildung 1. Der Erregerstrom wurde mittels Netzteil erzeugt. In
Abbildung 1 ist zu erkennen, welche Leistung man vor der Optimierung
erreichen konnte.
Abbildung 1: Urkunde Energietage
6
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
2.2 Ablauf des Projektes
Bedingt durch die Übernahme des Projektes von der „Gruppe Rudermaschine“,
gab es am Anfang einige Probleme, da keine Ausarbeitung zu dem Projekt
vorhanden war. Wir mussten uns somit selbst einen Überblick verschaffen, was
die andere Gruppe überhaupt eingebaut und umgesetzt hat. Nachdem jedoch
eine Beschreibung zu dem Projekt vorlag, ging die Optimierung relativ zügig
voran. Als erstes wurde einfach ein alter Autolüfter als Last an das Ergometer
geschlossen. Mit einem Amperemeter und einem Voltmeter wurde gemessen,
welcher Strom und welche Spannung fließt bzw. erzeugt werden konnte. Nach
Auswertung der Messergebnisse wurde festgestellt, dass die erzeugte Leistung
deutlich über 60 Watt liegt. Nun wurde mit der Fehlersuche an dem Projekt
begonnen und vorhandene Fehler dann durch, z.B. eine neue Messschaltung
behoben.
Des Weiteren wurde von uns die Erreger- und Ladeschaltung neu entwickelt.
Dadurch ist es nun möglich über das Programm den Erregerstrom durch Akkus
oder mit Hilfe eines Netzteils zu erzeugen. Auch wurden die zwei vorhandenen
Netzteile durch nur eins ersetzt. Der Mikrocontroller wird nun über die neue
Ladeschaltung versorgt, wodurch ein Netzteil entfallen konnte. Auch ist nun ein
Akku Betrieb ohne Netzteil möglich.
Um den Gangschaltung zu simulieren, wurde von uns die in Abbildung 10 zu
sehende Box entwickelt und an das Lenkrad montiert. Die Display - Hardware
wurde von dem vorherigen Projekt übernommen, jedoch von uns
programmiert und am Lenker montiert.
Die Software wurde größtenteils von der Gruppe Rudermaschine
übernommen, lediglich einige Parameter und Mittelwerte wurden geändert.
Die PWM Steuerung und Displayausgabe wurde von uns neu geschrieben.
7
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
3. Inbetriebnahme
Das Ergometer hat fünf Anschlüsse, welche richtig angeschlossen werden
müssen. In diesem Abschnitt wird kurz erläutert, wie dies richtig gemacht wird.
Wie in Abbildung 2 zu erkennen ist, sieht man die Box, die von der
Lichtmaschine abgeht. Hier wird zum einen das graue Kabel angeschlossen, es
dient der Verbindung zwischen Lichtmaschine und Messschaltung, zum
anderen fließt über dieses Kabel der Erregerstrom.
Über das Koaxialkabel wird das Signal vom Reed-Kontakt, ob getreten wird
oder nicht, an den Mikrocontroller weiter gegeben.
Abbildung 2: Anschlussbox Lichtmaschine
In Abbildung 3 sieht man die Anschlüsse für die Lichtleiste. Zum einen wird die
Energie welche erzeugt wird auf die Lichtleiste gegeben, zum anderen wird
über den Mikrocontroller gesteuert, in welcher Reihenfolge die Lampen
zugeschaltet werden.
8
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Abbildung 3: Anschluss Lichtleiste
In Abbildung 4 ist das LCD-Display zu sehen, welches über das blaue Kabel mit
dem Mikrokontroller verbunden wird. Es dient der Ansteuerung des Display auf
dem die aktuelle Schwierigkeitsstufe angezeigt wird und der Steuerung des
Erregerstroms.
Abbildung 4: Anschluss LCD-Display
9
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Die nachfolgende Grafik (Abbildung 5) stellt den 7-poligen Stecker am LCDDisplay dar. Die Pin Belegung wird mit angegeben.
Abbildung 5: Anschluss Stecker LCD-Display
10
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
4.Komponenten
4.1 Generator
Abbildung 6: Generator
Als Generator (Abbildung 6) wurde eine herkömmliche Lichtmaschine, wie sie
auch in Autos verwendet wird, verbaut. Diese kann einen Ladestrom von 120 A
und eine Spannung von etwa 14V erzeugen.
Die Lichtmaschine besteht aus einer Erregerspule, welche mit den
Schleifringen verbunden ist. Sie befindet sich im Läufer der Lichtmaschine. Die
Erregerspule erzeugt ein Magnetfeld entlang der Klauen im Läufer, die an den
Stator- oder Ständerwicklungen vorbeiläuft und dadurch eine Spannung
erzeugt. Um eine nahezu gleichmäßige Spannung zu erzeugen, sind die
Wicklungen um 120° Phasenverschoben. Mit Hilfe von Dioden wird die
erzeugte Spannung in eine pulsierende Gleichspannung umgewandelt.
Der vorhandene Laderegler wurde entfernt und die Anschlüsse der Schleifer
wurden nach außen gelegt. Hierdurch wurde ermöglicht, dass man einen
eigenen Erregerstrom zuführen kann und somit die Energieerzeugung regeln
kann.
11
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
4.2 Ergometer
Abbildung7: Ergometer, wie es geliefert wurde
Nach Recherchen im Internet und Informationsbeschaffung in einem
Sportgeschäft, wurde von uns das Ergometer Golf P der Marke Kettler
(Abbildung 7) ausgewählt. Dieses schien für das Projekt am besten geeignet zu
sein. Die Verkleidung, die Anzeige sowie die Magnetbremse wurden entfernt,
da diese für das Projekt nicht benötigt wurden.
Nach der Demontage wurde eine Halterung für die Lichtmaschine am
Ergometer montiert und letztlich auch die Lichtmaschine montiert und
ausgerichtet (Abbildung 8). Mit Hilfe eines Keil-Rippen-Riemens konnte von
uns die Lichtmaschine mit dem Schwungrand des Ergometers verbunden
werden, somit ergab sich ein ideales Übersetzungsverhältnis.
12
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Abbildung 8: Ergometer umgebaut zum Energiefahrrad.
13
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
4.3 Anzeige mit Lichtleiste
Abbildung9: Anzeige und Lichtleiste
Über eine Steckverbindung lässt sich das Ergometer mit der Lichtleiste und
den Anzeigen verbinden (Abbildung 9). Die Lichtleiste wird vom
Mikrokontroller gesteuert. Bis zu einer Leistung von 30 Watt leuchten die
unteren drei Lampen und alle 20 Watt wird eine weitere Lampe dazu
geschaltet. Sinkt die erzeugte Leistung wieder werden die Strahler dann
wieder von oben nach unten abgeschaltet.
Über die Anzeigen werden die Spannung, der Strom, die Leistung und die
produzierte Energie angezeigt. Über eine weitere Anzeige läuft eine Stoppuhr,
die über einen Reed Kontakt an den Pedalen startet und auch nur so lange
weiter läuft, wie getreten wird. Des Weiteren befindet sich ein Reset-Knopf in
der Mitte, um die Zeit wieder auf 0 zu setzen.
14
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
4.4 Display am Lenkrad
Abbildung 10: LCD-Display
Am Lenkrad des Ergometers wurden ein I2C-Display und zwei Taster
angebracht (Abbildung 10). Das Display zeigt die aktuelle Schwierigkeitsstufe
an, mit welcher getreten wird. Über die beiden Taster lassen sich 9
verschiedene Stufen einstellen. Mit Hilfe einer PWM Schaltung wird der
Erregerstrom geregelt. Hierdurch ist es möglich, die Leistung mit wenig Kraft,
dafür mit einer hohen Drehzahl oder in den höheren Stufen mit viel Kraft und
einer geringeren Drehzahl zu produzieren.
15
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
5.Messungen
5.1 Strom- Spannungs- und Leistungsmessung
Abbildung 11: Messungsaufbau
Zur Leistungsmessung der Lichtmaschine und Überprüfung der Anzeigen wurde
mit Hilfe einer drehzahlverstellbaren Standbohrmaschine, die über den KeilRippen-Riemen mit der Lichtmaschine verbunden ist (Abbildung: 11), mehrere
verschiedene Drehzahlen eingestellt und Messungen durchgeführt. Die
Bohrmaschine wurde eingesetzt, da es so möglich war die eingestellten
Drehzahlen konstant zu halten. Es wurden unter anderem die Spannung und
der Strom gemessen, wodurch dann die Leistung (P=U*I) und die Energie
(E=U*I*t)errechnet wurden. Für die Strommessung wurde ein Multimeter der
Marke Fluke 87 V in Reihe geschaltet. Für die Spannungsmessung wurde ein
weiteres Multimeter der Marke Fluke 87 V parallel geschaltet(Abbildung 12).
Die gemessenen bzw. die errechneten Werte wurden dann mit denen auf der
Anzeige verglichen, um sicherzustellen, dass die angezeigten Werte mit den
16
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
gemessenen Werten übereinstimmen. Zudem wurde ein Oszilloskop der Marke
Agilent 54622D mit in die Messung aufgenommen, um die Leistung anzuzeigen
und aufzuzeichnen. Für die Strommessung wurde hier eine Stromzange der
Marke Tektronix TCP 303 verwendet.
Abbildung 12: Schaltung
In der Abbildung 13 ist Strom-, Spannungs- und Leistungsmessung mit dem
Oszilloskop dargestellt.
Es wurden verschiedene Drehzahlen eingestellt und gleichzeitig Messungen
durchgeführt. Mit der Multiplikationsfunktion lassen sich der Kanal 1
(Spannung) und der Kanal 2 (Strom) multiplizieren, und man erhält somit die
Leistung (P= U*I). Da in Abbildung 13 Kanal 1: 2V/Div. und Kanal 2: 5A/Div.
hat, kann man diese beiden Werte multiplizieren und so erhält man für die
Leistungskurve: 10W/Div.. Die Leistungskurve ist in Abbildung 13 die oberste
Kurve. In Abbildung 14 ist die Leistungskurve mit dem Terminalprogramm zu
sehen. In Abbildung 15 und 16 ist dasselbe Prinzip wie in Abbildung 13 und 14,
außer das andere Drehzahlen eingestellt sind.
17
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Abbildung 13: Strom-, Spannungs- und Leistungsmessung
Kanal 1: 2V/Div. (Mitte)
Kanal 2: 5A/Div. (Unten)
Kanal 1*2: 10W/Div. (Oben)
Zeitbasis: 5s/Div.
Abbildung 14: Leistungsmessung mit der Terminal Projektsoftware
18
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Abbildung 15:Strom-, Spannungs- und Leistungsmessung
Kanal 1: 2V/Div.
Kanal 2: 5A/Div.
Kanal 1*2: 10W/Div. (Oben)
Zeitbasis: 5s/Div.
Abbildung 16:Leistungsmessung mit der Terminal Projektsoftware
19
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Die Abbildungen 13 bis 16 zeigen, dass die gemessenen Werte mit dem
Oszilloskop den angezeigten Werte auf dem Terminalprogramm sehr nahe
kommen. In der Abbildung 14 sieht man, dass die Maximal Leistung bei 35 Watt
liegt. In Abbildung 13 liegt das Maximum bei ca. 32 Watt. In Abbildung 15
wurde die Messung mit einer geringen Drehzahl begonnen. Dies kann man gut
erkennen, da die Werte nicht auf der Nulllinie anfangen. In Abbildung 16 ist
auch zu erkennen, dass mit einer geringen Drehzahl das Programm gestartet
wurde. Da der erste Wert dort jedoch bei Null liegt, fängt die Kurve nicht bei ca.
8W an. Der nächste Wert stimmt jedoch dann wieder. Auch in Abbildung 15
und 16 passen die max. Leistung ungefähr überein. In Abbildung 15 liegt die
Leistung bei ca. 25W und in Abbildung 16 ebenfalls bei 25W. Die geringen
Abweichungen lassen sich durch Messabweichungen erklären.
Zusätzlich wurde eine Messtabelle aufgenommen, bei der eine konstante
Drehzahl mit der Bohrmaschine eingestellt worden ist, und nur die
Erregerstufen hochgeschaltet wurden. In Abbildung 17 wurden die Werte von
den Anzeigen während der Messungen mitgeschrieben und mit den
gemessenen verglichen. Da das Amperemeter jedoch nur bis 10 A belastet
werden kann, wurden ab 10 A nur noch die Werte von der Anzeige abgelesen.
In Abbildung 18 sind nochmal alle Messwerte in einem Diagramm dargestellt
und man sieht, dass die angezeigten Werte mit den gemessenen Werten
übereinstimmen.
Stufe
Messgerät
U in V I in A
Anzeige
P
in
berechnet
20,6
30,5
45,2
73,6
97,0
W
U in V
I in A
P in W
1
4,8
4,3
4,7
4,1
20,0
2
6,1
5,0
6,4
5,0
31,0
3
7,8
5,8
8,2
5,7
46,0
4
9,2
8,0
9,1
8,0
72,0
5
10,0
9,7
10,2
9,7
97,0
6
10,2
10,3
12,3
124,0
7
11,0
11,2
16,6
185,0
8
11,8
11,7
16,6
194,0
9
12,6
12,7
16,8
213,0
Abbildung 17: Messtabelle Anzeige und Messgerät bei unterschiedlichen
Erregerstufen
20
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
250,0
Messgerät U in V
200,0
V/A/W
Messgerät I in A
150,0
Messgerät P in W
berechnet
100,0
Anzeige U in V
50,0
Anzeige I in A
0,0
0
2
4
6
8
10
Anzeige P in W
Stufen
Abbildung 18: Diagramm zu der Messtabelle
In der Abbildung 1 ist eine Messaufzeichnung mit dem Terminalprogramm vor
der Optimierung dargestellt und Abbildung 19 zeigt eine Aufzeichnung nach der
Optimierung. In der Abbildung 19 ist zu sehen, dass die durchschnittlich
erzeugte Leistung bei 145 Watt liegt und zwischenzeitlich eine Leistung von
über 200 Watt produziert worden ist. Die Ursache für die
Leistungsunterschiede lag daran, dass der Strom vor der Optimierung in die
Sättigung gegangen ist und somit die Werte falsch berechnet worden sind.
21
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Abbildung 19: Urkunde Tag der offenen Tür
22
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
6. Hardware
Die Abbildung 20 zeigt die Platinen wie der Messschaltung, die Lade- und
Erregerschaltung, der Analog-/Digitalwandler, den I2C Sternpunkt und die
Schnittstelle für den USB-Anschluss. Zudem befindet sich ein Netzteil und das
AT Mega 32 Bord auf der Rückwand. Die Abbildung 21 zeigt die Sieben
Segmentanzeigen mit einem weiteren I2C Sternpunkt. Die Komponenten
werden in den folgenden Unterabschnitten näher erläutert.
Abbildung 20: Hardwarekomponenten
Abbildung 21: Sieben Segmentanzeigen (von hinten)
23
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
6.1 I2C 7-Segment-Anzeigen
Die I²C 7-Segment-Anzeigen wurden von dem vorherigen Projekt übernommen
und auch nicht weiter verändert:
Mit Hilfe des SAA1064 und dem I2C-Bus wurde die Ansteuerung der SiebenSegment-Anzeigen realisiert. Über die Signalausgänge des SAA1064 werden die
vier Siebensegmentanzeigen gesteuert, da der IC nur sechzehn Signalausgänge
hat, jede Anzeige aber acht Eingänge braucht, musste ein Multiplexbetrieb
hergestellt werden.
Der IC ist für vier Anzeigen ausgelegt. Die Signalausgänge MX1 und MX2
wurden jeweils über einen Transistor angesteuert, dieser schaltet dann die
Anode der Anzeigen und schaltet so zwischen der ersten und dritten oder der
zweiten und vierten Anzeige um.
Der eine Adresseingang des SAA1064 wurde mittels einer definierten Spannung
angesteuert.
Diese Spannungen können durch VierSlave-Adressen eingestellt werden. Durch
das Anlegen der Betriebsspannung in Höhe von 5 Volt werden beide Bits vonA0
und A1 auf High gesetzt, analogdazu bei Anlegen der Masse beide Bits auf
Low1.
6.2 Analog-Digital-Wandler
Ebenfalls übernommen wurde der Analog-Digital Wandler, welcher nach
Überprüfung einen einwandfreien Betrieb sicherstellt.
„Die Analog-Digital Wandler Schaltung ist mit einem PCF8591 aufgebaut
worden. Der IC hat vier8Bit AD-Eingänge und einen DA-Ausgang, der aber nicht
genutzt wurde. Der IC konnte über den I2C-Bus mit dem Mikrocontroller
verbunden werden. Eine Jumper-Matrix hatte es möglich gemacht, jeden
einzelnen der drei Adresseingänge A0, A1und A2 auf High oder Low zu legen.
Durch diese Einstellungsmöglichkeit konnten bis zu acht verschiedene I2C-Bus
Adressen vergeben werden. Der PCF8591 benötigte weiter eine
Referenzspannung, die am VREF Eingang angelegt werden musste. Die
Referenzspannung war nötig, um vorzugeben, welche Spannung demobersten
Wert von 255 entsprechen sollte. Sie war über einen TL
431(programmableshuntvoltagereference) und einen zehn Kiloohm
Potentiometer im Bereich von etwa 2,5 Volt bis 4,5 Volt einzustellen.“2
1
2
[SKP12]
[SKP12]
24
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
6.3 Lade- und Erreger-Schaltung
Die Lade- und Erregerschaltung wurde zusammen auf einer Platine realisiert
(Abbildung 22-23). Es sind zum einen ein Netzanschluss und parallel dazu die
Akkuanschlussklemmen auf der Platine, wodurch einmal der Betrieb über ein
Netzteil, das 12-14V liefert oder zwei Akkupacks, die zusammen 13V liefern,
möglich. Mit Hilfe eines PWM (Puls Weiten Modulation) Signals, das auf einen
P-Kanal MOSFET gelegt wird und vom Mikrocontroller gesteuert wird, lässt sich
mit zwei Tastern am Lenkrad des Ergometers der Erregerstrom von 0,5 A bis 2,0
A einstellen. Das PWM Signal, welches im Programm realisiert wird, steuert
über Zeitliche Impulse den Strom. Das PWM Signal wird in Abschnitt 7.4.10
noch näher erläutert. Die Schottky Diode dient als Freilaufdiode. Ein höherer
Erregerstrom ist nicht durchführbar, da die aufzubringende Kraft mechanisch
und körperlich nicht möglich bzw. übertragbar ist. Durch Dioden ist es möglich,
einen Betrieb über Netzteil oder Akkus zu gewährleisten. Sobald alle Lampen
zugeschaltet sind und die Spannung an der Lichtleiste größer ist als die
Spannung der Akkus, wird die Spannung zum Laden der Akkus verwendet. Die
Dioden gewährleisten einen Betrieb, entweder über Netzteil oder über Akkus
da sie nur in eine Richtung Strom durchlassen. Wird das Ergometer nicht
verwendet, bzw. kein Strom verbraucht, aber das Netzteil ist angeschlossen,
z.B. nachts, werden die Akkus über einen 100Ω Widerstand vom Netzteil
geladen. Durch den 100Ω Widerstand wird der Ladestrom begrenzt und somit
wird ein überladen verhindert.
An dem 15V Teil wird mittels einer Spannungsgleichrichterschaltung die
Spannung auf 8V reduziert und somit die Betriebsspannung für die
Mikrocontroller-Platine hergestellt.
25
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Abbildung 22:Schaltplan Erreger/Ladeschaltung
Abbildung 23: Platine Erreger/Ladeschaltung
26
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
6.5 I2C Ansteuerung Display
Um das Display über den Bus anzusteuern, wurde ein PCF8574 verwendet.
Diese Schaltung wurde nicht verändert. Da eine einwandfreie Funktion
gegeben war, gab es keinen Grund eine neue Schaltung zu entwickeln. Zur
Einstellung weiterer Sub-Adressen, ist eine Jumper-Matrix eingesetzt worden,
mit deren Hilfe jeder der drei Adresseingänge entweder auf High oder auf Low
gesetzt werden kann.
Um den Kontrast des Displays einstellen zu können, integrierte man ein 1k Ohm
Potentiometer. Die Schaltung wurde ansonsten nach den Angaben des
Datenblattes realisiert3.
6.6 Counterschaltung
Die Anzeige für die Sekunden wurde mit einer Counterschaltung realisiert, sie
wird mit dem Takt aus dem Mikrocontroller gesteuert. Die Schaltung war
bereits vorhanden und wurde übernommen. Mit einem Potentiometer kann
man die Leuchtstärke der Siebensegmentanzeige an die der übrigen
angleichen4.
3
4
[SKP12]
[SKP12]
27
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7. Software
7.1Aufgabe der Software
Mit der Software kann man die gemessenen Werte des AD-Wandlers mit Hilfe
des I2C- Bus abfragen. Die Werte werden dann umgerechnet und auf die
Sieben-Segment-Anzeigen übertragen. Für das Terminal Projekt werden die
berechneten Leistungswerte an einen PC übertragen, diese setzen sich aus den
gemessenen Strom- und Spannungswerten zusammen. Durch eine serielle
Schnittstelle wird die Übertragung durchgeführt, diese Schnittstelle befindet
sich auf dem ACR-CTRL Board. Mit einem Adapter von RS232 auf USB, der am
AVR-CTRL Board verbunden ist, werden die Werte an das Terminal Projekt
übertragen. Außerdem wird beim Verbinden mit dem PC ein virtueller COMPort installiert.
Sobald ein High Signal über den AD Wandler an den Mikrocontroller gesendet
wird, findet die Übertragung an die Sieben-Segment-Anzeigen und an den PC
statt. Das High Signal wird mit einem Reed Kontakt übertragen, das sich am
Ergometer befindet.
Mit Hilfe mehrerer Taster lassen sich die Sieben-Segment-Anzeigen, die Uhr
und der Erregerstrom steuern. Mit dem Taster auf der Anzeigetafel kann man
alles zurücksetzen. Mit den Tastern auf dem Ergometer wird der Erregerstrom
gesteuert.
28
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.2 Entwicklungsumgebung
Als Entwicklungsumgebung wurde ebenfalls AVR Studio 4 mit WinAVR
verwendet. Da das Programm in C bereits vorhanden war, wurde dies somit
auch weitergeführt. Das Programm benutzt das Tool von WinAVR zum
Kompilieren. Die Entwicklungsumgebung AVR Studio 4 arbeitet mit AVR-GCC
als Compiler. Das Programm wird mittels AVR ATAVR ISP2 Programmer
(Abbildung:24) auf den Mikrocontroller übertragen. Die hierfür benötigte
Schnittstelle befindet sich auf dem AVR- CTRL Board.
Abbildung 24:AVR ATAVR ISP2 Programmer
7.3. Ablaufdiagramme
In der folgenden Abbildung 7.3.1 ist das Ablaufdiagramm des Hauptprogramms
zu sehen. Die Abbildung 7.3.2 zeigt das Ablaufdiagramm für die Interrupt
Service Routine. Die einzelnen Methoden werden näher in Kapitel 7.5 erklärt.
29
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.3.1 Hauptprogramm
30
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.3.2 Interrupt Service Routine
31
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
32
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.4 Bibliotheken der Software
Für die Software wurden vier verschiedene Bibliotheken verwendet.
- AVR Bibliothek
- I2C/ TWI Master Bibliothek
- LCD Bibliothek
- UART Bibliothek
Die Standardfunktionen, die im Programm verwendet wurden, liefert die AVR
Bibliothek.
Die I2C/TWI Master Bibliothek ist für die Kommunikation über das Hardware
I2C Interface zuständig. Hierbei ist der Mikrocontroller der Master. Dieser
regelt den Datentransport von den Bytes im Bussystem, er sendet außerdem
die Start- und Stoppbits.
Die LCD Bibliothek ermöglicht einen String auf dem 2x16 Zeichendisplay
auszugeben. Über die I“C Bibliothek werden die Bytes an das Display gesendet.
Die UART Bibliothek ist zum Senden und Empfangen von Daten an einen PC
zuständig. Mit einem Adapter von RS232 auf USB werden die Daten an das
Terminal Projekt übermittelt. Die erforderlichen Einstellungen zur
Datenübertragung werden in der Initialisierungsfunktion festgelegt. Die
Kommunikation benötigt eine Baudrate von 9600, 8 BitDatenübertragung, kein
Paritätsbit und 1 Stoppbit (9600/8-N-1)5.
5
[SKP12]
33
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.5 Bestandteile der Software
7.5.1 void ad_init()
Hier wird der AD Wandler initialisiert. Die Adresse und das Control Byte werden
mittels des I2C Bus an den PCF8591 übergeben. Das Control Byte enthält das
Bitmuster zum automatischen Auslesen aller vier Kanäle des AD -Wandlers.
7.5.2 void ad_read()
Über den I2C Buswerden in diesem Unterprogramm die vier Kanäle des AD
Wandlers ausgelesen und die Daten in vier dafür vorgesehenen Variablen
gespeichert. Bei dieser Funktion ist darauf zu achten, dass bei den ersten drei
Kanälen auf ein Acknowledge gewartet werden muss.
7.5.3 void Last_i2c(unsigned char value)
In dieser Funktion werden Bitmuster mit Hilfe des I2C Bus zur Steuerung der
Lampen gesendet. Die Lichtsäule hat acht Lampen, die mit dem PCF8574
verbunden sind.
Bitmuster für das Zuschalten und Abschalten der Last:
0b00000001 // Zuschalten des ersten Lampe
0b00000011 // Zuschalten von zwei Lampen
0b00000111 // Zuschalten von drei Lampen
0b00001111 // Zuschalten von vier Lampen
0b00011111 // Zuschalten von fünf Lampen
0b00111111 // Zuschalten von sechs Lampen
0b01111111 // Zuschalten von sieben Lampen
0b11111111 // Zuschalten aller acht Lampen
7.5.4 void umrechnung (unsigned int daten)
Hier werden die berechneten Leistungswerte in einzelne Ziffern zerlegt und in
Variablen gespeichert. Mit Hilfe des UARTs werden die einzelnen Ziffern an ein
Terminal Programm übergeben.
34
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.5.5 void segout1(unsigned int wert,unsigned char Adresse)
Hier werden zwei Parameter aufgenommen. „wert“ ist ein berechneter oder
gemessener Wert, der auf einer der Sieben Segment Anzeige ausgegeben wird.
Durch die Adresse wird angegeben, an welche der vier Sieben Segment
Anzeigender Wert übergeben werden soll. Der übergebene Wert wird dann in
drei Ziffern zerlegt und durch die Zeichen (siehe Tabelle unten) an die Anzeige
übermittelt und dort angezeigt6. Die Werte müssen Hexadezimal an das die
Sieben-Segment-Anzeige übergeben werden. In der nachfolgenden Tabelle sind
die Zahlen einmal dezimal dargestellt und darunter befinden sich die
hexadezimalen Zahlen:
Zahlen:
1
2
3
4
5
6
7
8
9
10
DEZ
seg_zif[10] = {0x7D, 0x44, 0x7A, 0x6E, 0x47, 0x2F, 0x3F, 0x64, 0x7F, 0x6F } HEX
7.5.6 void segout2(unsigned int wert,unsigned char Adresse)
Die Funktion segout2() ähnelt der Funktionsweise von segout1().Einziger
Unterschied ist, dass auf der Sieben Segment Anzeige der Punkt bei der zweiten
Ziffer hinzugefügt wurde. Dies wird durch eine Addition von 0x80 auf die zweite
Ziffer realisiert.
7.5.7 void segout3(unsigned int wert,unsigned char Adresse)
Die Funktion segout3() ist eine Ausgabefunktion, bei der der Punkt bei der
dritten Ziffer ausgegeben wird. Als Verbesserung der Software, kann „segout1“
ein drittes Parameter übergeben werden. Mit diesem Parameter könnte die
Position des Punktes bestimmt werden und die Funktionen „segout2“ und
„segout3“ könnten entfernt werden. Da dies erst nach der Entwicklung
aufgefallen ist, wurde dieses bis jetzt nicht realisert.
6
[SKP12]
35
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.5.8 ISR(TIMER0_COMP_vect)
In der Interrupt- Service- Routine (ISR) werden drei Zählervariablen
hochgezählt. Erreicht die Zählervariable „z2“ den Wert zwanzig, wird die
Funktion ad_read()aufgerufen. Der Wert zwanzig wurde gewählt, um mehrere
Datenwerte in einer Sekunde auszulesen, um eine Mittelwertberechnung
durchzuführen. Diese sorgt für eine gleichmäßige Darstellung der Kurve. Die
Werte vom AD Wandler werden in Variablen abgelegt. Durch ein High am Reed
Kontakt wird die Uhr der Anzeigentafel und die Umrechnung der Werte
(Spannung, Strom, Leistung, Energie) gestartet. Mittels I2C- Bus werden die
Werte an die Sieben Segment Anzeigen übertragen.
Durch Erreichen des Wertes fünfundzwanzig der Zählervariablen „z3“, wird die
momentane Leistung und Spannung überprüft und dementsprechend wird das
Unterprogramm Last_I2C() aufgerufen mit dem jeweiligen Bitmuster für die
Last. Damit die Strahler bei einer sehr hohen Anfangsspannung nicht
durchbrennen, wird die Spannung zusätzlich geprüft. Liegt die Spannung über
14V werden alle Strahler als Verbraucher zugeschaltet, wodurch ein
Durchbrennen der Strahler verhindert wird.
Wird mit der der Zählervariable „z“ der Wert fünfunddreißig erreicht, dies
entspricht einer Sekunde, wird an die Uhr ein HIGH gesendet und die
errechneten Leistungswerte mit UART an ein Terminal Programm gesendet.
Erreicht der Zähler den Wert siebzig, wird an die Uhr ein LOW übertragen
(Abbildung 25).
Abbildung 25: Takt Uhrzeit
36
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.5.9 void TIMER0_interrupt_init()
Diese Funktion ist für die Initialisierung des Interrupt zuständig. Im TCCRO7
(Timer/Counter Control Register 0) Register wird das Bit CS018gesetzt, wodurch
der Vorteiler auf 8 gestellt wird .Der CPU Takt beträgt 16 MHz. Im Register
TIMSK9(Timer/Counter Interrupt Mask)wird mit dem OCIE010 das Auslösen des
Interrupts aktiviert. Der Zähler OCR011wird mit 0x06 vorgeladen.
7.5.10 void InitPWM()
In dieser Funktion wird das PWM (Pulsweitenmodulation) Signal initialisiert. Im
TCCR212(Timer/Counter Control Register 2)werden die Bits für das Fast PWM
Signal konfiguriert. Dies wird durch das Setzen von den Bits
WGM2013(Waveform Generation Mode) und WGM2114realisiert. Durch Setzen
des Bit COM2115 lässt sich der Nicht-Invertierte Modus wählen (siehe 7.5.11).
Das PWM Signal wird am Port D7 des AVR CTRL Board ausgegeben.
Durch das schnell Ein- bzw. Ausschalten des Signals, wird der Erregerstrom
geregelt. Je länger die Pulsweite ist, desto höher wird der Erregerstrom
(Abbildung 26).
Abbildung 26: PWM Einstellungen
7
[ATM] S.80
[ATM] S.82
9
[ATM] S.82
10
[ATM] S.82
11
[ATM] S.80
12
[ATM] S.125
13
[ATM] S.125
14
[ATM] S.125
15
[ATM] S.126
8
37
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.5.11 void setPWM_Err(unsigned char pwm1)
Bei diesem Unterprogramm lässt sich die Pulsweite einstellen. Es lassen sich
beliebig Zahlen von 0(0x00hex) bis 255(0xFFhex) eingeben. Weil kein inventierter
Modus eingestellt ist, muss man darauf achten, dass 0 dem Minimum und 255
dem Maximum entspricht.
7.5.12 void reset()
Im dem Unterprogramm
zurückgesetzt. Dies sind:
werden einige
Variablen und Einstellungen
- Zählervariablen
- Uhr an der Anzeigetafel
- Eingestelltes Bitmuster für die Lampen
- Display am AVR CTRL Board
- Startbedingung
- Erregerstrom
7.5.13void Port_INIT()
Im Unterprogramm werden die Uhr und die Leuchtdioden initialisiert. Über
verschiedene Defines in der Header Datei „routinen.h“ lässt sich zum Beispiel
der Takt der Uhr über einfache Kommandos(UHR_ON(), UHR_OFF())
einstellen16.
7.5.14 void lcd_ausgabe()
In diesem Unterprogramm wird die jeweilige Stufe an dem LCD Display
ausgegeben.
16
[SKP12]
38
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
7.5.15 int main()
Die Main Funktion steuert den Ablauf des Programms, das sich auf dem
Mikrocontroller befindet.
Als erstes werden einige wichtige Funktionen initialisiert. Hierbei ist darauf zu
achten, dass die richtige Reihenfolge eingehalten wird. Es ist zum Beispiel
wichtig, dass zuerst die I2C Routinen initialisiert werden, bevor die Funktion
lcd_init() aufgerufen wird, da diese Funktion von den I2C Routinen abhängig ist.
Somit hat sich folgende Reihenfolge ergeben :
- Port_INIT()
- InitPWM()
- i2c_init()
- lcd_init()
- ad_init()
- TIMER0_interrupt_init()
- USART_init(baud)
Danach werden einige Anfangswerte initialisiert und dann folgt das
Hauptprogramm in eine Endlosschleife. In dieser Schleife werden die Taster auf
dem AVR CTRL Borad abgefragt. Durch den Taster 1, der sich auf der
Anzeigetafel befindet, wird die Reset Funktion ausgeführt. Außerdem kommt
hinzu, dass die Taster 2 und Taster 3 die Funktion haben, den Erregerstrom zu
erhöhen oder zu senken. Um den Erregerstrom während der „Fahrt“ umstellen
zu können, wurde von uns die in Abbildung 10 zu sehende Box an das Lenkrad
des Ergometers gebaut. Es wurde außerdem ein Display mit in die Box
eingesetzt, auf der die aktuelle Schwierigkeitsstufe angezeigt wird.
Die Software wurde größtenteils von der Gruppe Rudermaschine
übernommen, lediglich einige Parameter und Mittelwerte wurden geändert.
Die PWM Steuerung und Displayausgabe wurde von uns neu geschrieben.
39
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
8. Zeitmanagement
Im folgenden Abschnitt sind unsere sechs Meilensteine zu sehen, welche wir
uns gesetzt haben.
Das wären:
Meilenstein 1: Der erste Meilenstein, den wir uns gesetzt hatten, war ein
passendes Ergometer zu finden und an dieses eine Lichtmaschine zu befestigen
und den Antrieb herzustellen.
Meilenstein 2:Für die Änderungen am Projekt mussten wir den Aufbau der
Hard- und Software Komponenten der Vorgängergruppe verstehen.
Meilenstein 3:Der dritte Meilenstein war eine Leistungsoptimierung von 65
Watt auf min 200 Watt.
Meilenstein 4:Meilenstein vier war das entwickeln und anbauen einer
Steuereinheit mit Display am Lenker des Ergometers.
Meilenstein 5: Meilenstein fünf war die Entwicklung und den Aufbau einer
Akku- Ladeschaltung.
Meilenstein 6: Der sechste und letzte Meilenstein war Dokumentation und
schriftliche Ausarbeitung des Projektes.
In der Abbildung 27 ist gut zu erkennen, dass die geplanten Termine und die
tatsächlichen Termine nicht immer übereinstimmen. Es kam zu
Terminverzögerungen wie z.B. gleich am Anfang, als das bestellte Ergometer
nicht geliefert worden ist und sich somit das Erreichen des ersten
Meilensteines nach hinten verschoben hat. Auch der zweite, der fünfte und der
sechste Meilenstein, haben sich durch die Klausurphasen und Praktika nach
hinten verschoben. Andere Meilensteine wie der dritte, wurden dagegen
pünktlich fertig gestellt und der 4. Meilenstein wurde sogar früher als geplant
erreicht. Außerdem ist in Abbildung 28 zu sehen, wie viele Stunden wir an dem
Projekt gearbeitet haben. Die Abbildung 29 zeigt ein Diagramm mit den Sollund Ist-Stunden des Projektes.
40
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
Meilensteinprognosen
Meilensteintrendanalyse
21.09.2012
14.09.2012
07.09.2012
31.08.2012
24.08.2012
17.08.2012
10.08.2012
03.08.2012
27.07.2012
20.07.2012
13.07.2012
06.07.2012
29.06.2012
22.06.2012
15.06.2012
08.06.2012
01.06.2012
25.05.2012
18.05.2012
11.05.2012
04.05.2012
27.04.2012
20.04.2012
13.04.2012
06.04.2012
30.03.2012
23.03.2012
Ziellinie
Meilenstein 1
Meilenstein 2
Meilenstein 3
Meilenstein 4
Meilenstein 5
Meilenstein 6
23/3 1/4 10/419/428/4 7/5 16/525/5 3/6 12/621/630/6 9/7 18/727/7 5/8 14/823/8 1/9 10/919/9
Berichtszeitpunkte
Abbildung 27: Meilensteintrendanalyse
Abbildung 28: Tabelle der Gesamtübersicht von Ist/Soll Stunden
41
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
40,00
350,00
35,00
300,00
Arbeit Soll
30,00
250,00
25,00
200,00
Arbeit Ist
20,00
15,00
10,00
150,00
Arbeit Soll
kum.
100,00
Arbeit Ist kum.
5,00
50,00
0,00
0,00
Abbildung 29: Diagramm zu Soll/Ist
42
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
9.Tests
Getestet wurde das Gesamtsystem unter anderem im Labor, indem wir selber
oder Freiwillige getreten haben und somit konnten verschieden Testläufe
gemacht werden. Dabei wurden auch immer wieder Kontrollmessungen
gemacht. Die Generalprobe fand auf dem Tag der offenen Tür, am 15. Juni
2012 an der Hochschule Emden/Leer statt. Hier konnten die Besucher das
Ergometer ausprobieren, was auch sehr gut angenommen wurde. Fehler
welche an den Energietagen aufgetreten sind, wurden entweder sofort bzw.
direkt nach den Energietagen beseitigt.
Zum Beispiel wurde noch eine Sicherheitsfunktion eingefügt, da bei einem
Probelauf die Strahler durchgebrannt sind. Dies wurde Programmtechnisch
umgesetzt. Es ist eine ständige Abfrage ob die Spannung über 14V liegt. Sollte
dies der Fall sein, werden alle Strahler sofort zugeschaltet. Dies soll das
durchbrennen der Strahler verhindern.
10. Fazit
In dem Projekt haben wir gelernt, wie man selbstständig arbeitet und sich die
Zeit richtig einteilt. Außerdem ist aufgefallen, dass auch dritte Personen,
welche zum Beispiel zu den Lieferanten gehören einen großen Einfluss auf das
Projekt nehmen können. Dies ist uns gleich am Anfang des Projektes klar
geworden, als das Ergometer nicht geliefert wurde. Des Weiteren kommt
hinzu, dass man darauf achten sollte, die Platinen zum richtigen Zeitpunkt
ätzen zu lassen und die Bauteile rechtzeitig zu bestellen, da das Projekt sonst
eine unfreiwillige Pause macht.
Alles in allem hat uns das Projekt großen Spaß gemacht. Wir möchten uns an
dieser Stelle auch bei Herrn Prof. Dr.-Ing Dirk Rabe und Herrn Dipl. -Ing Harald
Buss für die Betreuung unseres Projektes bedanken.
43
Bachelorprojekt: „Optimierung und Erweiterung des Energiefahrrades“
11. Quellen
[SKP12]
Schmidt/Korte: Projekt Energieerzeugung.pdf, Schmidt/Korte
[ATM]
Atmel Corporation: atmega32.pdf, Atmel
44
Herunterladen