1. Problemdarstellung 2. Physikalische Grundlagen 3 - Vision

Werbung
-
1. Problemdarstellung
2. Physikalische Grundlagen
2.1 Mechanische Überlegungen
2.2 Die elektrische Versorgung
2.3 Physikalische Größen, Kontrast, Lichtstärke - allgemeine Grundlagen
2.4 Physik unter der Lichtkuppel
2.4.1 Der Treibhauseffekt bei Verschattungsanlagen
2.4.2 Quantitative und qualitative Betrachtungen
2.1.3 Konsequenzen für den Prototyp
3. Entwicklung des Prototyps
3.1
3.2
3.3
3.4
Übersicht
Autonome Energieversorgung mit einer Solarzelle
Mechanische Umsetzung
Entwicklung und Implementierung eines fernbedienbaren Steuerungskonzeptes mit
automatischer Helligkeitserkennung
3.5 Entwicklung der Client-Steuerung
4. Entwicklung des Modells in Zusammenarbeit mit Warema
4.1 Physikalische Betrachtungen
4.2 Mechanische Umsetzung
4.3 Umsetzung der Steuerung
5 Fazit und Ausblick
6 Quellen
7 Anhang
7.1 Anhang1: Server-Software
7.2 Anhang2: Client-Software
7.3 Anhang3: Montageanleitungen Warema
1. Problemdarstellung
Im Computer- und Physikübungsraum befinden sich Lichtkuppeln, die nicht verschattet
werden können.
Abbildung 1: Problemstellung
Abbildung 2: Aktuelle Lösung
Besonders im Sommer ist das Schriftbild des Beamers durch die Sonneneinstrahlung schlecht
lesbar, so dass der Unterricht sehr stark eingeschränkt ist. Weiterhin können im
entsprechenden Übungsraum optische Versuche nicht gut vorgeführt werden. Nachdem
Kursleiter Herr Paulini den Wettbewerb Vision-Ing21 vorgestellt hat, entschied sich sein PSeminar zur Teilnahme am Wettbewerb mit einem Projekt zu diesem Thema.
2. Physikalische Grundlagen
In einem ersten Schritt wurden die verschiedenen Aspekte des Problems aus grundlegender,
physikalischer Sicht betrachtet.
2.1 Mechanische Überlegungen
a) Überlegung bezüglich des Anbringungsortes
Zuerst haben wir nach einem geeigneten Anbringungsort für unsere Verschattungsanlage
gesucht. Aufgrund der Verkrümmung des Dachfensters und der Unterbringung der
elektronischen Geräte (z.B Motor, Steuerung, etc.), die den Witterungsbedingungen
ausgesetzt wären, entschieden wir uns für eine einfachere Variante: Die Anbringung im
Innenraum unter der Lichtkuppel. Unser Motor soll durch eine Solarzelle, die auf dem Dach
über dem Computerraum angebracht werden soll, betrieben werden. Dennoch kann die
Verschattungsanlage nicht direkt unter der Lichtkuppel angebracht werden, da neben ihr
eine 20cm starke Betonschicht ist (siehe „Aufbau des Fensters“). Deshalb kamen wir auf die
Idee, in den Hohlraum, der sich rund um den Fensterschacht befindet, eine
Aluminiumkonstruktion zu bauen, auf der der Motor, die Steuerung und auch die Jalousie
befinden. Da der Motor nur in eine Richtung ziehen kann, wird auf der gegenüber liegenden
Seite eine Vorrichtung benötigt, die die Jalousie auf Spannung hält.
Unterkante
Lichtkuppel
Gipsplatte
Beton
118
20
50
Abbildung 3:
Aufbau des Fensters
150
b) Stoffspezifische Überlegungen bezüglich der Verdunklungsanlage
Aufgrund der waagerechten Lage der benötigten Verdunkelungsanlage schlossen wir die
Verwendung einer Jalousie aus. Stattdessen entschieden wir uns für einen Stoff, welcher
leicht aufrollbar ist, um Platz zu sparen. Somit wurde die Idee eines Holzbrettes auch
verworfen. Für unser Modell verwendeten wir der Einfachheit halber eine Plastikfolie. Der
Stoff soll außerdem noch spezielle Aufgaben, wie Lichtabsorption, erfüllen.
2.2 Die elektrische Versorgung
Die Stromversorgung der Verschattungsanlage gestaltet sich schwierig. Da die Lichtkuppel
sich an der Decke befindet, ist eine konventionelle Stromversorgung mithilfe einer
Verkabelung mit großem Aufwand verbunden. Darüber hinaus legten wir großen Wert
darauf, eine umweltfreundliche Apparatur zu bauen. Daher wurde sich für eine Solarzelle als
Energiequelle entschieden.
Da die Solarzelle wetterabhängig und daher eine unsichere Quelle ist, haben wir
entschieden, zusätzlich dazu einen Akku einzubauen, um überschüssige Energie
sonnenreicher Tage für Tage mit weniger Leistung zu speichern.
Abbildung 4: Funktionsweise einer Solarzelle
Die Versorgung der Verschattungsanlage beruht auf einer Solarzelle und dem
photoelektrischen Effekt. Die Zelle besteht aus einer polykristallinen Siliciumoberfläche.
Scheint Sonne auf die Oberfläche, wird ein Elektron dieses Halbleitermaterials angeregt
und auf ein höheres Energieniveau angehoben. Dadurch entsteht eine Ladungstrennung in
dem Material, auf der einen Seite befindet sich das Elektron, auf der anderen, an der Stelle
des jetzt verschwundenen Elektrons, ein „Loch“, das als positive Ladung aufgefasst werden
kann.
Diese Spannung versorgt dann den Motor der Verschattungsanlage über den Akku.
Grundsätzlich wird in einem Akkumulator elektrische Energie in chemische Energie umgewandelt und
dann in dem Akku gespeichert. Akkus haben immer zwei Elektroden, die in einer Elektrolytflüssigkeit
eingetaucht sind. Beim Laden des Akkus fließt ein Strom durch den Akku, der eine chemische
Reaktion in Gang setzt, die wiederum die Elektroden verändert. Nach einiger Zeit ist nicht mehr
genug Elektrodenmaterial für die Reaktion übrig, sodass die Reaktion und damit der Stromfluss
stoppt. Das Laden des Akkus endet. Bei Abgabe der Leistung läuft die gleiche Reaktion andersherum
ab und die chemische Energie wird wieder in elektrische Energie umgewandelt. Dabei kann man
idealerweise genauso viel Leistung entnehmen wie beim Aufladen gespeichert wurde. Der
Wirkungsgrad liegt in der Regel jedoch zwischen 70 und 100%.
2.3
Physikalische Größen, Kontrast, Lichtstärke - allgemeine Grundlagen
Die Problematik der Verdunklung ergibt sich aus der Unlesbarkeit des Beamerbildes. Die
Beamerleuchtstärke beträgt laut Herstellerangaben (berechnet auf unsere
Bestrahlungsfläche)lx = lm / m² = 3500 lm / (2,38m*1,78m) = 826 lx, wohingegen die von uns
gemessene Helligkeit im Raum zwischen 1000 lx und 1900 lx beträgt. Es ist klar zu erkennen,
dass der Beamer nicht in der Lage ist, ein klares /kontrastreiches Bild auf die
Projektionsfläche zu werfen, da er die Leuchtkraft der Sonne nicht übertreffen kann. Unser
Anspruch an eine Verdunkelungsanlage ist nun, auf die zu hohe Helligkeit im Raum
automatisch zu reagieren und diesen zu verdunkeln, sodass ein klares Bild möglich ist. Dabei
ist zu beachten, dass das System nicht auf kleinste Schwankungen reagiert, die
beispielsweise durch eine kurze Wolke ausgelöst werden. Dies würde sich störend auf den
Unterricht auswirken. Passender ist es, über längere Zeit einen Helligkeitsmittelwert zu
bilden, und die Anlage erst dann zu starten, wenn dieser eine gewisse Toleranzgrenze überbzw. unterschreitet.
2.4 Physik unter der Lichtkuppel
Neben der Verschattung spielen unter der Lichtkuppel weitere physikalische Effekte eine
wichtige Rolle.
2.4.1 Der Treibhauseffekt bei Verschattungsanlagen
Allgemein Treibhauseffekt:
Die kurzwellige Strahlung der Sonne gelangt durch das Fensterglas der Lichtkuppel, wird von
Objekten, wie z.B. Pflanzen, im Innenraum absorbiert und von diesen in langwellige
Wärmestrahlung umgewandelt (=Rückstrahlung). Diese langwellige Strahlung kann nun nicht
mehr durch das Fensterglas der Lichtkuppel gelangen, da Fenster nur Strahlung einer
bestimmten Wellenlänge durchlassen (siehe Abb. 1). Durch den Stau der Wärme wird der
Raum, wenn er nicht ausreichend belüftet wird, permanent erhitzt. Nachdem warme Luft
leichter als kalte ist und somit nach oben steigt, bildet sich dicht unter der Decke des
Raumes die wärmste „Schicht“ Luft.
Problematik:
Bei geschlossener Jalousie entsteht ein Treibhauseffekt, bei dem unter der Kuppel warme
Luft gestaut wird. Nachdem die Fenster bei uns nicht befriedigend weit geöffnet werden
können besteht ein Problem weithin gehend darin, dass nicht klar ist, wie genug kalte Luft
zum Ausgleich zwischen Jalousie und Glaskuppel gelangen soll.
Abbildung 5: Der Treibhauseffekt
2.4.2 Quantitative und qualitative Betrachtungen
Verschattungsanlagen bieten über ihre Primärfunktion, das Verschatten, hinaus noch die
Möglichkeit, verschiedene Energiesparmaßnahmen durchzuführen. Dies funktioniert
hauptsächlich über:
-Kühllast
-Heizlast
-Energieaufwand wegen Kunstlicht
Die Kühllast wird durch gezieltes Abhalten der kurzwelligen Sonnenstrahlung verringert; dies
funktioniert über einen stark reflektierenden Sonnenschutz, der bei hoher Sonnenstrahlung
heruntergefahren wird. Dabei ist vor allem der Abminderungsfaktor Fc von Bedeutung, der
bei solchen Anlagen bei 0,25-0,7 liegt; d.h., dass nur 1/4 bis 7/10 der Energie, die ohnehin
durch das Fenster gekommen wäre, das Fenster passiert.
Welche Menge Energie das Fenster passiert, wird über den g-Wert beschrieben, der in etwa
zwischen 0,62-0,87 liegt; d.h., dass zwischen 62% und 87% der Energie der Sonnenstrahlung
das Fenster durchdringt, wobei hierbei der Abminderungsfaktor F c nicht berücksichtigt ist.
Daraus folgt, dass zwischen 15% und 60% der Energie durch das Fenster kommt.
Um die Heizlast zu verringern, wird in kalten Jahreszeiten versucht, die Energie innerhalb des
Gebäudes zu halten. Dies läuft über zwei Methoden:
-U-Wert verringern
-durch ein Luftpolster zwischen Verschattung und Fenster eine isolierende Schicht zu
schaffen
Der U-Wert ist die Menge an Energie, die durch kurzwellige Wärmestrahlung aus dem
Gebäude entweicht.
Bei einem durchschnittlichen Energieertrag von etwa 1000-1050kWh pro m² jährlich für das
Gebiet um Würzburg, lässt sich also pro m² Fensterfläche zwischen 850 und 400 kWh pro
Jahr an Energieaufwand einsparen.
2.4.2 Konsequenzen für den Prototyp
Der Einsatz und die Beschichtung des Stoffes für die Verdunklungsanlage sind in Bezug auf
die Energiebetrachtung wichtiger als zunächst angenommen. Sie übernimmt einige wichtige
Aufgaben, wie das Verhindern einer Luftzirkulation zwischen dem Luftpolster unter der
Lichtkuppel und dem restlichen Raum. Durch den Treibhauseffekt findet eine Erwärmung im
Sommer bzw. eine Abkühlung nachts statt. Es ist stets im Sinne der Energieersparnis
beziehungsweiße des Wohlgefühls, diese Luft getrennt zu halten. Im Sommer wünscht man
sich einen möglichst kühlen Raum, der nicht zusätzlich durch die Wärme des Energiepolsters
belastet werden muss. Analog verhält es sich im Winter, man möchte nachts die geheizten
Wohnräume nicht unnötig mit der Luft außerhalb der Verdunklungsanlage kühlen.
Doch eine viel größere Bedeutung kommt der Reflexion und Absorption zu. Durch sie findet
bzw. wird eine Energieumwandlung zwischen Lichtenergie und Wärmeenergie verhindert.
Nun muss man zwei grundsätzliche Wirkrichtungen unterscheiden, die entweder separat
oder als Kompromiss verbunden werden. Eine Wirkrichtung ist die low-e Beschichtung, eine
Aluminiumbedampfte Folie. Sie hat eine große Reflexion und verhindert damit im Sommer
das Eindringen des Lichtes, hat also einen geringen g-Wert. Im Winter wird jedoch ein
Mitheizen der Räume durch den geringen g-Wert verhindert, dies gleicht sich aber
zumindest durch einen großen U-Wert wieder teilweise aus.
Eine andere Möglichkeit ist der Einsatz eines schwarzen Stoffs. Dies zeichnet sich durch
einen großen g-Wert aus, welcher zu Folge hat, dass sich der Stoff aufheizt und dann als
Flächenheizung den Raum heizt. Auch ist der U-Wert groß, welcher im Winter vorteilhaft ist.
Somit ist zu erkennen, dass ein Reflektierender Stoff (low-e) mehr für den Sommer geeignet
ist und ein Absorbierender Stoff mehr als für den Winter. Wenn der Einsatz beider Stoffe aus
Kostengründen oder Ähnlichem nicht möglich ist, so muss ein spezifischer Kompromiss
getroffen werden.
3. Entwicklung des Prototyps
Der Prototyp wurde parallel in den Gruppen Versorgung, Mechanik und Steuerung
entwickelt. Dabei galt es, stets in Absprache mit den Sprechern der anderen Gruppe die
nächsten Schritte zu überlegen und umzusetzen.
3.1
Übersicht
Abbildung 5: Schematische Übersicht
Das elektrische System wird versorgt durch die Solarzelle, die Sonnenlicht in Strom
umwandelt. Dabei wird Spannung zwischen 12 und 20 V bereitgestellt, die, geregelt über
eine Ladespannung, einen Akkumulator auflädt. Dieser Akkumulator stellt über einen
Spannungswandler eine 5 V Logikspannung für die Steuerung zur Verfügung. Über einen
Stromabnehmer regelt die Client-Steuerung den Motor. Die Steuerung reagiert auf die
Signale des Servers sowohl die Lichtschranken, welche den Laufweg der Stoffbahn begrenzen
und somit die Mechanik vor Überdrehung schützen.
3.2
Autonome Energieversorgung mit einer Solarzelle
Der Motor benötigt eine konstante und ständig verfügbare Energiequelle. Die
Versorgungsgruppe hatte zur Aufgabe, diese sicherzustellen.
Zu Beginn wurde recherchiert und für den Motor abgeschätzt, welche Spannung nötig ist,
um die Jalousie betreiben zu können. Es wurde sich für einen 6 Volt Motor mit 7500
Umdrehungen pro Minute und 0,45 Ampere entschieden. Außerdem wurde ein 12 Volt
Blei-Akku gewählt, um den Strom der Solarzelle zu speichern. Es wurde ein Akku mit einer
höheren Spannung gewählt, um Verluste über Leitungen und andere Widerstände
auszugleichen. Teil des Prototyps ist auch eine Solarzelle mit 12 Volt und 0,55 Ampere.
Nachdem diese Teile bestellt wurden, wurde überprüft, ob sie funktionsfähig und deren
Leistung ausreichend waren. Dabei konnte beispielsweise festgestellt werden, dass die
Leistung der Solarzelle enorm wetterabhängig ist, sodass ein Energiespeicher, um schlechte
Tage auszugleichen, die richtige Entscheidung war. Beim ersten Versuch zur
Spannungsmessung der Solarzelle schien die Sonne leider nicht, sodass eine Lampe genutzt
wurde, um die Solarzelle zu betreiben. Diese hatte jedoch nicht genügend Leistung um eine
ausreichende Spannung für den Motor zu erzeugen. Beim zweiten Versuch schien die Sonne
und es konnte festgestellt werden, dass die Sonneneinstrahlung ausreicht, um mit der
Solarzelle den Motor zu betreiben und den Akku zu laden. Die Spannungsmessungen wurden
mit herkömmlichen Voltmetern durchgeführt, die parallel zur Solarzelle geschaltet wurden.
Allerdings wurden bei den Versuchen mit der Solarzelle einige Widerstände, die als MotorErsatz genutzt wurden, komplett zerstört. Hier zeigt sich, wie stark die Sonne ist und dass
selbst kleinere Solarzellen viel Energie einfangen können.
Daraufhin wurden die einzelnen Teile mit Kabeln miteinander verbunden und verlötet, eine
Verbindungsbuchse eingebaut, um die Solarzelle mit einer Ladeschaltung für den Akku
verbinden zu können, die Ladeschaltung hinzugefügt und erneut die Funktionsfähigkeit
überprüft.
Verbindungsbuchse
Akku
Solarzelle
Abbildung 6: Elektrische Versorgung
3.3 Mechanische Umsetzung
Nach einiger Zeit der Überlegungen, Recherchen und Planungen, fing am 11.01.2012 der Bau
des allerersten Modells in der Gruppe Konstruktion an. Eine Skizze, die unsere Überlegungen
zum Lager, über das die provisorischen Gummis liefen, klar machen sollte, wurde
angefertigt.
1.
2.
3.
4.
5.
6.
3
6
1 2
6
4
5
Abbildung 7: Lager
Achse
Öse
Aluminium
Holzklotz
Holzbrett
Schrauben
Außerdem wurden schon alle Einzelteile, die anfangs zu Verfügung standen, auf dem Brett
montiert. Als Ergebnis konnten wir das Holzbrett vorweisen, auf dem schon Motor auf
Holzklötzen und Lager montiert waren. Beim nächsten Treffen eine Woche später konnte
der Stoff schon mit Fernsteuerung ausgefahren und aufgewickelt werden. Außerdem wurde
eine Skizze mit Word erstellt, auf der das Modell aus der Vogelperspektive zu sehen ist.
5
1
2
3
4
1
1.
2.
3.
4.
5.
Gummi
Motor
Stoff
Umlenkrolle
Holzbrett
Abbildung 8: Modell aus der Vogelperspektive (Version 1.1)
Zu diesem Zeitpunkt hatten wir uns schon einige Dinge überlegt, die wir im Sinne der
Verbesserung unseres Modells noch in Angriff nehmen wollten. Geplant war, das Lager
durch Umlenkrollen aus dem Baumarkt zu ersetzen, da sich das Aluminiumrohr nicht sehr
gut mit den Gummis gedreht hat und die Anzahl der Gummis wurde von zwei auf drei
erhöht, die auf eingekerbte Schrauben, die sich hinter dem Motor befinden, gespannt
werden können. Weiterhin wurde versucht, mit Schnüren und Federn die Gummis zu
ersetzten, doch die gekauften Federn waren viel zu stark für den Motor. Als finale Lösung
wurden Angelgummis besorgt.
Am 08.02.2012 wurden die überflüssigen Holzklötze des alten Lagers entfernt und die
Umlenkrollen angeschraubt. Überlegt wurde auch, ob man eine Federwelle einbaut, aber
nach gründlicher Recherche wurde dieser Gedanke wieder verworfen, da die Federwelle für
unser kleines Modell nicht praktikabel empfunden wurde. Nach dem achten Februar wurden
keine Veränderungen am Modell mehr vorgenommen, da es keine Punkte gab, die noch
unbedingt zu verbessern gewesen wären. Der Stoff lässt sich gut auf- und abrollen, alles sitzt
fest und Ästhetik war nie ein Ziel für unseren Prototypen gewesen.
6
5
7
7
1
6
6
2
3
1
4
1
Abbildung 9: Modell aus der Vogelperspektive (finale Version)
Abbildung 10: Modell aus der Vogelperspektive
3.4
Entwicklung und Implementierung eines fernbedienbaren Steuerungskonzeptes mit
automatischer Helligkeitserkennung
Als erstes musste ein Konzept gefunden werden, wie das grundsätzliche Steuerungskonzept
aufgebaut sein soll. Wir entschieden uns für ein zweigeteiltes System mit einer
"Client/Server"-Logik, um theoretisch auch mehrere Verdunklungsanlagen zentral steuern zu
können. Der Server übernimmt die Aufgabe zu entscheiden, ob es zu hell oder zu dunkel ist,
bzw. nimmt eine Eingabe per Fernbedienung entgegen. Darauf basierend wird dann ein
Signal an die Clients an den Fenstern (in unserer Ausführung nur einer) weitergegeben. Der
Client betätigt dann, wenn die Parameter des Clients dies zulassen, den Motor zum
Schließen oder Öffnen der Anlage, bis vom Server gemeldet wird, dass der optimale
Helligkeitswert erreicht ist. Das bietet die Vorteile, dass erstens verschiedenste Arten von
Anlagen angeschlossen werden können und durch die Modularisierung, hängt nur die
Entscheidung, ob geöffnet oder geschlossen werden soll, vom zentralen Server ab. Die
spezifische Implementierung des Verdunkelungsvorgangs liegt auf der Clientseite. So können
Umgebungsvariablen wie "Der Akku ist leer" oder "Ich kann nicht weiter zu fahren, weil ich
bereits zu bin" lokal berücksichtigt werden. Dadurch werden die Parameter an Ort und Stelle
verarbeitet und müssen nicht zentral an einem Ort zusammengefasst und verarbeitet
werden.
Ziel war es, eine möglichst stufenlose Helligkeitseinstellung zu erreichen. Deshalb
wurde folgendes Konzept der Kommunikation zwischen Server und Client
ausgearbeitet: Es gibt drei Signalarten: 'AUF', 'ZU' und 'STOP'. Wird ein
Motorstartsignal (AUF oder ZU) gesendet, wird der Motor so lange betätigt, bis das
STOP-Signal gesendet wird (bzw.es die Umgebungsvariablen nicht zulassen, siehe
oben). Dadurch wird ermöglicht, genau bis zum gewünschten Punkt zu
öffnen/schließen.
Nun galt es zu planen, wie die Steuerung beeinflusst werden sollte. Wir entschieden
uns für zwei Konzepte: Steuerung durch den Benutzer mit einer Fernbedienung und
automatische
Steuerung
abhängig
vom
gemessenen
Lichtwert.
Die
Benutzersteuerung geht natürlich der automatischen vor, um auch spontaner
Unterrichtsgestaltung gerecht zu werden. Außerdem soll sie die automatische
Steuerung für eine bestimmte Zeitspanne deaktivieren, was ermöglicht über längere
Zeit z.B. stark abzudunkeln.
Implementierung der serverseitigen Steuerung des Rollladensystems
Um diese serverseitige Steuerung zu verwirklichen, benutzten wir ein ArduinoMicrocontroller-System mitsamt selbstgebauter Elektronik, die einen Infrarotsensor und
einen Photowiderstand zur Leuchtstärkenerkennung, sowie fünf Status LEDs umfasst.
Server „Shield“
Arduino
Kontakte
zum Chip
Kontakte
zum Client
Abbildung 10: Microcontroller und Elektronik
Abbildung 11: Schaltplan
Sensoren
Sende LEDs
Status LEDs
Gelötete Unterseite
Anhand des Schaltplans kann man die einzelnen Komponenten gut erkennen. Der
Rechteckige Block in der Mitte stellt den Microcontroller des Arduino dar von und zu dem
alle Leitungen verlaufen. Die mit „output LEDs“ betitelten Leuchtdioden sind über die Ports
11, 12, 13 mit dem Arduino und über einen 150 Ohm Widerstand mit Masse verbunden. Das
gleiche gilt für die „status LEDs“ nur eben auf den Ports 9 und 10. An den „output LEDs“
liegen noch Leitungen für den „command output“, diese gehen dann zum Client. Rechts ist
ein „IR sensor“ zu sehen, dieser ist mit Port 8, Masse und 5V Betriebsspannung verbunden.
Dieser dient dazu, die Fernbedienungssignale zu empfangen. Der „light sensor“ ist über Port
A5 mit dem Arduino, mit 5V Betriebsspannung und über einen 10 Kiloohm Widerstand mit
Masse verbunden. Dieser ist zur Feststellung der Umgebungshelligkeit nützlich.
Außerdem entwickelten wir ein Programm, um die von uns gewünschten Funktionen zu
realisieren. Wir benutzen dafür die Programmiersprache C und die Entwicklungsumgebung
des Arduinoprojektes. Dabei implementierten wir folgende Dinge:
Senden eines AUF-/STOP-/ZU-Signals
Steuerung über Fernbedienung
automatische Steuerung über einen Lichtsensor, falls die Fernbedienung eine längere
Zeit nicht bedient wurde
Umschalten auf Lichtsensorsteuerung durch Knopfdruck
Mittelung der Lichtwerte innerhalb eines bestimmten Zeitrahmens
Darstellung der gesendeten Signale über LEDs
Die Erkennung des Infrarotsignals der Fernbedinung erfolgt über einen kleinen IR
Sensor, die Lichtstärkenmessung über einen Photowiderstand.
Beispielhaft erklären wir hier mal die Hauptfunktion loop() unseres Programmes:
1
2
3
4
5
6
7
8
9
10
11
12
13
void loop() {
getRemote();
if ((millis() - lastRemote) > remoteDelay){
getLight();
}
setStatus();
sendData();
sendVal = -1;
delay(loopDelay);
}
Zuerst fragen wir mit getRemote() ab ob ein Signal durch die Fernbedienung empfangen
wurde. Danach wird überprüft ob das letzte Signal der Fernbedienung lang genug zurück
liegt, das eine Abfrage des aktuellen Lichtwertes erforderlich ist. millis() gibt die aktuelle
Zeit zurück, lastRemote enthält die letzte Zeit zu der ein Signal von der Fernbedienung
gekommen ist. remoteDelay ist die Zeitspanne die verstreichen soll, bis Lichtwerte
abgefragt werden. Falls diese Bedingung erfüllt ist, wird mit getLight() der Lichtwert
abgefragt. Daraufhin werden die StautsLEDs gesetzt (setStatus()) und das entsprechende
Signal an die Clients geschickt (sendData()). Die Variable sendVal, die das aktuelle Signal
enthält, wird zurückgesetzt und das Programm wartet durch delay(loopDelay) einen
kurzen Moment. Dies ist die Programmschleife, die während des Betriebs durchgehend
wiederholt wird.
3.5
Entwicklung der Client-Steuerung
Die Hauptaufgabe der Clientsteuerung ist folglich definiert: Sie muss die Signale des Servers
(AUF, ZU, STOP) annehmen können und den Motor entsprechend steuern.
Der erste Version der Clientsteuerung hatte nur die Funktion, die Signale des Servers
entgegenzunehmen und daraufhin jeweils das passende Switch-Relai umzuschalten, um den
Motor zu aktivieren. Auch hatte diese Version bereits die beiden, auch im fertigen Prototyp
implementiert waren. Diese geben den Status des Chips wieder und helfen somit, Probleme
zu erkennen. Ein Problem hat uns bereits in dieser Version beschäftigt: Der Chip ist enorm
instabil und stürzt beim Einschalten des Motors fast immer ab.
Damit der Motor nicht überdreht, werden im Prototyp zwei Lichtschranken eingebaut, die
vor Überdrehung schützen. Angesteuert wird der Motor über zwei Switching-Relais. Die
zentrale Komponente ist ein Microcontroller der Firma Microchip, genauer: ein PIC
18F14K50. Über Transistoren werden die Lichtschranken, die Infrarotdioden und die Relais
vom PIC an und ausgeschaltet. Der PIC übernimmt auch die Ladekontrolle des Akkus: über
den Analogeingang wird die Akkuspannung gemessen und bei einem kritisch hohen Wert
wird die Solarzelle durch ein MOSFET kurzgeschlossen und ein Überladen des Akkus
verhindert. Selbiges passiert, wenn der PIC nicht mehr funktioniert.
Abbildung: 12: 2. Version der Schaltung
Hier sieht man ein Foto der 2. Version der Schaltung (Schaltplan im Anhang).
Rechts, die nicht angeschlossene Spannungsversorgung des Steckbrettes (1) (mit Mosfet und
Linearregler). In der Mitte des Steckbrettes sind die beiden Relais(2), jeweils eins für vor und
zurück) zu sehen, welche über einen über dem jeweiligen Relai liegenden Transistor
gesteuert werden.
Ganz links sieht man den PIC18F14K50 (3).
Abbildung 13: Schaltplan
Bei der Entwicklung des Prototyps gab es zwei große Probleme, die wir bewältigen mussten:
Die Stromversorgung des Microcontrollers
Der Spannungseinbruch beim Starten des Motors
Das erste Problem war schnell mittels eines Schaltreglers, welcher aus einer 12V
Akkuspannung eine 5V Logikspannung erzeugt. Das zweite Programm wurde erst im
Zusammenhang mit dem Ingenieur von Warema betrachtet und gelöst.
Der fertige Prototyp wurde erst nach der Absprache mit dem Ingenieur von Warema
konzipiert und wurde von uns noch selbstständig weiterentwickelt (weiteres dazu unten).
Als Kernbaustein der Client-Steuerung
dieht ein PIC18F14K50 im DIP-Gehäuse
(Datenblatt im Anhang). Dieser ist der
Intelligente Baustein, welcher die
Signale von Server, die Signale der
Lichtschranken, etc. verarbeitet und je
nach Situation, den Motor, die
Lichtschranken, die Stromversorgung
für den Akkumulator, steuert. Links
sieht man ein Foto eines PIC18F13K50,
im Vergleich dazu eine 2 Euro Münze.
Abbildung 14: Microcontroller
Die Programmierung des PICs erfolgt in der Programmiersprache C. Die Hauptaufgabe des
Programmes besteht zum einen darin, die Konfiguration des Chips vorzunehmen. Dabei
müssen z.B. Ein- und Ausgänge gesetzt werden. Danach startet das Programm eine
Endlosschleife, welche auf Eingangssignale wartet. Ist ein Eingangssignal eingetroffen,
werden die Lichtschranken eingeschaltet und über einen Transistor das entsprechende Relai
durchgeschaltet. Sollte die entsprechende Lichtschranke durchbrochen werden oder ein
STOP-Signal ankommen, wird das Relais wieder geschlossen und der Chip wartet wieder auf
Signale. Der Code, welchen ich implementiert habe, ist im Anhang eingefügt.
Das Überspielen des Programmes auf den MCU läuft in folgenden Schritten. Zunächst wird
das Programm kompiliert. Dabei muss noch auf richtige Konfiguration und Flags, sowie
Speicherbenutzung geachtet werden. Anschließend wird das generierte Programm über das
PIC-Kit, welches man von Microchip für die Programmierung der MCUs kaufen kann, auf den
Chip gebrannt. Das Brennen des Hex-Codes erfolgt über eine zum PIC-Kit mitgelieferte
Software.
Abbildung 15: PC-Kit
Hier sieht man das Entwicklungsset für den PIC. Rechts im Bild ist das PIC-Kit mit dem
mitgelieferten Demo-Board, welches einen Sockel für den PIC zur Verfügung stellt. Links
unten den PIC im Größenvergleich mit der 2 Euro Münze. Links oben ein selbstgebautes
Debugging-Kit auf Basis eines ATMEGA mit USB-Schnittstelle.
4. Entwicklung des Modells in Zusammenarbeit mit Warema
Die
sehr
konstruktive Zusammenarbeit mit dem Partnerunternehmen WAREMA
Renkhoff SE zeigte sich in mehreren Treffen vor Ort in der Schule und am Standort des
Unternehmens in Marktheidenfeld. Nachdem wir unseren Prototypen bei Warema
vorstellen konnten, bekamen wir sehr umfangreiche Tipps und die Einladung, bei einem
weiteren Treffen im Werk die eigenen Ideen auf industriellem Standard verwirklichen zu
können.
4.1 Physikalische Betrachtungen
Nachdem das Seminar angekommen war, wurden Gruppen gebildet. Die VersorgungsGruppe befasste sich mit Herrn Laqua mit verschiedenen Problemstellungen rund um die
Verschattung von Häusern.
Zuerst ging es um die Lage des Gebäudes. Diese lässt sich nach folgenden Kriterien
definieren:
Zum einen ist die Himmelsrichtung, in der die betroffenen Fenster liegen, wichtig, da sie
bestimmt wie stark der Sonnenstrahleneinfall ist und somit die Energiebilanz des Gebäudes.
Dazu trägt auch der Breiten-/Längengrad des Hauses bei, der den Neigungswinkel der
Sonneneinstrahlung bestimmt. Und natürlich ist auch die Jahreszeit, die gerade herrscht,
wichtig, da im Sommer die Einstrahlung stärker ist als im Winter und auch der Winkel der
Einstrahlung verändert ist.
Nach diesen Betrachtungen beschäftigte sich die Gruppe dann vor allem damit, wie die
Solarpanels geneigt sein müssen, um möglichst hohe Wirkungsgrade zu erzielen, da die
Sonnenstrahlen möglichst senkrecht auf das Panel auftreffen sollen. Sowohl durch Rechnung
als auch durch Ablesen an einer Tabelle erzielte die Gruppe das Ergebnis, dass für Würzburg
der Neigungswinkel 35° ideal ist. Der Winkel wurde anschließend an die
Konstruktionsgruppe übergeben. Danach befasste sich die Gruppe mit den Aufgaben der
Beschattungsanlage, welche Wärme und Blendschutz am Tag und Wärmedämmung durch
Luftpolster zwischen Fenster und Verschattungsanlage bei Nacht sind. Mithilfe einer
Animation probierte die Gruppe verschiedene Varianten des Sonnenschutzes wie einfache
Rollladen, verschiedene Fenstergläser oder Innenverschattungen aus. Außerdem wurde
festgestellt, dass in der Arbeitsstättenrichtlinienverordnung festgelegt ist, dass der
Arbeitsplatz nicht zu warm werden darf und für außereichenden Blendschutz sowie
natürliche Lüftung gesorgt werden muss. Zusätzlich wurde festgestellt, dass ein ordentlicher
Sonnen-/Blendschutz für den Computerraum unausweichlich ist, da auch die Leistung der
Schüler in einem ungenügend geschützten Raum rapide abnimmt.
4.2
Mechanische Umsetzung
Als wir bei Warema im Montagezentrum ankamen wurden und verschiedene Sachen
gegeben, darunter eine Stückliste mit Bildern zum besserem Verständnis [Anhang]. Mit Hilfe
dieser sollte die Montagegruppe möglichst eigenständig das Modell zusammenbauen,
jedoch standen uns 2 Auszubildende zur Hilfe wenn wir Fragen hatten und es gab eine
Anleitung[Anhang], in welcher grob niedergeschrieben wurde wie wir vorzugehen haben.
Zunächst überlegten wir den prinzipiellen Aufbau der Verschattungsanlage mit Hilfe eines
Plans und legten es so hin wie wir es montieren würden und erstellten eine
Dann wurde es abgenommen und wir durften anfangen zu schrauben. Wir begannen mit
dem Ausmessen der Bohrlöcher und zeichneten sie schließlich mit einem Bleistift vor,
Bohrten sie vor, da wir bei der Montage gelernt hatten, dass dies die Wahrscheinlichkeit
verringert, dass sich das Holz spaltet. Zu guter Letzt haben wir die Befestigung für Motor und
Stoff angeschraubt. Dann überlegten wir uns eine geeignete Anordnung für die einzelnen
Komponenten, wie Solarmodul oder Steuerung. Schließlich bewunderten wir Stolz unser
Werk.
Abbildung 16: Produktpräsentation bei Warema
4.3
Umsetzung der Steuerung
Mit dem Hard- und Softwareingenieur von Warema wurden vor allem die Themen
Stromverbrauch und Elektromagnetische Verträglichkeit behandelt. Die komplette ClientSteuerung muss stromsparend gebaut werden, da sie ohne abgeschaltet zu werden,
kontinuierlich läuft und so die lange Laufzeit auch bei geringer Leistung große
Energiemengen konsumiert. Wichtig hierfür ist einerseits die Verwendung sorgfältig
ausgesuchter, energieeffizienter Komponenten. Beispielsweise haben wir im Nachhinein
unsere bisherige Stromversorgung für den Prototyp durch eine effizientere ersetzt, welche
anstelle von einem Laderegler für den Akku und einen Spannungswandler für die Schaltung,
nur noch einen Schaltregler benutzt. Des Weiteren ist auch die Programmierung der
Schaltung ausschlaggebend; wir waren erfreut, als wir hörten, dass unsere Idee die Chip nur
alle 200ms aus dem Sleep-Modus aufwachen zu lassen um evtl. Signale zu verarbeiten auch
in den professionellen Schaltungen von WAREMA zum Einsatz kommt. Weitere Kriterien im
Bereich Stromversorgung waren Leckströme, die durch minderwertige Bauelemente wie
Dioden verursacht werden, zu minimieren.
Weitere wichtige Erkenntnisse haben wir im Bereich Sicherheit / Stabilität erhalten. Wie wir
bereits herausgefunden hatten, sind Mikrocontroller extrem anfällig gegen
Elektromagnetische Störeinflüsse. Bei WAREMA haben wir erfahren, dass EMV
(Elektromagnetische Verträglichkeit) bei der Konzeption von Schaltungen wie unserer
Steuerung von großer Wichtigkeit ist. Hierfür ist ebenfalls sowohl eine Anpassung der
Hardware als auch der Software erforderlich. Einerseits muss die Schaltung so angelegt sein
dass sie möglichst geringe Anfälligkeit gegen Störungen wie Induktionsströme oder
Spannungsfelder aufweist. Genau dieses Problem trat in unserer Schaltung andauernd auf,
wenn der Motor eingeschaltet ist: die hohe Induktivität des Motors hat einen
Spannungsimpuls erzeugt, welcher den Controller hat abstürzen lassen und so zu einem
kompletten Ausfall der Steuerung geführt hat. Durch Einbau von EMV-Komponenten wie
Varistoren haben wir nun das Problem in den Griff bekommen. Des Weiteren hatten wir
durch dieses neue Wissen, die Chance erhalten, unsere Software entsprechend anzupassen,
sodass der Chip auf derartige Situationen reagieren kann und ein Neustart der Schaltung
möglich ist. Auch Fehler in der Softwareausführung wie das Springen zu leeren
Speicherzellen durch Bitfehler in Prozessorregistern, welche durch Störeinflüsse erzeugt
werden können, muss durch entsprechende Fehlererkennungsroutinen vorgebeugt werden.
Wir haben die Software angepasst, sodass nun der gesamte Speicher gegen Bitfehler
gesichert ist. Des Weiteren haben wir ein System konzipiert, welches die Ausführung des
Programmes überwacht und bei Fehlern im Programmablauf den Chip zurücksetzt und neu
startet. Andererseits muss die Software zwischen Steuer- und Störsignalen unterscheiden
können um Stabilität und Funktionalität zu gewährleisten. Bei den Eingängen haben wir
somit nochmal eine Sicherheitsstufe eingebaut, welche das ankommende Signal mehrfach
verifiziert und nur eine Aktion auslöst, sollten alle Messungen dasselbe (positive) Ergebnis
liefern. Auch wichtig ist eine Entsprechende Sicherung des Moduls bei Ausfällen, da
ansonsten z.B. durch Überladung des Akkus Schäden entstehen können, welche im
Extremfall sogar zu einem Brand führen können. Deshalb haben wir eine Sicherung
eingebaut, welche vor Kurzschlüssen schützt, sowie Temperatursensoren, welche den Akku
und die Steuerung auf Überhitzung überprüfen.
Letztendlich sind wir sehr erfreut über den Besuch bei WAREMA gewesen, da wir so die
Möglichkeit hatten, unser bestehendes Wissen auszubauen und wir die neuen Erkenntnisse
auch direkt an unserer eigenen Schaltung in die Praxis umsetzen konnten. Erfreut waren wir
auch, als wir gesehen haben, wie ähnlich sich doch die Steuerung von WAREMA und unsere
sind. Durch die hilfreichen Tipps konnten wir unsere Schaltung letztendlich soweit
verbessern, dass ein einwandfreier, störungsfreier und sicherer Betrieb möglich ist und die
Steuerung folglich sogar reif für industrielle Nutzung ist.
5.
Fazit und Ausblick
Während dem Projekt sind wir auf einige, von uns unerwartete Organisationsproblematiken
gestoßen, die uns einen Ausblick auf die Arbeit hinter der Arbeit gewährt haben. Uns ist aufgefallen,
wie schwierig es sein kann, ein Projekt zu managen und auch zum Erfolg zu führen. Darüber hinaus
bemerkten wir, dass es für die Arbeitsleistung einer Gruppe förderlich ist, einen Gruppenleiter zu
haben, der, wenn nötig, auch andere dazu antreibt, zu arbeiten, wobei der Charakter des
Gruppenleiters maßgeblich an der Gruppenleistung beteiligt ist. Auch die einzelnen Gruppenleiter
mussten feststellen, dass der Umgang mit Menschen verschiedener Charakter äußerst schwierig sein
kann.
Davon vollkommen unabhängig bekamen wir einen differenzierten Ausblick auf verschiedene
Berufssparten. Dies wäre vom Softwaredesigner über Ingenieursberufe bis hin zum
Elektromechatroniker eine breiter gefächerte Berufsauswahl. Ein großes Ziel des P-Seminars ist, die
Schüler auf das spätere Berufsleben vorzubereiten und einen Ausblick auf möglichst viele Berufe zu
ermöglichen. Darüber hinaus ermöglicht es das P-Seminar auch, einen Einblick in wissenschaftliche
Forschung/Entwicklung/Arbeit zu gewähren. Das Projekt hat einigen von uns Berufe aufgezeigt, für
die sich einige von uns begeistern konnten.
Als tatsächlichen, wissenschaftlichen Fortschritt ist das Projekt eigentlich nicht zu bezeichnen, es
ermöglichte uns aber, zu zeigen, dass man mit dem dafür nötigen Arbeitswillen durchaus Vorwissen
und Mittel ausgleichen kann und eine realitätsnahe Problemstellung gab uns die Möglichkeit, zu
erfahren, was wir eigentlich wirklich können, denn dafür eigen sich manche Tests zwar gut, aber um
mehr über sich zu erfahren, mussten wir erst richtig arbeiten.
6.
Quellen
Stoffbeschichtung:
[1] http://www.delta.tudortmund.de/cms/Medienpool/ELEKTRONIK_2011/ELEKTRONIK_
Kapitel_04.pdf
[2] http://www.uni-protokolle.de/Lexikon/Absorption.html
[3] http://www.bine.info/fileadmin/content/Presse/Projektinfos_2009/Projekt_0509/
projekt_0509_internetx.pdf
Datenblatt Beamer:
[4] http://www.mercateo.com/pdf/Epson/edg_product_brochure_emp6100_de.pdf
Akkumulator:
[5]http://www.funkcom.ch/akkuinfos.htm
[6] http://www.eurosolar.de/de/images/stories/pdf/Sauer_Optionen_Speicher_
regenerativ_okt06.pdf
Treibhauseffekt:
[7]http://de.wikipedia.org/wiki/Treibhauseffekt
[8] http://www.google.de/imgres?q=glashauseffekt&hl=de&safe=vss&client=firefoxa&hs=gIk&sa=X&rls=org.mozilla:de:official&tbm=isch&prmd=imvns&tbnid=m1pKs0Y93nKiM:&imgrefurl=http://www.comeniusweb.eu/wiki/index.php%3Ftitle%3DTreibhauseffekt&do
cid=1uHiwdcsKkTISM&imgurl=http://www.comeniusweb.eu/wiki/images/9/96/Glashauseffekt.JPG&
w=484&h=367&ei=zkGqTYNoXvsgabkIjdBA&zoom=1&iact=hc&vpx=610&vpy=160&dur=947&hovh=195&hovw=258&tx=141&t
y=128&sig=116795870336379101110&page=1&tbnh=157&tbnw=207&start=0&ndsp=20&ved=1t:42
9,r:2,s:0,i:75&biw=1280&bih=891
Elektrische Versorgung:
[9] http://de.wikipedia.org/w/index.php?title=Datei:Solarzelle_Funktionsprinzip2.svg&
filetimestamp=20091102202111
7.
Anhang
7.1 Server-Software
#include <IRremote.h>
// Hardware-Pin Konstanten
const int stopPin = 12;
const int openPin = 11;
const int closePin = 13;
const int inputIR = 8;
const int inputLight = A5;
const int statusAuto = 10;
const int statusRemote = 9;
// Tweak-Konstanten
const int signalDuration = 500; // in ms
const int loopDelay = 100; // in ms
const unsigned long remoteDelay = 10000; // in ms
const int remoteDelayDiff = 3000; // in ms
const
const
const
const
int
int
int
int
stopIR = 0xA001;
openIR = 0x6001;
closeIR = 0x9001;
autoIR = 0xC001;
const int sizeMap = 100; // ('time in s') / (loopDelay / 1000)
const int limit = 350;
const int limitDiff = 100;
// initialisiere Variablen
int sendVal = -1;
int logSendVal = -1;
unsigned long lastRemote = 0;
IRrecv remote(inputIR);
decode_results remoteResults;
int lightMap[sizeMap];
int actMapPos = 0;
int oldSendVal = -1;
unsigned sumLight = 0;
int statusAutoState = HIGH;
int statusRemoteState = HIGH;
// Funktionen
void setup () {
Serial.begin (9600);
remote.enableIRIn();
pinMode(stopPin, OUTPUT);
digitalWrite (stopPin, LOW);
pinMode(openPin, OUTPUT);
digitalWrite (openPin, LOW);
pinMode(closePin, OUTPUT);
digitalWrite (closePin, LOW);
pinMode(statusAuto, OUTPUT);
digitalWrite(statusAuto, statusAutoState);
pinMode(statusRemote, OUTPUT);
digitalWrite(statusRemote, statusRemoteState);
for (int i = 0; i < sizeMap; i++) {
lightMap[i] = 0;
}
}
void getRemote () {
int result = -1;
if (remote.decode(&remoteResults)) {
result = remoteResults.value;
Serial.print (result, HEX);
remote.resume();
}
switch (result) {
case stopIR:
sendVal = 0;
lastRemote = millis();
break;
case openIR:
sendVal = 1;
lastRemote = millis();
break;
case closeIR:
sendVal = 2;
lastRemote = millis();
break;
case autoIR:
lastRemote = ((millis() - lastRemote) >
remoteDelay)? millis() : 0;
break;
}
}
void getLight () {
int light = analogRead(inputLight);
Serial.print(light);
sumLight -= lightMap[actMapPos];
sumLight += light;
lightMap[actMapPos] = light;
++actMapPos %= sizeMap;
if ((sumLight / sizeMap) > limit) {
if (oldSendVal != 2) {
sendVal = 2;
oldSendVal = 2;
}
}
else if ((sumLight / sizeMap) > (limit - limitDiff)) {
if (oldSendVal != 0) {
sendVal = 0;
oldSendVal = 0;
}
}
else {
if (oldSendVal != 1) {
sendVal = 1;
oldSendVal = 1;
}
}
}
void sendData () {
switch (sendVal) {
case -1:
// keine Signal
break;
case 0:
// 'STOP'-Signal
digitalWrite(stopPin, HIGH);
delay(signalDuration);
digitalWrite(stopPin, LOW);
break;
case 1:
// 'OPEN'-Signal
digitalWrite(openPin, HIGH);
delay(signalDuration);
digitalWrite(openPin, LOW);
break;
case 2:
// 'CLOSE'-Signal
digitalWrite(closePin, HIGH);
delay(signalDuration);
digitalWrite(closePin, LOW);
break;
}
}
void setStatus () {
if ((millis() - lastRemote) > remoteDelay){
if (logSendVal != 0) {
statusAutoState = (statusAutoState == LOW) ?
HIGH : LOW;
statusRemoteState = LOW;
digitalWrite(statusAuto, statusAutoState);
digitalWrite(statusRemote, statusRemoteState);
}
else if (statusAutoState == LOW || statusRemoteState
== HIGH) {
statusAutoState = HIGH;
statusRemoteState = LOW;
digitalWrite(statusAuto, statusAutoState);
digitalWrite(statusRemote, statusRemoteState);
}
}
else {
if (logSendVal != 0) {
statusAutoState = LOW;
statusRemoteState = (statusRemoteState == LOW) ?
HIGH : LOW;
digitalWrite(statusAuto, statusAutoState);
digitalWrite(statusRemote, statusRemoteState);
}
else {
statusAutoState = LOW;
statusRemoteState = LOW;
digitalWrite(statusAuto, statusAutoState);
digitalWrite(statusRemote, statusAutoState);
}
}
if (millis() < remoteDelay && (statusAutoState == LOW ||
statusRemoteState == LOW)) {
statusAutoState = HIGH;
statusRemoteState = HIGH;
digitalWrite(statusAuto, statusAutoState);
digitalWrite(statusRemote, statusAutoState);
}
}
void loop () {
getRemote();
Serial.print ("\t\t|\t");
if ((millis() - lastRemote) > remoteDelay){
getLight();
}
setStatus();
sendData();
Serial.print ("\t|\t");
Serial.print (sendVal);
if (sendVal != -1)
logSendVal = sendVal;
Serial.print ("\t|\t");
Serial.println (logSendVal);
sendVal = -1;
delay (loopDelay);
}
7.2 Client-Software
#include <p18f13k50.h>
#include <delays.h>
#pragma config WDTEN = OFF
#pragma config FOSC = IRC
#pragma config MCLRE = OFF
#define ON_N_CHANNEL 1
#define OFF_N_CHANNEL 0
#define ON_P_CHANNEL 0
#define OFF_P_CHANNEL 1
char blink_dly_count;
char for_var;
void warning_sig(char times){
for(for_var = 0; for_var < times; for_var = for_var
LATC = 0;
Delay1KTCYx(6);
LATCbits.LATC6 = ON_N_CHANNEL;
Delay1KTCYx(6);
LATC = 0;
}
}
void startup_sig(void){
LATC = 0;
LATCbits.LATC6 = ON_N_CHANNEL;
LATCbits.LATC7 = ON_N_CHANNEL;
Delay1KTCYx(70);
LATCbits.LATC7 = OFF_N_CHANNEL;
Delay1KTCYx(110);
LATC = 0;
}
void eng_off_sig(void){
LATC = 0;
Delay1KTCYx(15);
LATCbits.LATC6 = ON_N_CHANNEL;
Delay1KTCYx(70);
LATC = 0;
}
void main (void)
{
ANSEL = 0; // disable
UCFG = 0;
UCON = 0;
// CONFIGURE EVERYTHING
TRISA = 0b00111000;
LATA = 0;
TRISB = 0;
LATB = 0;
+1 ){
TRISC = 0;
TRISCbits.RC3 = 1;
TRISCbits.RC4 = 1;
startup_sig();
while(1){
Delay1KTCYx(20);
if(PORTAbits.RA5 == 0 && PORTAbits.RA4 == 0)
continue;
LATCbits.LATC0 = ON_N_CHANNEL;
LATCbits.LATC7 = ON_N_CHANNEL;
Delay1KTCYx(50);
if(PORTCbits.RC3 == PORTCbits.RC4){
warning_sig(10);
continue;
}
if(PORTAbits.RA5) LATCbits.LATC1 = ON_N_CHANNEL;
else LATCbits.LATC2 = ON_N_CHANNEL;
blink_dly_count = 0;
while(PORTAbits.RA3 == 0 && (PORTCbits.RC3 !=
PORTCbits.RC4)){
Delay1KTCYx(1);
blink_dly_count+= 1;
if(blink_dly_count == 25)
LATCbits.LATC7 = ON_N_CHANNEL;
else if(blink_dly_count == 50){
LATCbits.LATC7 = OFF_N_CHANNEL;
blink_dly_count = 0;
}
}
warning_sig(3);
eng_off_sig();
}
}
7.3
Montageanleitungen Warema
Stückliste:
1 Oberkasten (Bild 1)
2 Trägerwinkel für Oberkasten (Bild 2 )
2 Erhöhungen für Oberkasten (Bild 3 )
2 Stahlwinkel für Solarpanel (Bild 4 )
1 Solarpanel (Bild 5 )
1 Stahlwinkel für Lampe (Bild 4 )
1 Kunststoffabdeckung für Lampe
1 Lampe
1 12 V DC Motor
3 Lager (Bild 6 )
3 Texbandrollen (Bild 7 )
3 Deckel für Lager (Bild 8 )
3 Texbänder (Bild 9 )
2 Wendestangen ( verschiedene Längen ) (Bild 10 )
2 Feststellschrauben für Wendestangen (Bild 11 )
3 Haltestifte für Texbänder (Bild 9 )
1 WAREMA-Steuerung (Bild 12 )
1 Externe Steuerung
2 Winkel zur Wellenaufnahme (Bild 13 )
1 Endstab
1 Federwelle mit Behang
Bild 1
Bild 2
Bild 3
Bild 4
Bild 5
Bild 6
Bild 7
998
Bild 8
998
Bild 9
998
Bild 10
Bild 11
Bild 12
Bild 13
1. Winkel zur Wellenaufnahme auf Untergrund verschrauben ( waagerecht ausrichten )
2. Federwelle mit aufgewickeltem Behang in die Wellenaufnahmen einhängen
( nochmals Parallelität zur Fensterkante prüfen )
3. Erhöhungen für den Oberkasten bohren ( Durchmesser 5,5 )
4. Erhöhungen zusammen mit Trägerwinkel auf Untergrund verschrauben ( Parallelität
zur Federwelle prüfen )
5. Lager in den Oberkasten einbauen
6. Texbänder in die Texbandrollen einziehen und mit den Haltestiften befestigen.
Texbandrollen in die Lager setzen
7. Deckel auf die Lager setzen
8. Wendestangen durch die Lager und die Motoraufnahmen führen und mit den
Feststellschrauben befestigen
9. Die richtige Gradzahl des Solarpanels und der Haltewinkel berechnen.
10. 2 Haltewinkel für das Solarpanel biegen und bohren ( Maße siehe Detailbild )
11. Haltewinkel für die Lampe biegen und bohren ( Maße siehe Detailbild )
12. Alle drei Haltewinkel am Untergrund befestigen ( Parallelität zu den Trägerwinkeln
prüfen; Abstand der Haltewinkel für das Solarpanel anhand der Gewinde beachten )
13. Aluplatte für die WAREMA-Steuerung bohren
14. WAREMA-Steuerung an der Aluplatte befestigen
15. Aluplatte mit Steuerung am Untergrund befestigen
16. Die Externe Steuerung am Untergrund befestigen
17. Solarpanel an den Haltewinkeln befestigen
18. Die Lampe mit der Kunststoffabdeckung am Haltewinkel befestigen
19. Den Oberkasten in die Trägerwinkel einhängen und verschließen
20. Endstab in die Stoffschlaufe des Behangs und die Schlaufe in den Aufzugsbändern an
den ausgeschnittenen Stoffecken einschieben (Aufzugsbänder nicht verdrehen!)
21. 20 bis 30 Umdrehungen (im Uhrzeigersinn) Vorspannung mithilfe einer Zange auf die
Federwelle aufbringen
22. Welle wieder einhängen
23. Motor mit der Steuerung verbinden
24. ( Endpunkte programmieren )
25. Testfahrt
Herunterladen