Dies ist eine alte Version des Dokuments!
In der heutigen Zeit gewinnen erneuerbare Energien immer mehr an Bedeutung. Die Optimierung der Energieerzeugung durch Wind- und Solarkraft ist daher ein wichtiges Forschungsfeld. Unsere Projektgruppe, bestehend aus Anthony, Jannek, Jonas, Artur und Tillmann, entschied sich, ein Windrad zu entwickeln, das sich selbst optimal auf die Windrichtung einstellt. Die Idee, ein solches Windrad zu bauen, kam ursprünglich nicht von uns, sondern vom Projektleiter Noah. Unsere anfänglichen Ideen war ein Solarfeld, welches sich optimal nach der Sonne ausrichten kann. Nach reiflicher Überlegung entschieden wir uns jedoch, das bereits begonnene Projekt von Noah zu übernehmen, da uns das Projekt „Solarfeld“ ein wenig zu schwierig erschien und das Windrad ebenfalls die Optimierung erneuerbarer Energien zum Schwerpunkt hatte, was von uns als Hauptziel angesehen war.
Unsere ersten Laborsitzungen nutzten wir, um Gedanken und Eindrücke zur tiefgehenden Planung des Projekts auszutauschen. Ein Vorteil war, dass Noah uns bereits einige Bauteile hinterlassen hatte. So wollten wir beispielsweise alte Rotorblätter eines Spielzeughubschraubers als Propellerflügel verwenden. Diese verfügten bereits über eine Mechanik zur Steuerung der Rotorblattstellung, mit der wir die Rotorblätter je nach Windstärke einstellen konnten. Ein zentraler Aspekt unseres Projekts war die Untersuchung der optimalen Propellerstellung bei unterschiedlichen Windstärken, um eine möglichst konstante Ladespannung für die Batterie zu gewährleisten. Die Idee war, einen Generator über die Rotorwelle anzutreiben, an der ein Zahnrad befestigt war.
Liste an verwendeten Teilen:
Der Generator wird über ein Zahnrad mit Übersetzung direkt dem Rotor des Windrades angetrieben. Die beiden Servomotoren sind dafür zuständig, den Taumelscheibenhalter des Windrades hoch und runter zu bewegen und damit die Geschwindigkeit des Windrades zu kontrollieren. Da zwei Servomotoren mehr Spannung benötigen als der Funduino betreitstellen kann, haben wir diese über eine externe Spannungsquelle mit Strom versorgt. Der Funduino soll in der Lage sein, die Spannung des Generators zu lesen und anhand dessen die Position der Servomotoren vorzugeben.
Mit diesen Überlegungen haben wir folgende Schaltung auf Fritzing erstellt:
Der Generator ist mit GND und dem anlalogen Pin A7 verbunden. Dies ermöglicht dem Fundruino einen Wert zu erhalten, dessen Größe abhängig von der Spannung des Generators ist. Die Servomotoren sind über das Breadboard mit Strom und GND der externen Spannungsquelle verbunden. Die Signalkabel der Servos sind mit den digitalen Pins D6 und D11 verbunden. Zunächst war es unsere Idee, beide Servos an einem Pin mit dem Funduino zu verbinden, jedoch sollten diese später gespiegelt zueinander am Windrad montiert werden, weshalb sie verschieden angsteuert werden müssen. Das GND des Funduino wird mit dem GND der Spannungsquelle verbunden.
Beim Zusammenbau der Schaltung kamen ein paar kleinere Schwierigkeiten auf. Zunächst wurde der eigentliche Funduino, den wir benutzen wollten vom Computer nicht erkannt, weshalb wir einen anderen nehmen mussten. Dann haben manche Kabel nicht einwandfrei funktioniert, was teilweise daran lag, dass deren Pins verbogen waren und sie deswegen nicht richtig auf dem Breadboard gehalten haben. Austauschen und erneutes Verbinden mancher Kabel hat dem jedoch Abhilfe verschaffen. Eines der Kabel am Generator ist mehrfach abgegangen, also haben wir zunächst vergeblich versucht, dieses mit Klebeband zu fixieren. Als das andere Kabel jedoch auch abgegangen ist, mussten wir die Enden beider Kabel mit den Kontakten am Generator neu verlöten.
Hier ist ein Bild von der zusammengebauten Schaltung:
Der Code wurde in der Arduino IDE erstellt. Zum Ansteuern der Servomotoren haben wir nach kurzer Recherche die „Servo.h“ Bibliothek gefunden. Mit der Funktiion Servomotor.write() ist es möglich, den Servomotoren einen Winkel zwischen 0° und 180° zu geben. Um die Spannung des Generators herauszufinden, wurde die Funktion analogRead(7) verwendet. Da man dadurch nur einen Wert zwischen 0 und 1023 erhält und keine Spannung in Volt, haben wir diesen Wert mit einer einfachen Formel umgerechnet und in der Variable „volt“ zwischengespeichert. Um den Winkel der Servomotoren anhand der gemessenen Spannung einzustellen, kam zuerst die Idee auf, den den Wert der Spannung mit einem bestimmten Faktor zu multiplizieren. Die benötigte Größe des Faktors hätte man dann praktisch austesten müssen, damit das Windrad die gewünschte Geschwindigkeit behält. Stattdessen haben wir uns für eine if-Bedingung in einer Schleife entschieden, die fortlaufend überprüft, ob die Spannung am Generator über oder unter 5 Volt liegt und daraufhin den Winkel um 1° hoch oder runter stellt. Da die beiden Servomotoren spiegelverkehrt sind, wird der Winkel bei dem ersten von 0° addiert und beim zweiten von von 180° subtrahiert.
Fertiger Code:
// die Bibliothek Servo.h wird eingebunden, sie steuert den Motor #include "Servo.h" // der Servomotor erhält den Namen Servomotor Servo Servomotor1; Servo Servomotor2; void setup(){ // den Servomotoren werden die Pins 6 und 11 zugeordnet Servomotor1.attach(11); Servomotor2.attach(6); Servomotor1.write(0); Servomotor2.write(180); } void loop(){ // Winkel wird auf 60 Grad festgelegt int winkel = 60; while(true){ // Spannung des Generators wird an Pin 7 gelesen float sensorValue = analogRead(7); float volt = sensorValue * (5.0 / 1023.0); // wenn Spannung über 5 Volt, wird der Winkel um 1 verringert if (volt >= 5){ winkel = winkel - 1; Servomotor1.write(winkel); Servomotor2.write(180 - winkel); delay(200); } // wenn Spannung unter 5 Volt, wird Winkel um 1 erhöht else { winkel = winkel + 1; Servomotor1.write(winkel); Servomotor2.write(180 - winkel); delay(200); } } }