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