Inhaltsverzeichnis HTL Ettenreichgasse 54 Elektrotechnik OStR Dipl.-Ing. Dr. techn. Ewald GAUSTER Dipl.-Ing. Hermann FREIBERGER Diplomarbeit 5 AHETE 2014/2015 AVDIC Emir IMAMOVIC Zoran SHADI Belal Seite 0 von 89 Inhaltsverzeichnis Inhalt Abstract ................................................................................................................................................... 3 Kurzfassung ............................................................................................................................................. 4 1. 2. Allgemeines ..................................................................................................................................... 5 1.1. Projektentstehung und Planung .............................................................................................. 5 1.2. Aufgabenstellung..................................................................................................................... 5 1.3. Aufgabenverteilung ................................................................................................................. 6 1.4. Kooperation mit Firmen .......................................................................................................... 6 1.5. Zusammenarbeit ..................................................................................................................... 7 1.5.1. Positive Erfahrungen ....................................................................................................... 7 1.5.2. Negative Erfahrungen...................................................................................................... 7 Beschreibung der elektronischen Komponenten .......................................................................... 8 2.1. Blockschaltbild der einzelnen Bauteile.................................................................................... 8 2.2. Arduino (Bartmann, 2011)....................................................................................................... 9 2.2.1. Was ist Arduino? ............................................................................................................. 9 2.2.2. Programmierung.............................................................................................................. 9 2.2.3. Mikroprozessor.............................................................................................................. 10 2.3. 2.3.1. Aufbau und Funktionsweise .......................................................................................... 16 2.3.2. Fazit ............................................................................................................................... 16 2.4. Fotowiderstand ..................................................................................................................... 16 2.4.1. Funktionsweise .............................................................................................................. 17 2.4.2. Eigenschaften ................................................................................................................ 17 2.4.3. Fazit ............................................................................................................................... 18 2.5. 3. Digitaler Luxsensor ................................................................................................................ 16 Spannungsregler .................................................................................................................... 18 Hardware....................................................................................................................................... 21 3.1. Mechanik ............................................................................................................................... 21 3.1.1. Konstruktionsprogramm ............................................................................................... 21 3.1.2. Tischaufbau ................................................................................................................... 21 3.2. Elektronik und Elektrik .......................................................................................................... 27 3.2.1. Konstruktionsprogramm ............................................................................................... 27 3.2.2. Ansteuerung LED-Leiste und Platinenentwürfe ............................................................ 28 3.2.3. Sensorplatine ................................................................................................................. 37 3.2.4. Platinenentwicklung ...................................................................................................... 38 3.2.5. Verdrahtung .................................................................................................................. 40 Seite 1 von 89 Inhaltsverzeichnis 4. Programmierung ........................................................................................................................... 42 4.1. Ansteuerung des Displays ..................................................................................................... 42 4.1.1. Anschließen des Displays und Controller ...................................................................... 42 4.1.2. Programmcode für die Displayansteuerung.................................................................. 42 4.1.3. Anzeige des Displays...................................................................................................... 43 4.1.4. Einlesen der Werte eines Sensors und Ausgabe auf das Display .................................. 44 4.1.5. Controller-, Sensor- und Displayanschluss .................................................................... 44 4.1.6. Warnmeldung beim Über- und Unterschreiten der Werte........................................... 47 4.2. 5. Pulsweitenmodulation .......................................................................................................... 49 4.2.1. Theorie zur Pulsweitenmodulation ............................................................................... 49 4.2.2. Tastgrad ......................................................................................................................... 51 Lichtregelung................................................................................................................................. 53 5.1. If-Vergleiche .......................................................................................................................... 53 5.2. Regelkreis .............................................................................................................................. 54 5.3. Lichtmessungen ..................................................................................................................... 60 5.4. Lichtregelung mit LDR ........................................................................................................... 64 5.4.1. Praktisches Beispiel ....................................................................................................... 66 5.4.2. Problematik des LDR-Regelkreises ................................................................................ 66 6. Strombedarf .................................................................................................................................. 69 7. Bedienungsanleitung .................................................................................................................... 71 7.1. Erste Schritte ......................................................................................................................... 71 7.2. Funktionsbeschreibung ......................................................................................................... 71 8. Erweiterungsmöglichkeiten.......................................................................................................... 72 9. Danksagungen............................................................................................................................... 73 10. Verzeichnisse ............................................................................................................................ 74 10.1. Abbildungsverzeichnis ....................................................................................................... 74 10.2. Quellenverzeichnis ............................................................................................................ 76 10.3. Literaturverzeichnis ........................................................................................................... 76 11. Anhang ...................................................................................................................................... 77 11.1. Programmanhang .............................................................................................................. 77 10.4. ACAD - Zeichnung vom Tisch ............................................................................................. 89 Seite 2 von 89 HTL Wien 10 Kurzfassung AVDIC Abstract The goal of our diploma thesis is the manufacture of a „Smart Desk“, which is equipped with two microcontrollers, different sensors, light sources and a display. Several light sensors capture the lighting conditions and send the data to a light control which creates a comfortable working atmosphere. The luminosity should be adapted dependent on different external factors like the sunlight. Additional sensors measure the temperature, as well as the humidity and output the values on a display. In case of deviation of the standard values it is adjusted in a simulation and warning is outputted. Five light depending resistors are mounted on the desks surface which act as light sensors and measure the incidence of light. Their data is transmitted to the microcontroller. The light is regulated on a set value and a constant illumination is given. Five LED bars, which are installed above the light sensors on a panel, are controlled over a microcontroller. The panel is fixed with two metal profiles. The control of the LED bars is managed through a pulse width modulation signal which is sent by the microcontroller. A constant current source makes sure that the currents of the LED bars are limited. Under the desk a temperature and humidity sensor is attached and sends the measured values to the microcontroller. The values are outputted to a display that is integrated into the table top. If the measured values are above or under the standard value, a warning message is written on the display and a warning signal is sounded. This signal sounds so long as the standard value is achieved. A control switch regulates between “manual” and “automatic” mode. At the “manual” mode the light intensity can be adjusted arbitrarily with a potentiometer. In the “automatic” mode the light is automatically controlled on a set value and because of this there is even illumination on the hole are of the desk surface. Saving of energy is very relevant and because of that the current consumption is captured. The results are outputted on an internet site. Thus the current saving can be compared to full intensity of the LED bars. Seite 3 von 89 HTL Wien 10 Kurzfassung AVDIC Kurzfassung Das Ziel der Diplomarbeit besteht aus der Fertigung eines Smart Desk’s, der mit zwei Mikrocontrollern, verschiedenen Sensoren, sowie Lichtquellen und einem Display ausgestattet ist. Durch mehrere Lichtsensoren werden die auftretenden Lichtverhältnisse erfasst und die Daten zur Schaffung eines angenehmen Arbeitsklimas der Lichtregelung zugeführt. Die Lichtstärke soll in Abhängigkeit von äußeren Faktoren, wie zum Beispiel durch Sonneneinstrahlung, dynamisch nachgeregelt werden. Weitere Sensoren erfassen die Temperatur und die Luftfeuchtigkeit im Tischbereich und geben die Werte auf einem Display wieder. Bei Abweichungen von den Normbereichen wird in einer Simulation nachgeregelt und eine Warnung ausgegeben. Auf dem Tisch sind fünf lichtabhängige Widerstände angebracht, die als Sensoren fungieren und den Lichteinfall messen. Diese Daten werden weiter auf den Mikrocontroller gesendet und verarbeitet. Das Licht wird auf einen Sollwert geregelt und somit herrscht immer eine konstante Beleuchtungsstärke auf der Tischoberfläche. Dazu werden fünf LED-Leisten einzeln angesteuert, die über den Sensoren auf einer Platte montiert sind. Diese ist über zwei Metallprofile mit dem Tisch verbunden und wird als Vorrichtung bezeichnet. Die Ansteuerung der LED-Leisten erfolgt über ein Arduino-Modul, welches ein pulsweitenmoduliertes Signal aussendet. Eine Konstantstromquellenschaltung sorgt dafür, dass der Strom der LED-Leisten begrenzt wird. Unter dem Tisch ist ein Temperatur-/Luftfeuchtigkeitssensor montiert, der die Messdaten an den Mikrocontroller auf dem Arduino-Board sendet. Die Ausgabe dieser Werte erfolgt auf einem Display, das im Tisch integriert ist. Außerdem wird beim Verlassen der Normbereiche eine Warnmeldung als Text ausgegeben und ein Warnsignal ertönt. Dieses Warnsignal ertönt solange bis der jeweilige Normbereich wieder erreicht ist. Durch Betätigen eines Auswahlschalters kann zwischen automatischem- und manuellem Betrieb gewechselt werden. Beim manuellen Betrieb kann die Helligkeit nach Belieben eingestellt werden. Beim automatischen Betrieb wird das Licht laufend nachgeregelt. Da Energiesparen ein aktuelles Thema ist, wird der Strombedarf durch einen Klappkernwandler erfasst und auf einer Internetseite ausgegeben. Somit kann die Stromeinsparung mit der vollen Aussteuerung der LED-Leisten verglichen werden. Seite 4 von 89 HTL Wien 10 1. Allgemeines AVDIC 1. Allgemeines 1.1. Projektentstehung und Planung Die Projektidee entwickelte sich im Laufe der ersten Monate des fünften Schuljahres. Unsere Überlegungen fingen mit einem lichtgeregelten Raum an. Die Lichtquellen in diesem Raum sollten so nachgeregelt werden, dass im Raum auch bei verschiedenen Einflüssen überall die gleiche Helligkeit herrscht. Die Sensoren die die Lichtverhältnisse aufnehmen, sollten gleichmäßig im Raum verteilt sein. Insgesamt war die Idee dahinter Energie zu sparen und eine konstante Beleuchtung im Raum herzustellen. Am Jahresanfang wurde die Diplomarbeitsidee mit einem Lehrer diskutiert. Jedoch kamen bei dieser einige Schwierigkeiten auf. Deshalb sind wir zu einer neuen gekommen, die vom Prinzip her der alten ähnelte. Unsere neue Idee war es einen Smart Desk zu konstruieren, der ein angenehmes Arbeitsklima schaffen kann. 1.2. Aufgabenstellung Viele Menschen arbeiten täglich für einen längeren Zeitraum an einem Tisch. Beim Lernen oder anderen Tätigkeiten wechseln die Umgebungseinflüsse und oft ist es schwierig die gute Konzentration über ein längeres Intervall aufrecht zu erhalten. Dafür sind die ausreichende Beleuchtung und ein angenehmes Raumklima von besonderer Bedeutung. Der Smart Desk erfasst alle wichtigen Daten und bereitet die Informationen so auf, dass das Licht, die Temperatur und die Luftfeuchtigkeit je nach Bedarf nachgeregelt werden können. Meilensteine der Diplomarbeit: Aufbau und Programmierung eines Prototypen mit einem Sensor und einer Lichtquelle (Ende November) Kommunikation zwischen Mikrocontroller und den Lichtsensoren herstellen (Ende Dezember) Lichtmessung am Tisch und Regelung der Lichtstärke auf den Normwert anpassen (Ende Dezember) Messung der Temperatur und Luftfeuchtigkeit im Raum und Ausgabe der Werte auf eine Anzeige mit Warnmeldung bei Über- oder Unterschreitung der Normwerte (Ende Januar) Fertigstellung des Tisches samt Verdrahtung der Busleitung (Ende Februar) Inbetriebnahme, Fehlerkorrektur, Verbesserungen (Ende März) Seite 5 von 89 HTL Wien 10 1.3. 1. Allgemeines AVDIC Aufgabenverteilung Die Aufgabenverteilung war nicht von Anfang an festgelegt. Erst als der richtige Arbeitsprozess begann, wurden die Aufgaben verteilt. Jeder aus der Gruppe sollte sich mit einem Thema beschäftigen. Oft waren die Aufgaben themenübergreifend, sodass jeder ungefähr wusste, womit sich der andere in der Gruppe beschäftigt. Da die Gruppe aus drei Personen besteht, kam es auch oft dazu, dass zwei gleichzeitig an einer Aufgabe arbeiteten, wie z.B. am Aufbau und an der Konstruktion des Tisches. Da die finanziellen Mittel der Schule begrenzt sind, war es wichtig diese effizient zu nützen. Das bedeutet, dass Materialien zuerst in der Schule oder im Materiallager der Schule gesucht werden und diese dann möglicherweise vorhanden sind. Die notwendigen Sensoren wurden alle bestellt und von der Schule bezahlt. 1.4. Kooperation mit Firmen Kooperationen mit Firmen waren erwünscht. Deshalb wurden verschiedenen Firmen kontaktiert und danach gefragt, ob sie bereit wären die Diplomarbeit Smart Desk mit Sponsoring zu unterstützen. Der „Smart Desk“ sollte ein robustes Konstrukt haben und natürlich auch stilvoll sein. Der Projektbetreuer bot der Gruppe einen alten Bürotisch an, der schon etwas abgenutzt war und auch keinen smarten Eindruck machte. Stattdessen setzte sich ein Gruppenmitglied mit den Firmen Neudoerfler und Bene in Kontakt. Die Firma Bene war interessiert und lud die Gruppe zum Treffen ein. Diese Zusammenkunft fand Ende November 2014 in einem Schauraum im 1. Wiener Gemeindebezirk statt. Die Projektidee wurde vorgestellt und fand Anklang bei der Ansprechperson der Firma Bene. Während des Gesprächs erfuhren die Diplomanden, dass es bereits vorhandene Innovationen der Firma Bene im Bereich Büro- bzw. Arbeitsmöbel gibt. Die Ansprechperson sagte unserer Diplomarbeitsgrupppe Unterstützung zu. Wir bekamen ein Angebot uns mit einer schwedischen Softwarefirma in Kontakt zu setzen. Diese sollte uns Unterlagen zum besseren Verständnis des Datenbusses zuschicken. Nach längerer Überlegung wurde der Entschluss gefasst dem Angebot nicht nachzukommen. Das Aneignen einer neuen Programmiersprache und das Beschäftigen mit dem Datenbus würde zu viel Zeit in Anspruch nehmen. Dennoch erhielten wir einen Tisch von der Firma Bene. Ein großes Problem war gelöst. Noch ein wichtiges Segment der Diplomarbeit ist die Beleuchtung. Die Gruppe entschied sich für eine Beleuchtung mit LED-Technologie. Durch die Zusammenarbeit mit einem ehemaligen Schüler der HTL Wien 10 wurden LED-Leisten von der Firma BEST gesponsert. Seite 6 von 89 HTL Wien 10 1. Allgemeines AVDIC Zusammenarbeit 1.5. Als wir uns entschlossen die Diplomarbeit durchzuführen, war eine der Prioritäten, dass jeder von jedem etwas lernen kann. Es ist wichtig, dass man anderen bei ihren Ideen für das weitere Vorgehen zuhört. Ohne Kompromiss kommt man bei einer Teamarbeit nicht voran. Ein weiterer wichtiger Aspekt beim Zusammenarbeiten ist, dass auch wenn man nicht derselben Meinung wie die Kollegen ist, über positive und negative Aspekte jeder Meinung, auch seiner eigenen, diskutieren kann. Möglicherweise stellt sich die eigene als mangelhaft heraus und das muss akzeptiert werden. Bei unserem Team funktionierte die Zusammenarbeit relativ gut. Von Anfang teilten wir die zu erledigenden Aufgaben gleichmäßig auf. Es kam auch vor, dass beispielsweise einer aus unserem Team viel für die Schule zu tun hatte und dafür die anderen einen Teil seiner Arbeit für diesen Zeitraum übernahm. Die Diplomarbeit beanspruchte viel Zeit. Oft arbeiteten wir auch nach Unterrichtsende in der Schule. Dabei verging die Zeit sehr schnell. Ab und zu gab es innerhalb des Teams Streitereien. Diese dauerten nicht lange, da wenn zwei stritten, der dritte die beiden versöhnte. Im Großen und Ganzen ist die Zusammenarbeit bis jetzt gut vorangegangen. Bei dem bisherigen Verlauf des Projekts darf die Rolle unserer Projektbetreuer nicht vernachlässigt werden. Auch andere Lehrer die unser Projekt nicht betreuten, waren bereit uns bei unseren Problemen zu helfen. Beide Projektbetreuer wurden laufend über den Stand der Dinge informiert. 1.5.1. Positive Erfahrungen Im Laufe der Diplomarbeit sammelten wir sehr viele positive Erfahrungen für unser Leben. Diese kann man als Bereicherung sehen, die man nicht bezahlen kann: Firmentreffen Bene Tüfteln, Herumtesten Internetrecherche Problemlösung 1.5.2. Negative Erfahrungen Einige waren: Unterschätzen von Problemen Falsche Zeiteinschätzung, die ein Vorhaben beansprucht Mühsames Fehlersuchen Warten auf Bestellungen Seite 7 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten IMAMOVIC 2. Beschreibung der elektronischen Komponenten 2.1. Blockschaltbild der einzelnen Bauteile Das einfache Blockdiagramm veranschaulicht die physikalische Verdrahtung der einzelnen Komponenten. Insgesamt werden zwei Mikrocontroller verwendet. Der erste „Arduino 1“ ist mit den fünf LED-Leisten, den dazugehörigen Fotowiderständen und dem Potentiometer verbunden. Im automatischen Betrieb gibt das Potentiometer den Sollwert der Ansteuerung der LED-Leisten vor. Der zweite Mikroprozessor „Arduino 2“ ist mit dem Display, dem Temperatur- und Feuchtesensor und dem Piezoslautprecher verbunden. Abbildung 1: Einfaches Blockschaltbild der Komponenten Der zweite Mikrocontroller übernimmt auch die I2C Kommunikation. Diese ist im Diagramm orange gekennzeichnet. Die blauen Leitungen zeigen die parallele Übertragung. Die Fotowiderstände geben analoge Werte von 0-1023 aus. Das heißt, sie verfügen über eine 10 Bit Auflösung. Die LED-Leisten haben eine 8 Bit (0-255) und das Potentiometer eine 10 Bit (01023)Auflösung. Seite 8 von 89 HTL Wien 10 2.2. 2. Beschreibung der einzelnen Komponenten IMAMOVIC Arduino (Bartmann, 2011) 2.2.1. Was ist Arduino? Arduino ist eine aus Soft- und Hardware bestehende Physical-Computing-Plattform. Physical Computing bedeutet im weitesten Sinne Systeme durch die Verwendung von Hardware und Software zu erstellen und umfasst solche, die sich mit den Menschen und der digitalen Welt beschäftigen. Soft- als auch Hardware sind zufolge von Open Source quelloffen. Die Programmierung erfolgt in der Programmiersprache C beziehungsweise C++. Vom Hersteller vorgegebe umfangreiche Bibliotheken und Beispielprogramme vereinfachen die Programmierung erheblich. 2.2.2. Programmierung Die Programmierung ist relativ einfach. Im Grunde genommen besteht das Programm aus zwei Teilen: Setup() Loop() Das Setup wird beim Starten des Boards einmalig aufgerufen, dabei ist es egal, ob gerade das Programm über die USB Schnittstelle hochgeladen wird oder ein Reset durchgeführt wird. Im Setup werden die einzelnen Pins als Eingänge oder Ausgänge definiert. Die Befehle in der Loop werden durchgehend durchlaufen, solange das Board in Betrieb ist. Die Struktur soll an einem Beispielprogramm erläutert werden. Vor dem Setup werden die einzelnen Variablen definiert. Die Abbildung 2 zeigt ein Programm, das auch in den Beispielprogrammen unter „Blink“ zu finden ist. Dabei handelt es sich um das einfachste Programm, nur um die Funktionen des Setups und der Loop zu veranschaulichen. Die Befehle sind in den Kommentaren beschrieben. Abbildung 2: Arduino Beispielprogramm 1 Seite 9 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten IMAMOVIC 2.2.3. Mikroprozessor 2.2.3.1. Allgemeines Das Herzstück der Diplomarbeit ist das Arduino Uno Mikrocontroller Board (siehe Abbildung 3). Es basiert auf einem ATmega328. 2 Abbildung 3: Arduino Uno Mikrocontroller Board Der Mikroprozessor lässt sich sowohl über die USB Schnittstelle, als auch über ein Netzteil versorgen. 2.2.3.2. Eigenschaften 3 Abbildung 4: Eigenschaftes des Arduino Uno Wie man in der Abbildung 4 sieht, wird der Prozessor extern entweder über die USBSchnittstelle oder eine Spannungsquelle mit 5V versorgt. Dazu verfügt er über 14 digitale Eingangs- bzw. Ausgangspins, die der Anwender als Eingang oder Ausgang definieren kann, sowie sechs analoge Eingänge. Sechs der digitalen Ausgänge können zur Pulsweitenmodulation genutzt werden. Außerdem kann das Arduino Board auch mit 3,3V betrieben werden. Dies liegt an den moderneren Bauteilen der Mikroelektronik, die mit einer niedrigeren Spannung versorgt werden. Sie werden nicht mehr auf 5V Betriebsspannung ausgelegt, sondern auf 3,3V. Seite 10 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten IMAMOVIC Weiters besitzt es zwei nicht flüchtige Speicher (Flash und EEPROM) zu je 32kB und 1kB und einen flüchtigen mit 2kB (SRAM). Der Mikroprozessor wird mit 16 MHz getaktet. Dazu dient der interne Quartz. Zum besseren Verständnis wird der Kern des Mikroprozessors, der Atmega328 und die AVR CPU genauer beschrieben. Somit sind einige Programmabläufe leichter verständlich. 2.2.3.3. Blockdiagramm In Abbildung 5 wird das Blockdiagramm des ATmega328 dargestellt und darauf folgend werden einzelne Begriffe erklärt. 4 Abbildung 5: Blockdiagramm ATmega328 Power Supervision POR / BOD & RESET Am Eingang zwischen Masse und +5V befindet sich die Spannungsüberwachung (Power Supervision, BOD = Brown-out detector). Diese beobachtet kritische Einschaltzustände, wie zum Beispiel das langsame Hochfahren der Spannung. Außerdem dient das POR „power on reset“ dazu, dass beim Einschalten oder bei einem Neustart die Adresse des Mikroprozessors auf Null gesetzt wird. Seite 11 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten IMAMOVIC Watchdog Der „Watchdog Timer“ und sein Oszillator sind mit der Spannungsüberwachung verbunden. Der „Watchdog“ (Wachhund) muss in regelmäßigen Intervallen mit einem Bit gesetzt werden, ansonsten leitet er den Neustart des Prozessors ein. Der Neustart stellt den vom Anwender zuletzt programmierten Ausgangszustand her. debugWIRE Mit der Spannungsüberwachung ist auch der „debugWire“ (debug = Fehler suchen) verbunden. Über diese Verbindung kann der Prozessor- und der Speicherzustand extern ausgelesen werden. Das erleichtert die Fehlersuche. PROGRAM LOGIC In der „Program Logic“ arbeitet der Prozessor das Programm ab. Flash Die vollständige Bezeichnung heißt „Flash-EEPROM“ und dieser ist ein nicht flüchtiger Speicher. Dadurch wird die Speicherung der Programmierung auf dem Mikrocontroller mit niedrigem Energieverbrauch optimiert. SRAM „Static random access memory“ Dies ist der Arbeitsspeicher des Mikroprozessors. Er ist ein flüchtiger Speicher und besteht aus Flipflops. EEPROM „electric erasable read only memory“ EEPROM ist ein elektrisch formatierbarer Speicher und ist nicht flüchtig. AVR CPU „Central processing unit“ In der CPU befinden sich die zentrale Recheneinheit (ALU => „arithmetic logic unit“) und die Register, die schnellsten Speicher. Die CPU wird später genauer beschrieben. 8 Bit T/C Diese Einheit ist ein 8 Bit „Timer“ und „Counter“ (Zähler). Dadurch wird das Zählen bis 28 = 256 ermöglicht. Das Timing hängt von der Anzahl der Bits ab. Bei 28 ist das Timing bis 256 μs möglich. Seite 12 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten IMAMOVIC A/D Converter Der Analog-Digital-Wandler konvertiert analoge in digitale Werte. Dabei ist zu unterscheiden, ob die Spannungen „single ended“ (d.h. auf Masse bezogen) oder differenziell (von Masse unabhängig) erfasst werden. Die Anzahl der Bits steht für die Auflösung der Spannung in Stufen. Der Atmega328 verfügt über einen 10 Bit ADC und kann daher die Spannung in 1024 Stufen darstellen (210 = 1024). Bedeutend sind auch die Abtastrate (wie oft kann er diese Spannung messen, bei 10kHz = 10000 Mal pro Sekunde) und die Anzahl der Kanäle. In dem Fall stehen acht Kanäle zur Verfügung. Internal Bandgap „Internal Bandgap“ ist eine Spannungsreferenz, die sehr unabhängig von der Temperatur ist. Die Referenz ist Teil des Analog-Digital-Wandlers. Analog Comparator Wie der Name schon sagt, handelt es sich hierbei um einen analogen Komparator, der zwei analoge Werte vergleicht und als Ausgang digital zeigt, welche der beiden Eingangsspannungen höher ist. Dadurch lassen sich beispielsweise analoge Sensorwerte digitalisieren. Dabei wird immer eine Ja/Nein-Entscheidung getroffen (Beispielsweise wird überprüft, ob der gemessene Wert den Normwert überschreitet). Die If-Abfragen in Programmabläufen können im analogen Komparator stattfinden. USART USART („universal synchronous/asynchronous receiver transmitter“) ist eine serielle Schnittstelle und dient zum Senden und Empfangen von Daten. Dabei handelt es sich um eine Messgeräteschnittstelle, die Spannungen zwischen 0 und 15V schaltet. Zum Beispiel: Schnittstelle RS232. SPI „serial peripheral interface“ ist ebenfalls eine serielle Schnittstelle und dient der Kommunikation innerhalb des Mikroprozessors mit Daten- und Taktsignal. TWI „two wire interface“ ist der I2C-Bus. Aus rechtlichen Gründen gibt es zwei Bezeichnungen dafür, technisch gesehen sind die beiden aber ident. „two wire“ steht für die zwei Leitungen SDA (Datenbus) und SCL (Taktleitung). Beim Prozessor Atmega328 ist die Taktleitung als analoger Eingang A5 und der Datenbus als analoger Eingang A4 definiert. Seite 13 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten Abbildung 6: I2C Schaltungsbeispiel IMAMOVIC 5 In Abbildung 6 sind drei Geräte am I2C-Bus angeschlossen. Die beiden Busleitungen werden über zwei Pull-Up-Widerstände gegen 5V geschaltet. Bei der seriellen Datenübertragung gibt es grundsätzlich immer einen Master und ein oder mehrere Slaves. Wenn mehrere Master in Betrieb sind, so spricht man vom Multi-Master Mode. Hier ist es wichtig, dass die zwei Master sich nicht gegenseitig stören. In der Diplomarbeit wird die genaue Funktionsweise der I2C Kommunikation im Kapitel 4. Programmierung erläutert. Ports Im anderen Ende, gegenüber der Spannungsüberwachung, befinden sich drei Ports (B, C und D). Zu einem Port gehören acht Pins, die als digitale Ein- oder Ausgänge definiert werden können, und ein Datenrichtungsregister DDR. Port C hat aufgrund von Platzmangel am Prozessor nur sieben Pins. Der Datenbus geht quer durch den Baustein und, wie auf der Abbildung 8 zu sehen ist, mehrere Einheiten sind mit ihm verbunden. Außerdem gehören die Anschlüsse „XTAL1“ und „XTAL2“ dem Quartz, der die Frequenz bestimmt. In der Abbildung 7 wird das Blockdiagramm der AVR Architektur gezeigt, anschließend werden die wichtigsten Begriffe erläutert. 6 Abbildung 7: AVR Architektur Seite 14 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten IMAMOVIC Zur Maximierung der Leistung und Effizienz werden beim ATmega328 die Speicher- und Busleitungen für die Programmierung und die Daten getrennt geführt. Die Mikrocontroller besitzen die RISC Architektur („reduced instruction set computer“). Diese verfügt über ca. 100-150 Befehle. Nun zu den einzelnen Begriffen: Status and Control Das ist ein Register, das über den Zustand der ALU (zentrale Recheneinheit) Auskunft gibt. General Purpose Register In der RISC Architektur werden frei verwendbare Register verwendet, welche sich beliebig als Daten- oder Adressregister einsetzen lassen. Diese Register erlauben die Rechenvorgänge der ALU und speichern die Zwischenergebnisse dort. 32 steht für die Anzahl der Register (32 Bytes für den allgemeinen Gebrauch) und 8 für die 8 Bit-Breite des Datenbusses. ALU Die ALU ist die zentrale Recheneinheit. Sie führt die Rechenvorgänge durch. Program Counter Befehlszähler, der im Hintergrund mitläuft. Der Zählerwert wird gespeichert. Flash Program Memory Hier sind die einzelnen Befehle des Mikrocontrollers gespeichert. In der RISC Architektur gibt es ca. 100-150 Befehle. Instruction Decoder Hier definiert der Hersteller, wie die einzelnen Befehle abzuarbeiten sind. Zu jedem Befehl gibt es ein Mikroprogramm, das vom Hersteller programmiert wurde und im Chip gespeichert ist. Dieses Programm ist ein Algorithmus im Prozessor und dient dem Steuern des Rechenwerks. Instruction Register Hier landet der Inhalt des Programmspeichers von der Adresse "Programm Counter" immer zuerst, da ja der AVR erstmals selber schauen muss, was für ein Befehl das wohl ist. Jedes Befehlswort beinhaltet kodiert drei Dinge: "WAS", "WOHER" und "WOHIN". Einiges kann direkt im SRAM oder in den Register eine Auswahl treffen, einiges muss weiter zum „Instruction Decoder“. Zusammenfassend gilt, dass sowohl der „Instruction Decoder“ als auch das „Instruction Register“ für die Ausführung des Befehls zuständig sind. Seite 15 von 89 HTL Wien 10 2.3. 2. Beschreibung der einzelnen Komponenten IMAMOVIC Digitaler Luxsensor Der TSL2561 Digitalluxsensor erfasst präzise Werte von 0,1 bis 40000 Lux. 7 Abbildung 8: Digitaler Luxsensor 2.3.1. Aufbau und Funktionsweise Dieser Sensor verfügt über ein digitales Interface (I2C) und wird mit 3,3V über den Mikroprozessor versorgt. Wie in der Abbildung 8 zu sehen ist, hat er sechs Anschlüsse. Jedoch werden nur fünf genutzt. SCL (serial clock line) und SDA (serial data line), also Taktund Datenleitung, werden auf die I2C-fähigen Pins des Mikroprozessors geführt. Dabei ist zu beachten, dass pro Mikroprozessor nur drei digitale Luxsensoren betrieben werden können. Dies liegt an dem Address-Pin der Adresse, die im Programm definiert wird. Dabei können drei Zustände auftreten: Wird der Pin nicht angeschlossen, so schreibt man im Programm „FLOAT“. Wird er an 5V angeschlossen, dann „HIGH“ und wird er auf Masse angeschlossen dann „LOW“. Der Luxsensor ermittelt die Lichtstärke über die verschiedenen Anteile des Lichts, unter anderem den Infrarotanteil, das volle Spektrum und das für uns Menschen sichtbare Licht. 2.3.2. Fazit Der digitale Luxsensor schien uns zunächst viel besser geeignet als der Fotowiderstand. Einerseits weil er den Wert digital als Luxwert ausgibt und andererseits da der I2C Aufbau der Regelung erhalten bleibt. So werden Leitungen gespart, jedoch ist der Luxsensor zu träge für die Regelung und wurde deshalb durch den Fotowiderstand ersetzt. 2.4. Fotowiderstand Ein Fotowiderstand (englisch light dependent resistor = LDR) ist ein lichtabhängiger Widerstand, der über eine Halbleiterschicht verfügt. Der elektrische Widerstand hängt reziprok proportional mit der Lichtstärke zusammen. Je höher der Lichteinfall, desto kleiner wird der Wert des elektrischen Widerstandes. 8 Abbildung 9:Fotowiderstand Seite 16 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten IMAMOVIC 2.4.1. Funktionsweise Bei Halbleitern, die für Fotowiderstände verwendet werden, wird nicht der innere fotoelektrische Effekt genutzt, sondern es werden Übergänge zu Störstellen genutzt. Das Licht ionisiert eine Störstelle im Kristallgitter und diese verbessert die elektrische Leitfähigkeit nach einigen Millisekunden. Da die Ionisierung und die anschließende Neutralisierung etwas lange dauert, erhält man eine relativ hohe Empfindlichkeit, aber dadurch auch eine langsame Reaktion. Beim Fotowiderstand ist besonders auf die Oberfläche zu achten. Kleinste Veränderungen der Mikrostruktur oder auch Verunreinigungen führen zu Veränderung der elektrischen Leitfähigkeit und somit auch zur Änderung des Widerstandes. 2.4.2. Eigenschaften Auch nach langer Abdunkelung der Oberfläche des Fotowiderstandes verbleiben freie Ladungsträger und verursachen einen sogenannten Dunkelstrom. Dieser ist eine Funktion der Temperatur und kann durch die Zuführung von Kälte verringert werden. Folgende Parameter kennzeichnen den Fotowiderstand: Dunkelwiderstand: Das ist der Widerstandswert des Fotowiderstandes bei Dunkelheit. In der Praxis ist dieser typisch 1MΩ bis 100MΩ und wird erst nach langer Zeit (ca. 30-60 Sekunden) Dunkelheit erreicht. Hellwiderstand: Dies ist der Widerstandswert bei einer Helligkeit von 1000 Lux und ist typisch 100Ω bis 2kΩ. Ansprechzeit: Die richtige Definition der Ansprechzeit lautet: Das ist die Zeit, die nach Einschalten einer Beleuchtungsstärke von 1000 Lux nach Dunkelheit vergeht, bis der Strom 65 % seines spezifizierten Wertes erreicht hat. In anderen Worten ist dies auch die Reaktionszeit des Fotowiderstandes und beträgt in der Praxis 1 bis 3 Millisekunden. Empfindlichkeitskurve: Die Empfindlichkeitskurve, die in der Abbildung 10 zu sehen ist, zeigt den Zusammenhang zwischen der Lichtstärke in Lux und dem elektrischen Widerstand in Ohm. Seite 17 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten Abbildung 10: Empfindlichkeitskurve des Fotowiderstandes IMAMOVIC 9 2.4.3. Fazit In unserer Regelung werden fünf Fotowiderstände verwendet, die die fünf I2C Luxsensoren ersetzt haben. Der wesentliche Grund für die Änderung der Sensoren liegt in der Ansprechzeit. Die digitalen Sensoren brauchten 10-15 Millisekunden für die Verarbeitung und Berechnung der Werte. Der Fotowiderstand braucht lediglich 1 bis 3 Millisekunden, was die Lichtregelung dynamischer macht. 2.5. Spannungsregler Der verwendete Spannungsregler ist ein linearer Längsregler. Da die LED-Leisten einen konstanten Strom benötigen, wird mit Hilfe des Spannungsreglers eine Konstantstromquelle konzipiert. Dabei wird an den Ausgang des Reglers ein Widerstand angeschlossen. Durch den konstanten Widerstand und die konstante Spannung ergibt sich ein konstanter Strom. b) Abbildung 12: Interne Schaltung eines Längsreglers a) Abbildung 11: LM317T mit Beschriftung 11 10 Der Regler vergleicht die Ausgangsspannung mit der intern erzeugten Referenzspannung. Ist die Ausgangsspannung zu niedrig, wird der interne Transistor, der den Ausgangsstrom führt, stärker angesteuert. So verstärkt sich der Ausgangsstrom, bis die gewünschte Ausgangsspannung erreicht ist. Seite 18 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten IMAMOVIC Wird die Ausgangsspannung jedoch zu groß, reduziert der Transistor den Strom, bis sich die Spannung wieder stabilisiert hat. Der Transistor funktioniert wie ein variabler Widerstand. Die Spannungsdifferenz zwischen Eingangs- und Ausgangsspannung fällt an ihm ab. Ein großer Nachteil des Spannungsreglers ist der relativ kleine Wirkungsgrad bzw. die Verlustleistung. Die Spannung, die am Eingang zugeführt wird und am Ausgang nicht benötigt wird, fällt am Transistor ab und wird dort in Wärme umgewandelt. Wirkungsgrad (ohne Berücksichtigung des eigenen Strombedarfs) 𝜂 [%] = 𝑈𝐴𝑢𝑠𝑔𝑎𝑛𝑔 𝑈𝐸𝑖𝑛𝑔𝑎𝑛𝑔 14𝑉 ∗ 100 = 16𝑉 ∗ 100 = 87,5% Verlustleistung Die LED-Leisten, die am Tisch angebracht sind, benötigen jeweils 500mA. Die Eingangsspannung am Regler beträgt 16V und ausgegeben werden 14V. Somit fallen 2V am Spannungsregler ab. Das entspricht einer Verlustleistung von: PV = 2V * 0,5A = 1W Kühlung Es ist darauf zu achten, dass der Spannungsregler ausreichend gekühlt wird. Der LM317T besitzt ein TO-220 Gehäuse. Laut Datenblatt hat dieses Gehäuse einen Wärmewiderstand Sperrschicht-Umgebung von 50°C/W und einen Wärmewiderstand Sperrschicht-Hülle von 3°C/W. Die Außentemperatur beträgt ca. 20°C. Aus diesen Parametern ergibt sich dann das Ersatzschaltbild der Konvektion. J…Junction (=> Sperrschicht) C…Case (=>Hülle) A…Ambient (=> Umgebung) Abbildung 13: Wärmeersatzschaltbild RthJC => Wärmewiderstand zwischen Sperrschicht und Hülle RthJA => Wärmewiderstand zwischen Sperrschicht und Umgebung Bei einem Watt Verlustleistung ergibt sich eine Temperatur von 3°C zwischen Sperrschicht und Hülle und 47°C zwischen Hülle und Umgebung. Inklusive der Umgebungstemperatur ergibt dies eine Sperrschichttemperatur von 70°C. Seite 19 von 89 HTL Wien 10 2. Beschreibung der einzelnen Komponenten IMAMOVIC Laut Datenblatt hält der Kristall des Spannungsreglers 125°C aus. Die Gesamttemperatur beträgt laut Berechnung 70°C. Das bedeutet, dass kein Kühlkörper benötigt wird. Aus empirischen Gründen wurde trotzdem einer angebracht, weil bei den ersten Versuchen mit dem Ansteuern der LED-Leiste die Spannung „eingebrochen“ ist. Wenn der Spannungsregler eine bestimmte Temperatur erreicht, bricht die Spannung ein und das Gehäuse des Reglers wurde brennend heiß. Der Spannungsregler verfügt über eine interne Schutzschaltung, welche bei Übertemperatur den Strom drosselt. Da damals das Problem mit der Kühlung nicht bekannt war, griff ein Kollege den Regler an und verbrannte sich den Finger. Deswegen wurde anschließend ein Kühlkörper montiert. Es wurden erneut Versuche gestartet und diesmal brach die Spannung nicht ein. Den eigentlichen Grund, wieso ein Kühlkörper benötigt wird, wurde trotz Benutzung des Internets nicht gefunden. Und da uns die Zeit fehlte, uns genauer mit dem Problem zu beschäftigen, wurde einfach ein ausreichend großer Kühlkörper montiert, sodass die Spannung konstant blieb. Seite 20 von 89 HTL Wien 10 3. Hardware SHADI 3. Hardware 3.1. Mechanik 3.1.1. Konstruktionsprogramm12 Das Programm AutoCAD ist ein sehr bedeutender Teil der CAD-Produktpallette von Autodesk. Da das Unternehmen immer die neuesten Softwarekomponenten für Schüler drei Jahre lang kostenlos zur Verfügung stellt, wurde die aktuellste Version „AutoCAD 2015“ verwendet. Diese Version und all ihrer Vorgänger wurden als grafischer Zeichnungseditoren vom Unternehmen entwickelt, um die grafische Darstellung zu vereinfachen. Der Ursprung des Programmes beruht auf einem einfachen CAD-Programm mit Programmierschnittstellen zum Erstellen von technischen Zeichnungen. Viele Möglichkeiten wurden hinzugefügt, welche die dreidimensionale Modellierung ermöglichen. Grundsätzlich basiert AutoCAD auf einfachen Objekten, wie Linien, Polylinien, Kreisen, Bögen und Texten, welche die Grundlage des vektororientiertem Zeichenprogrammes darstellen, um das Konstruieren von 3DObjekten zu ermöglichen. 3.1.2. Tischaufbau 3.1.2.1. Der Weg zum Tisch Das Ziel der Diplomarbeit besteht aus der Fertigung des Smart Desks, der mit zwei Mikrocontrollern, Sensoren, Lichtquellen und einem Display ausgestattet ist. Die ersten Überlegungen waren, einen gewöhnlichen Tisch zu kaufen. Doch nach Absprache mit den betreuenden Lehrern, wurden Sponsoranfragen an die Firmen Bene und Neudörfler verschickt. In der E-Mail wurden die grundsätzlichen Ideen unserer Diplomarbeit vorgestellt. Die Firma Bene erwies sich als kooperationsfreudig. Einige Wochen später konnte der Tisch zur Verfügung gestellt werden. Er wurde in die 3D-Ansicht von AutoCAD gezeichnet (siehe Abbildung 14). Abbildung 14: Tisch in der 3D-Ansicht von AutoCAD Seite 21 von 89 HTL Wien 10 3. Hardware SHADI Um mit den Arbeiten beginnen zu können, mussten zuerst die Zeichnungen konstruiert und alles gut überlegt werden. 3.1.2.2. Fertigung der U-Stahl-Träger Die Vorrichtung des Tisches musste montiert werden um mit den Messungs- und Programmierungsarbeiten anfangen zu können. Dafür mussten die Träger gefertigt werden. Da die ausreichende Kenntnis der Maschinenbau fehlte, wurde ein Fachlehrer der Maschinenbauabteilung um Rat gebeten. Die Entscheidung fiel auf die U-Stahl-Träger, da sie eleganter aussahen. Dies zu Folge wurde eine Zeichnung erstellt, wie die Träger ausschauen müssen. Die Höhe der Träger wurde nach der Stärke der LED-Leisten definiert, da sie nur bis zu einer gewissen Entfernung, von dem zu beleuchtenden Objekt, die versprochene Lichtstärke vorweisen können. Hierbei wurde die 2-D-Ansicht von AutoCAD genutzt um die Träger zu konstruieren, siehe Abbildung 15. Abbildung 15:U-Stahlträger (Maße in cm) Mit der Zeichnung konnten die Fertigungsarbeiten begonnen werden. In der Schmiedewerkstätte unserer Schule wurde das Material bearbeitet. Hierbei wurden die Stahlformrohre, die mit einander geschweißt werden, mittels Winkelsäge im 45° Winkel geschnitten. Die anderen Enden des Profils wurden in einem 23° Winkel geschnitten. Da dies aber mit der Maschine nicht auszuführen war, musste dieser mit einem Winkelschleifer getätigt werden. Als nächsten Schritt wurden die Befestigungslöcher mit der Standbohrmaschine gebohrt. Anschließend wurden die Teile miteinander verschweißt. Der letzte Arbeitsschritt war das Lackieren der U-Stahlträger. Als erstes wurde die Konstruktion mit einen Metallentfetter gereinigt, bis diese silberhaft schimmerte. Anschließend wurde ein Spraylack, bei dem kein Grundierungsbedarf besteht, auf dem UStahl gesprüht. Seite 22 von 89 HTL Wien 10 3. Hardware SHADI 3.1.2.3. Zusammenbau Für die Vorrichtung des Tisches wurde eine Holzplatte mit den gleichen Maßen wie die des Tisches benötigt. In der Schultischlerei wurde die Platte vom Haustischler zurecht geschnitten. Anschließend wurden Löcher in der Vorrichtungsplatte und in der des Tisches gebohrt. Diese dienen der Befestigung des tischen, des U-Stahls und der Vorrichtungsplatte miteinander. Bevor die Vorrichtungsplatte auf den Tisch montiert werden konnte, mussten die jeweiligen Befestigungsklemmen für die LED-Leisten und der Kabelkanal, der die Versorgungskabeln der LED-Leisten beinhaltet, montiert werden. Als dies getan war, wurden die Teile mit den passenden Torbandschrauben miteinander verbunden (siehe Abbildung 16). Abbildung 16: Tisch mit Vorrichtung und LED-Leisten Diese Weiterbearbeitung wurde auch in der 3D-Ansicht von AutoCAD ergänzt (siehe Abbildung 17). Seite 23 von 89 HTL Wien 10 3. Hardware SHADI Abbildung 17: Tisch mit Vorrichtung und LED-Leisten in der 3D Ansicht von AutoCAD 3.1.2.4. Sensor- und Displayplatzierung Um die weiteren Komponenten des Tischs zu ergänzen wurde ein maßgenaues Rechteck in die Ecke der Tischplatte geschnitten und das Display eingepasst und geklebt. Der Feuchtigkeitssensor wurde gleich neben dem Display auf der unteren Seite der Platte geklebt. Für die einzelnen Sensoren wurden jeweils ein Loch unterhalb der dazugehörigen LED-Leiste gebohrt. Dies wurde aus Genauigkeitsgründen gewählt, um mehr Licht von der Leiste aufnehmen zu können und eine ideale Dimmung zu gewährleisten. Dadurch kann mehr Energie gespart und ein besserer Wirkungsgrad erreicht werden. Für die Sensoren wurden quadratische Sensorabdeckungen aus Plexiglas mit den Maßen 40x40x30mm gefertigt. Um die Sensoren vor unabsichtlichem Abdecken oder mechanischem Schaden zu schützen. Die Lokalität der Sensoren und deren Abdeckungen können in der Abbildung 18 nachvollzogen werden. Seite 24 von 89 HTL Wien 10 3. Hardware SHADI Abbildung 18: Grundriss der Tischplatte 3.1.2.5. Hauptschalter Das Ziel der Diplomarbeit war das Schaffen eines angenehmen Arbeitsplatzes, der so wenig Energie wie möglich verbraucht. Allerdings geht ein Großteil der Energie im Standby-Modus verloren und aus diesem Grund wurde einen Hauptschalter montiert, der es ermöglicht den Tisch mit all seinen Funktionen auszuschalten. Dazu wurde die Stromversorgung eines Steckdosenverteilers mit einem Schalter, der auf der unteren Seite der Tischplatte montiert wurde, unterbrochen. Somit können alle Versorgungsleitungen, die an dem Verteiler angeschlossen sind, vom Netz genommen werden. 3.1.2.6. Gerätebox Um die Ansteuerungskomponenten, auf denen die Diplomarbeit basiert, leichter demonstrieren zu können, wurde eine Box, in der alle unsere Regelkomponenten platziert sind, gefertigt. Diese wurde in der rechten Seite, ganz am Rand des Tisches montiert, siehe Abbildung 18. Um ein gewissen Abstand zwischen den Komponenten zu schaffen, der die Verdrahtung erleichtern soll, wurden eine Länge von 300mm, eine Breite von 185mm und eine Höhe von 110mm gewählt. Die Anordnung der Komponenten in der Gerätebox können der Abbildung 19 entnommen werden. Seite 25 von 89 HTL Wien 10 3. Hardware Abbildung 19: Anordnung der Komponenten in der Grundrissansicht der Gerätebox Abbildung 20: Kühlungsschlitze und Anschlusslöcher in der Vorderansicht der Gerätebox Seite 26 von 89 SHADI HTL Wien 10 3. Hardware SHADI Da die Spannungsregler auf der Lichtansteuerungsplatine gekühlt werden müssen, wurden diese Kühlkörper bestückt. Dazu mussten die Seiten der Platine, mit den Spannungsreglern, nahe des Gehäuses der Box gerichtet werde. Desweitern wurden ihnen gegenüber Kühlschlitze gefräst, um eine ausreichende Kühlung zu gewährleisten. Um eine Kontaktierung der Komponenten zu ermöglichen, wurden in den Seitenplatten Langlöcher ebenfalls gefräst (siehe Abbildung 20). 3.2. Elektronik und Elektrik 3.2.1. Konstruktionsprogramm13 EAGLE ist ein EDA-Programm, welches von der Firma CADSoft entwickelt wurde, um die Herstellung von Leiterplatten zu erleichtern. Die Abkürzung EDA steht für Electronic Design Automation. Der Name EAGLE ist ein Initialwort, das sich aus „Einfach Anzuwendender Grafischer Layout-Editor“ zusammensetzt. Die Software ermöglicht die Arbeit mit einem Layout- und einem Schaltplan-Editor. Die erweiterbare Bauteil-Datenbank ermöglicht es, verschiedene Bauteile in die Schaltungen einzubinden und verringert somit die Suchzeiten nach passenden Bauteilen. Da auch eine vom Unternehmen gratis zur Verfügung gestellte Version vorhanden ist, welche für den nichtkommerziellen Einsatz geeignet ist, konnte die Software legal und ohne viel Aufwand genutzt werden. Das Programm stellt dem Anwender ein Schaltplanblatt, mit der Größe einer halbe Europakarte, also eine Platine mit den Maßen100 mm × 80 mm und zwei Signallagen zur Verfügung. Dies war für unser Vorhaben mehr als ausreichend. Seite 27 von 89 HTL Wien 10 3. Hardware AVDIC 3.2.2. Ansteuerung LED-Leiste und Platinenentwürfe 3.2.2.1. Vorüberlegungen Abbildung 21: LED-Leiste Um erste Versuche zu tätigen, wurde eine LED-Leiste als Lichtquelle verwendet. In dem Lieferumfang war ein Netzteil vorhanden, doch dieses konnte nicht genutzt werden, da eine Dimmung nicht möglich war. Deshalb war es notwendig etwas anderes zu entwickeln. Zuerst wurde der durch die LED-Leiste fließende Strom gemessen. Dazu musste das Netzteilkabel aufgeschnitten und ein Amperemeter mit Hirschmannklemmen in Serie geschaltet werden. Der Strom stimmte mit der Beschreibung in der Anleitung überein und betrug 445 mA. Die Spannung des Netzeils im Leerlauf betrug 11,89 V, was auch ungefähr der Beschreibung (12V) entsprach. Damit ein konstanter Strom fließen kann und dieser auch nicht überschritten wird, begann die Entwicklung einer Konstantstromquellenschaltung, die den Strom auf 500mA begrenzt. Abbildung 22:Schaltung für Konstantstromquelle Die Schaltung wurde zuerst ohne LED-Leiste und ohne das Arduino-Modul auf einem Steckbrett aufgebaut. Statt der LED-Leiste wurde ein Amperemeter eingebaut und statt dem Arduino-Modul eine 5V Spannungsquelle. Seite 28 von 89 HTL Wien 10 3. Hardware AVDIC Annahme (siehe Abbildung 22) UE=16V; IC=500mA; ULM317=2V; UCE=0,5V; IB=8mA 𝑈𝐿𝑀317 = 𝑓(𝐼𝑐, 𝜃) 14 Abbildung 23: Diagramm aus dem Datenblatt des LM317 Die Eingangsspannung beträgt 16 V. Am Spannungsregler LM 317 fallen bei 500mA Strom nach Datenblatt, siehe Abbildung 23, 2V ab. Das ist in der Abbildung 23 erkennbar, da bei einer Raumtemperatur von ungefähr 20°C und 500mA Strom, die Input – Output Differenz 2V beträgt, siehe rot markierter Bereich. Vier 10Ω - Widerstände werden parallelgeschaltet, damit ein Widerstandswert von 2,5 Ohm erreicht wird. Dieser ist notwendig damit 500mA Strom fließen. Außerdem teilt sich die Verlustleistung durch die Parallelschaltung auf vier Widerstände auf. 𝑅1 = 1 1 1 1 1 10Ω + 10Ω + 10Ω + 10Ω = 𝟐, 𝟓Ω Der Spannungsabfall am Widerstand R1 beträgt 1,25V. 𝑈𝑟1 = 𝑅1 ∗ 𝐼 = 2,5Ω ∗ 500𝑚𝐴 = 𝟏, 𝟐𝟓𝑽 Damit eine Dimmung der Lichtquelle möglich ist, wurde noch ein NPN-Transistor eingebaut, der lediglich zum Schalten dient. Der Spannungsabfall auf dem Widerstand R2 ist 4,3V groß. Dieser wird mit der Kirchhoff’schen Maschenregel berechnet. +𝑈𝑟2 + 0,7𝑉 − 5𝑉 = 0 𝑈𝑟2 = 5𝑉 − 0,7𝑉 = 𝟒, 𝟑𝑽 Ein Basisstrom von 8mA ist ausreichend zum Durchschalten des Transistors. Der Widerstand R2 errechnet sich aus dem ohmschen Gesetz. 𝑅2 = 4,3𝑉 4,3𝑉 = = 𝟓𝟑𝟖Ω 𝐼𝑏 8𝑚𝐴 In der Schaltung wurde ein 560Ω Widerstand eingebaut. Bei der Messung hat das Amperemeter einen Strom von 470mA angezeigt und dieser ist auch nicht gestiegen wenn die Eingangsspannung erhöht wurde. In der folgenden Formel Seite 29 von 89 HTL Wien 10 3. Hardware AVDIC wird die Ausgangsspannung im Leerlauf berechnet, indem alle Spannungsabfälle von der 16V Eingangsspannung abgezogen werden. 𝑈𝑎 = 𝑈𝑒 − 𝑈𝑙𝑚317 − 𝑈𝑟1 − 𝑈𝑡1, 𝑐𝑒 𝑈𝑎 = 16𝑉 − 2𝑉 − 1,25𝑉 − 0,5𝑉 = 𝟏𝟐, 𝟐𝟓𝑽 12,25V sind ausreichend und sogar mit etwas Reserve versehen. Eine wichtige Erkenntnis dieser Messung war, dass diese Lösung nicht die optimalste ist, da viel Energie im Spannungsregler in Wärme umgewandelt wird und dieser sehr heiß wird. Deshalb ist ein Kühlkörper unumgänglich. 3.2.2.2. Entwurf 1 der Konstantstromquelle Da die Strombegrenzung durch die Schaltung glückte, wurde die Platine hergestellt. Die Schaltung dazu wurde im Programm EAGLE gezeichnet. Abbildung 24: Konstantstromquelle konstruiert mit EAGLE (Schaltplan-Ansicht) In der Abbildung 24 ist die Schaltung für die Konstantstromquelle zu sehen. Da fünf Lichtquellen angesteuert werden sollten und es von Vorteil war jede einzeln anzusteuern, wurde diese Schaltung sechs Mal hergestellt. Da es auf der Platine noch Platz gab, wurde noch eine zu den fünf notwendigen hinzugefügt. Die fertige Platine wird in Abbildung 25 dargestellt. Seite 30 von 89 HTL Wien 10 3. Hardware AVDIC Abbildung 25: Sechs Konstantstromquellenschaltungen in der Board-Ansicht Da der erste Versuch glückte, war die Aufgabe nun die Schaltung über den PWM-Pin des Arduino-Moduls zu steuern. Deshalb wurde die Schaltung nochmals mit einer LED-Leiste aufgebaut. Als Kühlkörper für den Spannungsregler LM317 wurde eine Metallklemme verwendet. Nach einigen Überlegungen stellte sich ein mögliches Problem heraus. Falls in unserer Schaltung ein Fehlerstrom auftreten würde, könnte das Arduino-Board und der damit verbundene Laptop beschädigt werden. Deshalb wurde entschieden sicherheitshalber eine Potentialtrennung mittels Optokopplerschaltung aufzubauen. 3.2.2.3. Entwurf 2 der Konstantstromquellenschaltung Als Optokoppler wurde der PC817 genommen. Der Widerstand R3, in Abbildung 26 zu sehen, wurde so dimensioniert, dass max. 10mA fließen. 𝑅3 = 𝑈 𝐼 16𝑉 = 10𝑚𝐴 = 𝟏, 𝟔𝒌Ω Anfangs wurde der Widerstand R4 in Abbildung 26 beim PWM-Pin mit 800Ω dimensioniert, dass bei einem angenommenen Spannungsabfall 4 V am Widerstand ein Strom von 5mA fließen soll. Der maximale Strom der Optokopplerleuchtdiode ist nach Datenblatt 20mA (siehe Abbildung 28). 𝐼4 = 𝑈 𝑅 4𝑉 = 800Ω = 𝟓𝒎𝑨 Der Spannungsabfall der LED, die im Optokoppler integriert ist, wurde mit 1V angenommen. Seite 31 von 89 HTL Wien 10 3. Hardware AVDIC Abbildung 26: Schaltung für die Konstanststromquelle mit Potentialtrennung Wenn auf dem PWM-Pin das höchste Steuersignal anliegt, schaltet der Optokoppler durch und der Strom fließt von der 16V-Versorgung durch den Widerstand R3 über den Transistor im Optokoppler gegen Masse. Die LED-Leiste leuchtet nicht, da der Transistor BD139(T1) nicht an der Basis angesteuert wird. Liegt auf dem PWM-Pin das geringste Steuersignal, dann schaltet der Transistor im Optokoppler nicht durch und somit wird der BD139 (T1) angesteuert und die LED-Leiste leuchtet. Beim Testen, der in Abbildung 26 dargestellten, Schaltung wurde auch bei vollem Steuersignal die LED nicht ganz dunkel. Daher wurde der Widerstand beim Optokoppler kleiner dimensioniert. Die Überlegung ging in die Richtung, dass mehr Strom dazu führt, dass der Optokoppler vollkommen durchschaltet. Deshalb wurde die Schaltung ein wenig verändert. Der Optokopplerbaustein wurde so angeschlossen, dass der integrierte Transistor direkt den BD139 (T1) ansteuert. Diese Änderung hat zur Folge, dass die Logik nicht mehr negiert ist. Bei einem Steuersignal von logisch 1 sollte die LED-Leiste leuchten und bei einem von logisch 0 sollte sie dunkel sein. In der Abbildung 27 ist die etwas veränderte Schaltung abgebildet. Seite 32 von 89 HTL Wien 10 3. Hardware AVDIC Abbildung 27: Schaltung für Konstantstromquelle mit Potentialtrennung Dem Datenblatt vom Optokoppler PC817 (Abbildung 28) können verschiedenste Maximalwerte entnommen werden. Die Forward voltage der LED beträgt bei Raumtemperatur 1,4 Volt. Abbildung 28: Datenblatt des Optokoppler 15 Der Arduino-PWM-Pin kann bei vollem Duty-Cycle eine Spannung von 5V erreichen. Diese Spannung weniger dem Spannungsabfall an der LED im Optokoppler ergibt 3,6V die auf dem Widerstand abfallen sollten. Da 20mA der maximale Strom war, wurde der Widerstand R4 auf 180Ω verringert. 𝑅4 = 3,6𝑉 = 𝟏𝟖𝟎Ω 20𝑚𝐴 Bei vollem Steuersignal funktionierte alles einwandfrei und die LED-Leiste leuchtete mit der stärksten Intensität , doch das Interessante war, dass bei ungefähr halben Steuersignal, die Lichtquellen nicht gleichmäßig leuchteten, sondern stark flackerten, was nicht sehr angenehm für das Auge war. Dieses Problem musste gelöst werden. Seite 33 von 89 HTL Wien 10 3. Hardware AVDIC Die erste Überlegung war, dass möglicherweise der Widerstand R3 niedriger dimensioniert werden sollte, damit der Transistor BD 139 besser durchschaltet. Der R3 wurde davor mit 1,6k dimensioniert, damit ungefähr 10mA fließen. Doch da R3 und R4 in Serie sind, verringert sich der Strom. Wird mit den ursprünglichen Werten der Widerstände gerechnet, so fließt ein Strom von 7,4mA. Der Widerstandswert wurde so verkleinert, dass ungefähr 20mA flossen. Der neue Entwurf ist in Abbildung 29 zu sehen. 𝑈 16𝑉 Ursprünglicher Strom: 𝐼3 = Neuer Strom: 𝐼3 = 𝑅 = (470+270)Ω = 𝟐𝟏, 𝟔𝒎𝑨 𝑅 𝑈 = (1,6𝑘+560)Ω = 𝟕, 𝟒𝒎𝑨 16𝑉 Abbildung 29: Verbesserte Schaltung für Konstantstromquelle mit Potentialtrennung Die Schaltung wurde wieder mit LED-Leisten aufgebaut. Diese leuchteten heller als zuvor, doch das Flackern war noch immer da. Die nächsten Überlegungen waren, dass vielleicht das Arduino-Board das Flackern verursacht. Deshalb wurden alle LED-Leisten mit einem ArduinoPIN verbunden und alle leuchteten ohne zu flackern. Danach wurde jede LED-Leiste einem PWM-Ausgang zugeordnet und nacheinander dazu geschaltet. Zwei dieser leuchteten bei halbem Steuersignal ohne zu Flackern, jedoch ab der dritten flackerten alle drei Lichtquellen. Der Fehler musste also beim Arduino-Board liegen. Seite 34 von 89 HTL Wien 10 3. Hardware SHADI Die Widerstände (R4) beim PWM-Pin wurden vergrößert, da möglicherweise aus dem Arduino-Board zu viel Strom gezogen wird und die Spannung einbricht. Dadurch, dass vier PWM-Ausgänge gleichzeitig verwendet werden, müsste das Board 4*20mA=80mA liefern, was ziemlich an der Grenze liegt. Der R4 wurde auf 470Ω (Abbildung 36) erhöht und die Ansteuerung funktionierte. Statt 20mA pro Pin fließen nur noch 7,7mA. 3,6𝑉 𝐼4 = 470Ω = 𝟕, 𝟕𝒎𝑨 3.2.2.4. Verbesserte Konstantstromquellenschaltung Nach der Fertigung des zweiten Schaltungsentwurfs, wurde die Platine bestückt und getestet. Bei der in Betriebsname wurde festgestellt, dass die Schaltung nicht funktionierte. In Folge darauf wurde die Schaltung wieder auf einem Steckbrett realisiert, um die Funktion der Schaltung zu überprüfen und bessere Messungspunkte zu schaffen, die das Auffinden von Fehlern erleichtern sollten. Auf dem Brett funktionierte die Schaltung einwandfrei, was den Verdacht auf die Platine lenkte. Beim Vergleich der beiden Schaltungen, wurde erkannt, dass die beiden Strompfade nicht getrennt ausgeführt waren. Dadurch kam es zur Störung der Schaltung. Es wurde eine GND-Verbindung zu dem Arduino-Board-GND geschaffen und die Schaltung wurde wieder in Betrieb genommen. Diesmal leuchteten die LEDs und es wurde beschlossen eine neue Platine zu fertigen, welche getrennte GNDs hat. Um den Fehler zu beheben, wurden die verschiedenen GNDs in die Schaltplan-Ansicht von EAGLE als Lötstifte ausgeführt. Damit war die galvanische Trennung gewährleistet. Die Schaltung wurde neu gezeichnet (siehe Abbildung 30) und ein neues Layout in der EAGLE-Bord-Ansicht (siehe Abbildung 31) entwickelt. Abbildung 30: Verbesserte Konstantstromquellenschaltung in der Schaltplan-Ansicht von EAGLE Seite 35 von 89 HTL Wien 10 3. Hardware SHADI Abbildung 31: Verbesserte Konstantstromquellenschaltung in der Bord-Ansicht von EAGLE Abbildung 32: Verbesserte Konstantstromquellenschaltung in der 3D-Anansicht von EAGLE Die Platine wurde wieder bestückt und getestet. Dieses Mal leuchtet die LEDs wie gewünscht und die Funktionsprüfung erfolgte fehlerlos. Seite 36 von 89 HTL Wien 10 3. Hardware SHADI 3.2.3. Sensorplatine Da die Automatisierung der Lichtregelung auf LDRs (lichtabhängige Widerstände) angewiesen ist und diese an dem Arduino-Bord angeschlossen werden müssen, wurde eine Platine entwickelt, um die Versorgung der LDRs zu vereinfachen. Dazu wurden alle Regeln und Normen von EAGLE befolgt. Die Verschaltung des lichtabhängigen Widerstandes erfolgt, indem einer der beiden Kontakte des Sensors an 5V angeschlossen und den jeweils anderen über einem Nachwiderstand mit Masse verbunden wird. Um den Sensorwert vom LDR weiterleiten zu können, muss eine Verbindung zwischen den LDR-Abgang und ein Arduino-PIN vorhanden sein. Diese ermöglicht die Messung des Widerstandwertes, welcher im Programm eingelesen und passend für die Lichtregelung umgerechnet wird. Für die manuelle Lichtregelung mussten noch ein Potentiometer und ein Schalter an dem Arduino angeschlossen werden. Diese benötigten auch die Spannungsversorgung des Bordes und so konnten sie parallel zu den Sensoren angeschlossen werden. Der mittlere Anschluss des Potentiometers musste auch wie die Abgriffe der LDRs zur Werterfassung an einem Arduino-Pin angeschlossen werden. Bei dem Schalter handelt es sich um einen Wechselschalter, der in automatischen Regelungsbetrieb mit dem GND-Anschluss und im manuellen Betrieb mit der 5V-Versorgung des Arduino-Bordes verbunden wird. Weiteres musste auch für die Ansteuerung des Displays und die Werterfassung vom Luftfeuchtigkeits- und Temperatursensor eine Platine gefertigt werden. Bei dieser Platine handelte es sich um Übergangsbahnen, welche den Übergang von Verbindungsdrähten in Anschlussverbindungen zum Arduino darbieten. Statt einem Nachwiderstand für die Werterfassung wie bei den LDRs, wird für den Luftfeuchtigkeits- und Temperatursensors einen vorwiderstand verwendet. In den folgenden Abbildungen kann sowohl die Schaltplan-Ansicht, die Bord-Ansicht als auch die 3D-Ansicht von Eagle der Schaltung betrachtet werden. Abbildung 33:Sensorplatine in der Bord-Ansicht von EAGLE Seite 37 von 89 HTL Wien 10 3. Hardware SHADI Abbildung 34: Sensorplatine in der Schaltplan-Ansicht von EAGLE Abbildung 35: Sensorplatine in der 3D-Ansicht von EAGLE 3.2.4. Platinenentwicklung Nach dem Erstellen des Bord-layouts konnte die Platine gefertigt werden. Die Platinenentwicklung basiert auf einer Folge von Bearbeitungsschritten, die nacheinander ausgeführt werden müssen. 3.2.4.1. Bohren Dazu wurde ein automatischer Platinenbohrroboter verwendet, für den die physische Ansicht der Schaltung konvertiert werden musste. Dieser Roboter ist mit einem Computer verbunden, der ihm die benötigten Informationen liefert. Dafür muss die Schaltungsdatei in Seite 38 von 89 HTL Wien 10 3. Hardware SHADI den Bearbeitungsordner des Roboters kopiert werden. Dieser konvertiert im Anschluss die Datei (siehe Abbildung 36). Abbildung 36: Die von der EAGLE Bord-Ansicht in die Bohr-Ansicht des Roboters konvertierte Schaltung Nach der Konvertierung erscheint eine Liste, die die Reihenfolge der zu verwenden Bohrer angibt (siehe Abbildung 37). Abbildung 37: Bohrerreihenfolge-Meldung Vor dem Start des Bohrvorgangs muss der erste Bohrer im Bohrfutter des Roboterarmes eingespannt werden. Wird der Bohrvorgang gestartet, so nullt der Roboter den eingespannten Bohrer, indem er ihn gegen einer Metallfläche, die sich neben den Schraubstock, in dem die Rohplatine eingespannt ist, drückt. Nach dem Annullen beginnt der Bohrer mit dem Bohren der Löcher, welche imDurchmesser mit dem eingespannten Bohrer übereinstimmen. Ist dieser Schritt vollendet, so stoppt der Bohrroboter und gibt das Zeichnen zum Einsetzen des nächsten Bohrers mit dem angegebenen Durchmesser. Dieser Vorgang wird so lang wiederholt, bis alle Löcher mit dem jeweiligen Durchmesser gebohrt wurden. Eine Platine, die bereits alle Löcher für die Bestückung besitzt, wird als Endprodukt erhalten. 3.2.4.2. Laminieren Bevor mit dem Laminieren begonnen werden kann, muss die Platine gründlich gesäubert werden. Dazu muss die Kupferschicht der Platine mit weicher Stahlwolle gerieben werden, bis diese leicht glänzend und entfettet ist. Anschließend wird die Platine mit einer Folie beklebt. Diese muss sorgfältig geklebt sein und darf keine Blasen vorweisen. Die Folie darf auch nicht viel größer als die Platine sein. Die abstehenden Teile sollen geknickt und auf die Rückseite der Platine geklebt werden. Zum Abschließen des Vorganges muss nur noch die beklebte Platine durch das Laminiergerät geschoben werden. Seite 39 von 89 HTL Wien 10 3. Hardware SHADI 3.2.4.3. Belichten Der Sinn hinter dem Belichten ist, die Übertragung der Schaltung auf die laminierte Platine. Dies dient nicht der optischen Ansicht, sondern der Weiterverarbeitung der Platine. Zum Belichten wird eine Kopie der physischen Ansicht der Schaltung auf ein Belichtungsblatt gedruckt. Diese wird auf die innere Seite des Belichtungsgeräts gelegt. Anschließend wird die Platine mit der kupferbeschichteten Seite auf den Ausdruck gelegt, der Deckel des Belichtungsgeräts geschlossen und die Platine für zwei Minuten belichtet. Nach dem Belichten sehen die Stellen die weggeätzt werden sollen, optisch anders aus und können mit den weiteren Verfahren entfernt werden. Danach wird die Platine eingespannt und für weitere zwei Minuten in einem mit Natriumpersulfat gefülltes Gerät, welches die Platine mit der Lösung bespritzt, gesteckt. Dadurch wird die Folie von den wegzuätzenden Stellen entfernt. Nach der zweiminütigen Behandlung muss die Platine gewaschen werden, sonst würde die Lösung mehr von der Folie entfernen als erwünscht. 3.2.4.4. Ätzen Beim Ätzen wird die Platine wieder eingespannt und in das Ätzgerät eingeführt. Diesmal wird die Platine mit Ammoniumpersulfat bespritzt, welches die blanken Kupferstellen der Platine wegätzt. Die Platine wird für fünf Minuten mit der Lösung bespritzt. Nach diesem Vorgang muss die Platine wieder in eine Schale, die mit einer fünfprozentigen Natriumlösung gefüllt ist, eingelegt werden, bis die restlichen Folienteile von den Platinenbahnen gelöst werden. Dieser Prozess beansprucht ungefähr weitere zwei bis drei Minuten. Zum Schluss muss die Platine nur noch getrocknet und die Leiterbahnen mit einem isolierenden Spray, der sich beim Anlöten der Bauteile löst und die Lötverbindung nicht beeinträchtigt, besprüht werden. Nach dem die Isolierschicht getrocknet ist, kann mit dem Bestückungsprozess der Platine begonnen werden. 3.2.5. Verdrahtung Um die Versorgungsleitungen der LED-Leisten durch den U-Stahl führen zu können, musste ein Schlauch in dessen Innere verlegt werden. In dem sind die Drähte bis unter dem Tisch in den zweiten Kabelkanal und dann durch die Tischöffnung auf die Oberfläche der Tischplatte geführt. Anschließend wurden diese auf der Platine gelötet und die Funktion ein letztes Mal überprüft. Dadurch, dass die Lichtstärke in Abhängigkeit von äußeren Faktoren, wie die durch die Fenster eindringende Sonneneinstrahlungen, für verschiedene Raumbereiche dynamisch nachgeregelt werden soll, mussten mehrere Lichtsensoren verwendet werden, um die auftretenden Lichtverhältnisse zu erfassen und die Daten zur Schaffung eines angenehmen Arbeitsklimas an den für die Lichtregelung zugeordneten Arduino-Bord zu leiten. Die Versorgung der Sensoren erfolgte durch deren Parallelschaltung an die Versorgungs-PINs von Arduino. Die einzelnen Leitungen wurden mit Hilfe von Isolierband verklebt, mit Seite 40 von 89 HTL Wien 10 3. Hardware SHADI Kabelschellen entlang der Tischlänge verlegt und durch die Tischöffnung zum Arduino-Bord geführt. Für das Display musste zusätzlich zur Versorgungsleitungen eine SDA- und eine SCL-Leitung geführt werden. Diese dienen der Kommunikation der Komponenten untereinander und mit dem Arduino-Bord. Da der Luftfeuchtigkeits- und Temperatursensor direkt neben dem Display befestigt war, wurden seine drei Drähte (zwei Versorgungsleitungen und eine Adressleitung) mit denen des Displays verklebt und anschließend mit Kabelschellen entlang der Tischbreite verlegt. Anschließend wurden auch diese Drähte durch die Tischöffnung auf die Oberfläche der Tischplatte geführt und in das jeweilige Arduino-Bord integriert. Seite 41 von 89 HTL Wien 10 4. Programmierung IMAMOVIC 4. Programmierung 4.1. Ansteuerung des Displays 4.1.1. Anschließen des Displays und Controller Ein I2C Display ist im Grunde genommen ein einfaches Display mit 16 Pins. Zwischen den Pins und dem Mikrocontoller ist ein I2C Modul angebracht, dass die serielle Kommunikation ermöglicht. Aus 16 Leitungen werden nur vier: SDA, SCL, VCC und GND. Abbildung 38: Schaltung Arduino mit Display Beim Controller Arduino UNO sind die Pins A4 und A5 vom Hersteller als I2C Pins definiert: SDA = A4 / SCL = A5. Das Modul, das am Display angebracht ist, enthält die zwei PullupWiderstände. Einen zwischen 5V und der Datenleitung SDA und den anderen zwischen 5V und der Taktleitung SCL. 4.1.2. Programmcode für die Displayansteuerung Zuerst müssen die benötigten Bibliotheken eingebunden werden. Dann werden die Pins des 16-Pin Displays definiert und anschließend dem I2C-Modul zugeordnet. Die „loop“-Schleife bleibt leer. Abbildung 39: Einbinden der Bibliotheken Seite 42 von 89 HTL Wien 10 4. Programmierung IMAMOVIC Abbildung 40: Setup & Loop Programmierung 4.1.3. Anzeige des Displays Abbildung 41: Anzeige des Displays Um die Kommunikation mit I2C Bauteilen zu ermöglichen wird die Adresse des jeweiligen Bauteils benötigt. Dazu wird ein bestimmter, vorgegebener Programmcode, in Arduino auch Sketch bezeichnet, verwendet, der die Adressen aller I2C Bauteile am Datenbus anzeigt. Diese Adressen werden benötigt, um erst einmal die Kommunikation zwischen dem Mikroprozessor und den I2C Komponenten zu ermöglichen. Den Sketch gibt es als Standardprogramm im Internet und dieser ist immer derselbe. Seite 43 von 89 HTL Wien 10 4. Programmierung IMAMOVIC Die Ausgabe im Serial Monitor schaut dann so aus: Abbildung 42: Ausgabe im Serial Monitor Dieses Programm dient dem Scannen der I2C fähigen Bausteine am Bus. Damit kann dann die Adresse des Bausteins ermittelt werden, die für das weitere Programmieren wichtig ist. 4.1.4. Einlesen der Werte eines Sensors und Ausgabe auf das Display Die nächste Aufgabe ist es zwei Werte, die von einem Sensor erfasst werden, auf das Display auszugeben. Der Sensor ist ein DHT22 und misst die Lufttemperatur und die Feuchtigkeit digital. Die Ausgabe erfolgt dann gleich in den Standard SI-Einheiten und muss nicht im Programm umgerechnet werden. Abbildung 43: Temperatur- und Feuchtesensor 16 Wie auf der Abbildung 43 zu sehen ist hat dieser Sensor 4 Anschlüsse. 4.1.5. Controller-, Sensor- und Displayanschluss In Abbildung 58 wird klar verdeutlicht, wie die Anschlüsse des Sensors zu belegen sind. Der erste Pin ist auf 5V zu schalten, der zweite wird mit einem digitalen Eingang am Mikrocontroller über einen 10k Ohm Widerstand verbunden. Dieser hat die Funktion eines Pullup-Widerstandes. Der dritte Pin wird laut Hersteller nicht verwendet. Und der Letzte wird auf Massepotenzial geschaltet. Der Sensor ist in der Lage, Temperaturen im Bereich von -40 bis +80°C und Luftfeuchte im Bereich von 0 bis 100% zu messen, wobei die Genauigkeit beim Messen der Temperatur bei 0,5°C und bei der Luftfeuchtemessung bei 2% liegt. Die beiden Sensoren sind in einem Gehäuse angebracht und am oberen Ende befindet sich eine Bohrung, die das Befestigen an diverse Orte erleichtert. Seite 44 von 89 HTL Wien 10 4. Programmierung IMAMOVIC Verdrahtung: Abbildung 44: Schaltung Arduino, Temperatur- und Feuchtesensor & Display Das Prinzip ist einfach und wie später in der Programmierung ersichtlich, klar nachzuvollziehen. Die Sensorwerte werden über Pin 9 eingelesen und über die I2C Kommunikation an das Display gesendet. Anzumerken ist, dass der Sensor nicht I2C fähig ist. Die Befehle werden in den Kommentaren genau beschrieben. Das Prinzip ist folgendes: Die Werte der Temperatur und Luftfeuchtigkeit werden auf zwei verschiedene Variable geschrieben und nachher mit den Befehlen „serial.print“ auf den „Serial Monitor“ und mit „lcd.print“ direkt auf das Display ausgegeben. Die Einheit baud im „void setup“ stellt die serielle Datenübertragungsrate in Bits per second dar. Die Werte werden in 100 Millisekunden Zyklen abgefragt und auf das Display geschrieben. Abbildung 45: Programmierung für die Ausgabe am Display Seite 45 von 89 HTL Wien 10 4. Programmierung IMAMOVIC Ergebnis: Abbildung 46: Ausgabe am Display Zur Überprüfung der Signale wurde ein Oszilloskop an die zwei Busleitungen angeschlossen um die genaue Kommunikation bzw. den Datenaustausch von Master und Slave zu verstehen. Zuerst hat das Display nichts ausgegeben, obwohl im Serial Monitor sehr wohl das richtige Signal angezeigt wurde. Der Fehler war, dass im Programm die Zeiteinstellung für das Erneuern der Daten falsch eingestellt wurde. Nämlich auf einige Millisekunden und somit „flackerte“ das Display nur. Dies wurde mit Hilfe des Oszilloskops konstatiert. Durch die richtigen Einstellungen im Befehl „delay()“ konnte dieses Problem jedoch gelöst werden. SDA Adresse R/W ACK Daten 8Bit ACK SCL Abbildung 47: : I2C Kommunikation mit der Darstellung einzelner Bits Um den Datenaustausch und die Kommunikation zum Display herzustellen, sendet der Master (Mikrocontroller) eine Start-Condition aus. Das ist ein spezieller Zustand am seriellen Bus. Der Master zieht die Datenleitung (SDA) von „1“ = 5V auf „0“ = 0V während die Seite 46 von 89 HTL Wien 10 4. Programmierung IMAMOVIC Taktleitung weiterhin auf „1“ ist. Nun beginnt der Datenaustausch. Die ersten sieben Bits sind im Bild als Adresse hervorgehoben und stehen für die normale Adresse und die GeräteSub-Adresse. Vier Bits gehören zu der Adresse, sind vom Hersteller vorgegeben und können vom Anwender nicht geändert werden. Die weiteren drei Bits gehören zu der schon erwähnten Geräte-Sub-Adresse, die vom Baustein selbst abhängig sind und vom Anwender geändert werden können. Mit Hilfe dieser sieben Bits kann der I2C-Baustein, das Display, adressiert werden. In diesem Fall ist die Adresse des Displays 3F HEX und benötigt sechs Bits, wie auch auf der Datenleitung im Bild zu sehen ist. Das achte Bit gibt an, ob der Master schreiben oder lesen (read or write) will. In diesem Fall ist es das Schreiben auf das Display. Das neunte Bit ist das sogenannte „Acknowledge-Bit“, also eine Antwort vom Slave an den Master, in der dieser mitteilt, dass er nun aktiv und bereit ist. Nach der Bestätigung des Slaves hat der Master acht Bits zum Schreiben auf das Display (Slave) zur Verfügung. In diesem Fall werden nur vier Bits als Datenbits (im Programm) definiert, wie es auch auf der Datenleitung zu sehen ist. Der letzte Taktimpuls ist das erneute Acknowledge-Bit. Jedoch bleibt die Datenleitung jetzt auf „0“ und die Kommunikation wird nicht unterbrochen, wie in Abbildung 61 zu sehen ist. Der Zyklus wird im Programm als Befehl delay() eingestellt. delay(100) bedeutet, dass sich der Datenaustausch alle 100 Millisekunden wiederholt. 4.1.6. Warnmeldung beim Über- und Unterschreiten der Werte Der Piezolautsprecher hat zwei Anschlüsse. Einer wird mit einem digitalen Ausgangspin verbunden, der andere mit Masse. Wenn die Warnmeldung ausgegeben werden soll, schaltet der Mikroprozessor den digitalen Ausgang 11 auf „HIGH“. Das Piepsen des Lautsprechers beginnt. Abbildung 48: Piezolautsprecher und Arduino Die Parameter „t“ (Temperatur) und „h“ (Luftfeuchtigkeit) haben bestimmte Normwerte, die ein normgerechter Arbeitsplatz einhalten sollte. Da die Temperatur und Luftfeuchtigkeit nicht direkt beeinflussbar sind, wurde die Regelung der zwei Größen mit Warnmeldungen simuliert. Seite 47 von 89 HTL Wien 10 4. Programmierung IMAMOVIC Beispielsweise wenn die Temperatur höher als 30°C ist, so wird auf das Display „Klima an“ ausgegeben. Wenn sie unter 17°C ist, „Heizung an“. Wenn die Luftfeuchte höher als 65% ist, so wird ein Lüfter mit „Lüfter an“ simuliert. Und wenn diese den Wert von 35% unterschreitet, so wird der Luftbefeuchter aktiviert. In der Programmierung wurde dies mit vier Wenn-Abfragen realisiert. Falls die beiden Parameter sich im Normbereich befinden, werden diese Abfragen einfach übersprungen und beim nächsten Programmablauf erneut durchgeführt. Zusätzlich wird bei jeder Warnmeldung der Piezolautsprecher aktiviert, damit der Nutzer des Tisches darauf aufmerksam wird und einen Blick auf das Display wirft. Um die Simulation nicht allzu nervig zu gestalten, wurde die Zeit des aktiven Piezolautsprechers auf 100 Millisekunden und die, in der er das LOW-Signal bekommt (sprich leise ist) auf vier Sekunden gesetzt. So ergibt sich ein Wechsel zwischen 100 ms laut und 4s leise, der sich immer wiederholt, solange der Normbereich nicht erreicht wird. Abbildung 49: Programmierung der Warnmeldung Seite 48 von 89 HTL Wien 10 4.2. 4. Programmierung IMAMOVIC Pulsweitenmodulation 4.2.1. Theorie zur Pulsweitenmodulation Pulsamplitudenmodulation Im Allgemeinen lässt sich die Energieaufnahme von Verbrauchern durch die Veränderung der Höhe der Versorgungsspannung regulieren. Abbildung 50: Spannung als Funktion der Zeit17 Die Fläche unter der Kurve ist dabei ein direktes Maß für die Energie die dem System zugeführt wird. Bei geringerer Energie ist die Helligkeit der LED-Leiste geringer, bei höherer Energie entsprechend heller. Dieses Prinzip ist sehr einfach, wurde aber jedoch durch die Pulsweitenmodulation ersetzt, da es mit einem Mikrocontroller wesentlich einfacher ist Pulse mit einem definiertem Puls/Pausen – Verhältnis zu erzeugen als eine Spannung zu variieren. Pulsweitenmodulation Jedoch gibt es noch einen zweiten Weg, die dem System zugeführte Energie zu verändern. Anstelle der Veränderung der Spannungshöhe, ist es möglich die volle Versorgungsspannung über einen gewissen Zeitraum anzulegen. 18 Abbildung 51: Rechtecksignal Beim Verfahren, das von Phillips entwickelt wurde, wird der Verbraucher (z.B. LED, Heizung etc.) in schneller Folge ein- und ausgeschaltet. Wegen der hohen Frequenz ist das Schalten der LED-Leiste für das menschliche Auge nicht sichtbar. Werden die Ausschaltphasen gegenüber den Leuchtphasen verlängert, erscheint das Licht, Seite 49 von 89 HTL Wien 10 4. Programmierung IMAMOVIC das die LED abgibt, dunkler. Sind die Leuchtphase im Vergleich zu den Ausschaltphasen länger, erscheint das Licht heller. Abbildung 52: Prinzip der Pulsweitenmodulation 19 Die Abbildung 52 zeigt das zeitliche Vergrößern der Pulsbreite. In der Praxis wird die LEDLeiste mit steigender Pulsbreite mehr Licht abgeben. Die Fläche unter der Kurve ist die abgegebene Spannung, die dem System zugeführt wird. Ein Gleichstrommotor wird langsamer laufen, wenn er mit einer geringeren Spannung versorgt wird, und schneller laufen, wenn er mit einer höheren Spannung versorgt wird. LED-Leisten werden nicht mit Hilfe der Spannung gedimmt, sondern mit dem Versorgungsstrom. Dass der Strom im Normalfall über einen Vorwiderstand auf einen konstanten Wert gebracht wird, ist durch das Ohm’sche Gesetz dieser Strom bei konstantem Widerstand direkt proportional zur Höher der Versorgungsspannung. Diese Spannung wird durch eine Taktung in Summe reduziert. Die Taktung erfolgt mit ca. 490 Hertz, also 490 Takte pro Sekunde mit PWM-Technik. Das heißt, dass die LED hundert Mal pro Sekunde ein- und ausgeschaltet wird. Im Durchschnitt erkennt das menschliche Auge bis zu 75 Lichtwechsel pro Sekunde. Diese Lösung hat den Vorteil, dass die Spannung nicht geregelt werden muss, sondern der Verbraucher immer mit derselben Spannung versorgt wird. Und genau das ist das Prinzip der Pulsweitenmodulation. Durch die Abgabe von Pulsen wird die abgegebene Energiemenge gesteuert. Seite 50 von 89 HTL Wien 10 4. Programmierung IMAMOVIC 4.2.2. Tastgrad Der Tastgrad oder auch „duty cycle“ genannt, gibt für die periodische Folge von Impulsen das Verhältnis von Impulsdauer zu Periodendauer an. Der Grad wird dimensionslos von 0100% angegeben. 𝑇𝑎𝑠𝑡𝑔𝑟𝑎𝑑 = 𝜏 𝑇 τ… Impulsdauer T…Periodendauer Durch die Veränderung des Tastgrades lässt sich der arithmetische Mittelwert der Spannung einstellen. Diese Variation des Mittelwertes erfolgt verlustlos im Vergleich zu einer Änderung über einen Vorwiderstand. Deswegen wird diese Methode häufig bei Regelungen verwendet, bei denen die Spannung variiert werden muss. Zum Beispiel: Bei Heizungen oder LED’s. Im folgenden Abschnitt werden die Tastgrade von 1%-99% am praktischen Beispiel der LEDLeisten Ansteuerung verändert. Die Abbildungen wurden mit einem Oszilloskop erfasst und ausgewertet. Die Frequenz der Pulsweitenmodulation beträgt 490 Hz. a) 1% Tastgrad Abbildung 53: 1% duty cycle Abbildung 54: 25% duty cycle Seite 51 von 89 HTL Wien 10 4. Programmierung IMAMOVIC b) 50% Tastgrad Abbildung 55: 50% duty cycle to…Impulsdaue r To…Periodendauer Die Periodendauer beträgt ca. zwei Millisekunden und die Impulsdauer eine Millisekunde. Daraus ergibt sich ein Tastgrad von 50% und es entsteht ein symmetrischer Puls. c) 75% Tastgrad Abbildung 56: 75% duty cycle d) 99% Tastgrad Abbildung 57: 99% duty cycle Seite 52 von 89 HTL Wien 10 5. Lichtregelung AVDIC 5. Lichtregelung Ein Schwerpunkt der Diplomarbeit liegt in der Regelung. Genauer gesagt in der Lichtregelung. Die Vorgabe ist es eine gleichmäßige Helligkeit zu ermöglichen. Diese soll außerdem auf äußere Einflüsse reagieren wie z.B. die Helligkeit der Sonne. Falls das einfallende Sonnenlicht stark ist, soll die Regelung die LEDs herunterdimmen, da die Beleuchtung schon ausreichend gewährleistet ist. Ist es jedoch im Raum sehr dunkel, beispielsweise an einem regnerischer Tag, so wird die Lichtstärke der LEDs hinaufgeregelt. Abbildung 58: Arduino-Modul In der Abbildung 58 ist das Arduino-Modul mit den digitalen Pulsweitemodulationspins (PWM-Pins) dargestellt. Von diesen aus werden die LED-Leisten angesteuert. 5.1. If-Vergleiche Um dieses Vorhaben zu realisieren, mussten viele Methoden ausprobiert werden, um zur richtigen Lösung zu gelangen. Der erste Regelversuch bei unserer Lichtregelung basierte auf If-Bedingungen. Die If-Bedingung ist ein Befehl in der Programmiersprache C mit der das Arduino-Board programmiert werden kann. Funktion: wenn ein bestimmter Fall eintritt, geschieht etwas. Bsp: if (Variable > 0) { printf(„Variable ist größer als 0“) } Das obige Beispiel zeigt, dass wenn eine Variable größer als 0 ist, wird „Variable ist größer als 0“ ausgegeben durch den Befehl printf. Der Luxwert wird mit dem Sensor gemessen. Danach findet ein Vergleich statt. Falls der Sensorwert in einem bestimmten Bereich liegt, sollte der Ausgang sich verändern. Abbildung 59 zeigt den Ausschnitt des Programms. HTL Wien 10 5. Lichtregelung AVDIC Abbildung 59: Programmausschnitt der If-Vergleiche In der Praxis hat das nicht gut funktioniert, da der Sensorwert etwas geschwankt hat. Weitere Versuche wurden getätigt. 5.2. Regelkreis Der Wert, der auf die PWM-Pins ausgegeben wird, muss berechnet werden. Dazu wurde eine Formel20 entwickelt. Zuerst wird 500 Lux als Sollwert festgelegt, da in den meisten Büros oder Gebäuden 500 Lux der vorgeschriebene Normwert ist. Danach findet ein Vergleich zwischen dem momentanen Sensorwert und Istwert statt. Die Differenz davon wird gebildet und das Ergebnis ist die Variable e. Der Wert, der auf den PWM-Pin des Arduinoboards ausgegeben wird, ist y. Dieser entsteht durch eine Multiplikation eines Faktor Kp für das P-Glied mit der Variable e. Das wäre ein P-Regler. Falls dieser nicht ausreicht, kann noch ein I-Regler hinzugefügt werden. Dieser bildet sich aus der Multiplikation mit einem Faktor für das I-Glied, einer Abtastzeit Ta und der Summe der Abweichungen esum. s…Sensorwert [Lux] e…Differenz zwischen Soll- und Istwert bzw. Abweichung vom Sollwert Kp…Einstellwert für das P-Glied Ki…Einstellwert für das I-Glied Ta…Abtastzeit [ms] esum…Ist die Summe aller bisherigen Abweichungen y…Ausgang; dieser wird auf den PWM-Pin des Arduinoboards geschrieben und regelt die Helligkeit der LED-Leisten Seite 54 von 89 HTL Wien 10 5. Lichtregelung Formel für Abweichung vom Sollwert: Formel für Summe aller Abweichungen: 𝑒 = 500 − 𝑠 𝑒𝑠𝑢𝑚 = 𝑒𝑠𝑢𝑚 + 𝑒 Formel für P-Regler: 𝑦 = 𝐾𝑝 ∗ 𝑒 Formel für PI-Regler: 𝑦 = 𝐾𝑝 ∗ 𝑒 + 𝐾𝑖 ∗ 𝑇𝑎 ∗ 𝑒𝑠𝑢𝑚 AVDIC Nun wurde das Ganze mit der Programmiersprache C in Arduino umgesetzt. Da auf einem Arduino-Board maximal drei Luxsensoren betrieben werden können, mussten diese mit den jeweiligen LED-Leisten aufgeteilt werden. Auf einem Laptop wurden Luxsensor1 und Luxsensor2 mit den dazugehörigen Lichtleisten betrieben. Auf dem anderen Laptop wurden die restlichen drei Sensoren mit drei LED-Leisten betrieben. Das Prinzip blieb jedoch gleich. Abbildung 60: Regelkreis Abbildung 60 zeigt den Regelkreis mit P(I)-Regler mit den davor beschriebenen Ein- und Ausgangsgrößen. Abbildung 61: Blockschaltbild der Regelung In der Abbildung 61 wird das Prinzip der Regelung in einem Blockschaltbild grafisch dargestellt. Berechnung des Sensorwertes und Ausgabe auf den PWM-Pin Abbildung 62: Berechnung im Programm Als erstes wurde nur eine LED-Leiste mit P-Regler angesteuert. Das funktionierte, doch beim Versuch alle fünf LED-Leisten anzusteuern, schwangen die LED-Leisten gegengleich und es Seite 55 von 89 HTL Wien 10 5. Lichtregelung AVDIC sah wie ein Blinklicht aus. Auch das Verändern des Proportionalfaktors Kp führte zu keiner Verbesserung. Im nächsten Schritt wurde ein PI-Regler eingesetzt, da dieser nicht so schnell auf Änderungen reagiert und besser ausregelt. Die Abtastzeit Ta wurde wie folgt berechnet. Da die PWM-Pins vom Arduino-Board eine Frequenz von 490Hz haben, beträgt Ta 2,04ms. 𝑇= 1 1 = = 𝟐, 𝟎𝟒𝒎𝒔 𝑓 490𝐻𝑧 Abbildung 63: : Programmausschnitt Regelkreis Diese Änderung im Programm dämpfte das Schwingen sichtbar, doch ein neues Problem war das esum des I-Reglers. Die Summe aller bisherigen Abweichungen esum wurde immer soweit heraufaddiert, dass diese zu groß wurde. Dies hatte zur Folge, dass der Ausgang y3 zu groß wird und den Bereich von 0-255 verlässt. Das PWM-Signal kann nur Werte von 0-255 annehmen. Falls der Ausgangswert größer als 255 wird, dimmen die LED-Leisten herunter. Nach einer gewissen Zeit nahm esum sogar negative Werte an, weil der Wert einfach zu groß wurde. Weitere Versuche erfolgten wieder mit einem P-Regler. Das Schwingen der LED-Leisten ließ deuten, dass sich diese gegenseitig beeinflussen. Um herauszufinden wie stark diese Beeinflussung ist, wurden verschiedene Lichtmessungen vorgenommen. Seite 56 von 89 HTL Wien 10 5. Lichtregelung IMAMOVIC Bis das richtige Programm erstellt wurde, waren einige Ansätze notwendig. Im folgenden Abschnitt wird der Anfang der Regelung vorgestellt. Die Programmierung, die in den folgenden Abbildungen zu sehen ist, beschäftigt sich ausschließlich mit dem Auslesen der Sensoren und der Regelung der LED-Leisten. Hier wurde noch mit den digitalen Luxsensoren gemessen. Im folgenden Beispiel werden nur zwei LED-Leisten mit zwei Sensoren angesteuert, da es sich nur um das Prinzip und die Funktionsweise der Programmierung handelt. Zuerst werden die Bibliotheken geladen. Im aktuellen Fall die „Wire“ für die I2C Kommunikation und die „TSL2561“ für die Sensoren. Anschließend werden die Ein- und Ausgänge und die Parameter, die zur Berechnung beziehungsweise Regelung notwendig sind, definiert. Abbildung 64: Einbinden der Bibliotheken & Definieren der Variablen Noch vor dem Setup wird die Adressierung der digitalen Luxsensoren festgelegt. Dies ist notwendig, damit die Sensoren ordentlich funktionieren (siehe Kapitel „Beschreibung der einzelnen Komponenten“). Im Setup werden dann die beiden LED-Leisten als Ausgänge definiert. Dies war auch der Fehler bei der Programmierung. Die LED-Leisten wurden nicht definiert und das Programm funktionierte nicht korrekt. Danach wurde der vom Hersteller vorgegebene Programmteil, also die Berechnung des Luxwertes, eingebunden. Abbildung 65: Berechnung des Luxwertes HTL Wien 10 5. Lichtregelung IMAMOVIC Das Ergebnis der Berechnung, der digitale Wert der Lichtstärke, wird auf die Variable „x1“ geschrieben. Dasselbe wird auch mit dem zweiten Sensor „x2“ durchgeführt und daraus der Mittelwert z gebildet. Der Mittelwert wurde mit einer Gewichtung versehen. z = (((0.65*x1) + (0.35*x2))/2) Der Sensor von x1 befindet sich am Rand des Tisches und wird stärker gewichtet als der Sensor x2. Dies liegt daran, weil der Sensor am Rand weniger von den anderen LED-Leisten beeinflusst wird, als seine benachbarte LED. Somit bildet sich der Mittelwert zu 65% aus dem Wert von x1 und 35% von x2. Nun zu der Regelung: In die Regelung ist ein PI Regler integriert. Dieser wurde gewählt, da er durch das Proportionalglied ziemlich schnell reagiert und durch das Integralglied auch relativ schön ausregelt. Abbildung 66: Regelung (nur Proportionalglied) Dazu werden einige Hilfsvariablen verwendet: e1, esum1 und y1 für den ersten Block Sensor plus LED-Leiste. Zuerst findet eine Subtraktion statt. Der Mittelwert z wird von der Zahl 500 subtrahiert. 500 deswegen, weil die gewünschte Helligkeit auf der Tischoberfläche 500 Lux erwünscht ist. Danach wird esum1 berechnet, der Wert ergibt sich aus esum1 addiert mit e1. Dies dient dem Hinaufzählen und gehört zum Integralglied der Regelung. Einerseits verlangsamt sich dadurch die Regelung, andererseits ergibt sich dadurch eine minimale Regelabweichung. Zuletzt wird y1 berechnet. Das ist der analoge Wert (von 0-255, 0…Aus 255…volle Helligkeit), der die Lichtstärke der LED-Leiste bestimmt. Er wird auf den Ausgang, auf dem die LED angeschlossen ist, ausgegeben und ergibt sich, wie schon oben angeführt, aus dem Proportionalglied und dem Integralglied. Beim Proportionalglied wird der Wert von e1 mit dem Proportionalfaktor multipliziert, in dem Fall ein Faktor von 0,565. Und beim Integralglied wird der Wert von esum1 mit dem Integrierfaktor und der 0,00204 multipliziert. Diese Dezimalzahl ergibt sich aus der Frequenz der Pulsweitenmodulation von 490 Hz. Dabei wird der Kehrwert genommen also 1 / 490 = 0,00204. Der Integrierfaktor wurde anfangs auf Null gesetzt, um die Auswirkungen mit und ohne den Faktor zu sehen. Aus diesen drei Faktoren ergibt sich das Integralglied. Anschließend wird das Proportionalglied mit dem Integralglied addiert und ergibt die Ausgangsvariable y1. Seite 58 von 89 HTL Wien 10 5. Lichtregelung IMAMOVIC Die Zahl 1 nach jeder Variable steht für den ersten Block, also Sensor 1 und LED-Leiste 1. Dieselben Berechnungen werden dann auch für die restlichen Blöcke durchgeführt. Abbildung 67: Analoge Ausgabe auf die LED Leisten Wie schon oben angeführt, wird die LED-Leiste mit dem analogen Wert der Ausgangsvariable y angesteuert. Dazu wird der Befehl „analogWrite“ verwendet. Der nächste Schritt dient lediglich zur Optimierung der Regelung. Dabei handelt es sich um eine Wenn- (if-) Abfrage, die lautet: Wenn der Wert von y größer ist als 255, dann wird der Wert 255 auf die LED-Leiste ausgegeben. Das wurde so realisiert, denn wenn der Wert über 255 steigt, dann flackert die LED-Leiste, beziehungsweise sie gibt völlig unrealistische Werte aus. Also wurde so programmiert, dass wenn eine Pulsweite von 255 oder höher laut Sensorik notwendig ist um den gewünschten Helligkeitswert am Tisch zu erreichen, dann soll die LEDLeiste volle Leistung abgeben. Mehr als 100% Leistung geht jedochnicht. Abbildung 68: If-Abfrage Seite 59 von 89 HTL Wien 10 5.3. 5. Lichtregelung AVDIC Lichtmessungen Drei Messungreihen wurden durchgeführt. Bei der ersten sollte nur die mittlere LED-Leiste bei verschiedenen Stärken leuchten. Die anderen zwei Messungen sind ähnlich verlaufen mit dem Unterschied, dass einmal eine Leiste am Rand in Betrieb war und das andere Mal fast am Rand. In der Abbildung 69 ist der Tisch mit der Vorrichtung und den darauf platzierten LED-Leisten dargestellt. Die gelb gefärbten Pfeile sollen die Abstrahlung der LEDs illustrieren. Die Zahlen über den LED-Streifen zeigen jeweils bei welcher Messung welche Lichtquelle in Betrieb war. Abbildung 69: Grafische Darstellung der Lichtverteilung Abbildung 70: Grundrisse der Tischplatten Seite 60 von 89 HTL Wien 10 5. Lichtregelung AVDIC Abbildung 70 soll die Position der LED-Leisten und Sensoren veranschaulichen. In der Ansicht A ist die Platte der Vorrichtung aus der Grundansicht abgebildet und zeigt, dass der Abstand zwischen den LED-Leisten 33cm ist. Ansicht B zeigt die Tischplatte von oben. Die Sensoren sind in denselben Abständen wie die dazugehörigen Lichtquellen verteilt. Bei jeder Messung wurde der jeweilige Ausgang, der die Helligkeit der LED bestimmt in 20%Schritten erhöht. Die Luxwerte aller fünf Sensoren wurden aufgenommen. Die Messwerte bei 0% am Ausgang wurden lediglich aufgenommen um sicher zu gehen, dass alle Luxsensoren funktionieren. Danach wurden die Abstrahlungswerte berechnet. Diese ergaben sich aus dem Verhältnis vom Luxwert des Sensors, der direkt unter der angesteuerten LED-Leiste war und dem Luxwert eines benachbarten Sensors. Bei der ersten Messungen wäre es das Verhältnis von LuxS3 zu LuxS4 z.B.: 𝛼1(𝑆4) = 𝐿𝑢𝑥𝑆4 108 = = 0,7248 = 72,48% 𝐿𝑢𝑥𝑆3 149 Das bedeutet, dass der Sensor4 72,48% von der Leiste3 beeinflusst wird. Bei den Sensoren die unmittelbar neben der leuchtenden LED-Leiste waren, ist die Bezeichnung der Abstrahlung α1. Die Sensoren die um eins weiter waren mit α2, um zwei weiter mit α3 und um drei weiter α4. In der Tabelle unterhalb sind alle Messwerte mit den Rechenwerten abgebildet. α=Abstrahlung S=Sensor 1 2 3 Ausgang LuxS1 LuxS2 LuxS3 LuxS4 LuxS5 LED in % AnalogWrite lux lux lux lux lux 0 0 5 5 5 5 5 LED-Leiste 20 51 19 40 55 41 19 3 in 40 102 32 72 102 74 33 Betrieb 60 153 45 106 149 108 46 80 204 58 138 195 141 60 100 255 71 169 241 174 73 20 40 60 80 100 51 102 153 204 255 58 107 155 203 250 20 51 10 40 102 13 60 153 17 80 204 21 100 255 25 Tabelle 1: Lichtmessungen 40 72 105 136 166 20 33 48 60 71 9 14 18 21 25 7 9 11 12 13 LED-Leiste 1 in Betrieb 19 33 46 59 72 42 75 107 140 173 56 106 153 202 249 43 78 113 149 183 LED-Leiste 4 in Betrieb Seite 61 von 89 α1 (S4) α2 (S5) α2 (S1) α1 (S2) 74,55% 72,55% 72,48% 72,31% 72,20% α1 (S2) 68,97% 67,29% 67,74% 67,00% 66,40% α1 (S5) 76,79% 73,58% 73,86% 73,76% 73,49% 34,55% 32,35% 30,87% 30,77% 30,29% α2 (S3) 34,48% 30,84% 30,97% 29,56% 28,40% α2 (S2) 33,93% 31,13% 30,07% 29,21% 28,92% 34,55% 31,37% 30,20% 29,74% 29,46% α3 (S4) 15,52% 13,08% 11,61% 10,34% 10,00% α3 (S1) 17,86% 12,26% 11,11% 10,40% 10,04% 72,73% 70,59% 71,14% 70,77% 70,12% α4 (S5) 12,07% 8,41% 7,10% 5,91% 5,20% α1 (S3) 75,00% 70,75% 69,93% 69,31% 69,48% HTL Wien 10 5. Lichtregelung AVDIC Durchschnittsluxwerte pro Sensor bei 60% Steuersignal 120,00 100,00 80,00 60,00 40,00 20,00 0,00 S1 S2 S3 S4 S5 Abbildung 71: Durchschnittssensorwerte in Lux bei 60%-Steuersignal Bei der Abbildung 71 kann deutlich erkannt werden, dass der Sensor S3 in der Mitte am stärksten beleuchtet wird, was auch zu erwarten war. Die untere Abbildung 72 stellt die gegenseitige Beeinflussung der LED-Leisten grafisch in einem Balkendiagramm dar. Eine wichtige Feststellung war, dass die gegenseitige Beeinflussung stärker war, als vermutet. Der Sensor, der unmittelbar neben dem direkt angeleuchteten Sensor lag, wurde um ungefähr 70% beeinflusst. Dies sollte in der Regelung als Faktor berücksichtigt werden. Gegenseitige Beeinflussung der LED-Leisten 100,00% 90,00% 80,00% 70,00% 60,00% 50,00% 40,00% 30,00% 20,00% 10,00% 0,00% S1 S2 LED-Leiste3 in Betrieb S3 LED-Leiste1 in Betrieb Abbildung 72: Beeinflussung der LED-Leisten bei 60%-Leistung Seite 62 von 89 S4 LED-Leiste4 in Betrieb S5 HTL Wien 10 5. Lichtregelung AVDIC Als nächstes wurden die Mittelwerte für die Abstrahlung und die Sensorwerte gebildet. Die Werte bei 60% Steuersignal wurden für diese Berechnung Mittelwert α1 71,03% herangezogen. Mittelwert α2 30,53% Mit diesen Werten sollten fünf Gleichungssysteme mit fünf Variablen aufgestellt werden. Dies wurde auch umgesetzt. 𝑆1 = 1 ∗ 𝑙1 + 𝛼1 ∗ 𝑙2 + 𝛼2 ∗ 𝑙3 + 𝛼3 ∗ 𝑙4 + 𝛼4 ∗ 𝑙5 𝑆2 = 𝛼1 ∗ 𝑙1 + 1 ∗ 𝑙2 + 𝛼1 ∗ 𝑙3 + 𝛼2 ∗ 𝑙4 + 𝛼3 ∗ 𝑙5 𝑆3 = 𝛼2 ∗ 𝑙1 + 𝛼1 ∗ 𝑙2 + 1 ∗ 𝑙3 + 𝛼1 ∗ 𝑙4 + 𝛼2 ∗ 𝑙5 𝑆4 = 𝛼3 ∗ 𝑙1 + 𝛼2 ∗ 𝑙2 + 𝛼1 ∗ 𝑙3 + 1 ∗ 𝑙4 + 𝛼1 ∗ 𝑙5 𝑆5 = 𝛼4 ∗ 𝑙1 + 𝛼3 ∗ 𝑙2 + 𝛼2 ∗ 𝑙3 + 𝛼1 ∗ 𝑙4 + 1 ∗ 𝑙5 Mittelwert α3 Mittelwert α4 11,36% 7,10% S1= S2= S3= S4= S5= 72,33 85,67 101,33 93,00 56,67 Tabelle 2: Mittelwerte Die Unbekannten l1, l2, l3, l4, l5 waren die Faktoren, die bei jeder LED-Leiste berücksichtigt werden um die gegenseitige Beeinflussung auszugleichen. Mit dem Rechenprogramm Octave errechnete man sich die Werte. Doch diese waren unrealistisch. Die nächste Überlegung war es, alle LED-Leisten über einen Ausgang anzusteuern. Damit die anderen Sensoren doch noch einen Funktion haben, wurde ein Mittelwert der Sensoren gebildet, der mit einer Gewichtung versehen wurde. Da auf einem Arduino drei Sensoren waren, wurde der Mittelwert wie folgt berechnet. Die Gewichtung sollte die Sensoren, die am Rand sind „bevorzugen“, da diese in geringerem Maß beeinflusst werden als die anderen. Deshalb der Faktor 0,8 beim x5. Die Faktoren zusammengezählt mussten 1 ergeben. Abbildung 73: Umsetzung im Programm Das Schwingen der LED-Leisten war minimal sichtbar. Nur wenn sich die Lichtverhältnisse änderten, kam es zum Einschwingen, was für die Augen nicht besonders angenehm war. Unsere weitere Überlegung war, was die Ursache des Schwingens sein könnte. Die PWMFrequenz liegt bei 490Hz. An dieser konnte es nicht liegen, da das Auge zu träge ist, um diese zu erkennen. Das Programm in Arduino wurde auf das Nötigste gekürzt. Alle Befehle, die nicht essentiell waren, wurden gelöscht. So blieb nur noch die Berechnung. Eine wichtige Erkenntnis davon war, dass die Regelung sichtbar schneller wurde als zuvor. Die Ausgaben im Programm verlangsamten die Regelung. Doch sie war noch immer nicht schnell genug, damit das Flackern für das Auge nicht sichtbar ist. Wenn es am Programm und an Arduino nicht liegen konnte, blieb nur noch der Sensor. Bei diesem wurde nachgeforscht, wie schnell die Daten gesendet werden. 101ms waren standardmäßig eingestellt. Diese wurden auf 13ms reduziert. Die Regelung war noch schneller geworden und es schien als wäre das Problem gelöst, doch bei sprungartiger Änderung der Lichtverhältnisse haben die LED-Leisten noch immer sichtbar geflackert. Seite 63 von 89 HTL Wien 10 5. Lichtregelung AVDIC Abbildung 74: Definition der Integrationszeit des Luxsensors im Programm Die Luxsensoren hatten eine zu große Totzeit. Und die Regelung kann dann nur träge sein. Deshalb wurden für die Regelung die Luxsensoren durch einfache LDRs (Photowiderstände) ausgetauscht, da diese viel schneller reagieren und für das Regeln besser geeignet sind. 5.4. Lichtregelung mit LDR Als neue Sensoren wurden LDRs (Photowiderstände), die ihren Widerstand in Abhängigkeit des Lichts verändern, integriert. Um mit diesen regeln zu können, muss ein Spannungsteiler gebildet werden. Abbildung 75: Schaltung für LDR In der obigen Abbildung 75 ist der Spannungsteiler abgebildet. Zwischen den zwei Widerstandsanteilen wird eine Leitung herausgeführt und auf einem analogen Pin auf dem Arduino-Board angeschlossen. Von diesen gibt es insgesamt sechs Stück (A0 – A5). Dieses Pins haben eine 10-Bit Auflösung. 210 = 1024 𝐵𝑖𝑡. Das bedeutet, dass dieser Eingang einen Wert zwischen 0 und 1023 annehmen kann. Es ist jedoch unrealistisch, dass der Wert auf 0 kommt, da der 10k Widerstand immer vorhanden ist. Diese Schaltung wurde für alle fünf LDRs realisiert. Nach einigen Messungen stellte man fest, dass im Bereich von 980 die Helligkeit relativ gut und angenehm ist. Deshalb wurde dieser Wert als Sollwert für die Regelung genommen. Abbildung 76: Berechnung im Programm In der Abbildung 77 sind das Arduino-Modul mit den Anschlüssen und die Fotowiderstände in einem Schaltplan dargestellt. Außerdem erkennt man auch die Ausgänge des Arduinos von dem aus die fünf LED-Leisten angesteuert werden. Seite 64 von 89 HTL Wien 10 5. Lichtregelung Abbildung 77: Schaltplan von der Regelung mit LDR Abbildung 78: Verbindungen am Steckbrett Abbildung 78 zeigt die Umsetzung des Schaltplans auf dem Steckbrett. Abbildung 79: Regelkreis mit Fotowiderstand Der neue Regelkreis mit einem Fotowiderstand (LDR) als Sensor ist in Abbildung 79 erkennbar. Seite 65 von 89 AVDIC HTL Wien 10 5. Lichtregelung AVDIC 5.4.1. Praktisches Beispiel 𝑒 = 980 − 𝐿𝐷𝑅 𝑦 = 1 ∗ 𝐿𝐷𝑅 Die Variable e ist noch immer die Abweichung vom Sollwert. LDR bezeichnet den Sensorwert des lichtabhängigen Widerstandes. Ist der Wert von LDR z.B. 950, da es im Raum hell ist, so hat die Abweichung einen Wert von 30. Dieser Wert wird mit einem Faktor multipliziert. Nach einigen Versuchen erschien 1 als Faktor am praktischsten. Deshalb wird ein Ausgangssignal von 30 (0-255) auf den Ausgang y geschrieben. Die Folge daraus ist, dass die LED-Leiste mit einer geringen Stärke leuchtet, was auch das Ziel war. 𝑒 = 980 − 950 = 30 𝑦 = 1 ∗ 30 = 30 5.4.2. Problematik des LDR-Regelkreises Bei der Annahme, dass der LDR abgedeckt wird, sinkt der Wert auf dem analogen Eingang (01023) auf beispielsweise 420, was auch ein realistischer Wert unseren Versuchen zu Folge ist. Die Abweichung e beträgt dann 560 und auf den Ausgang wird 560 geschrieben. Da der Ausgang jedoch nur einen Wert von 0 -255 annehmen kann, ist der Wert 560 nicht zu verwerten. 𝑒 = 980 − 420 = 560 𝑦 = 1 ∗ 560 = 560 Um das zu verhindern, wurde ein Datentyp der Programmiersprache C gewählt, der einen nicht so hohen Wert hat (siehe Abbildung 80). Dem Datentyp unsigned char wird 1 Byte Speicherplatz zugeordnet und deshalb gibt es nur Werte von 0 bis 255. Abbildung 80: Verschiedene Datentypen der Programmiersprache C 21 Ein weiterer Bestandteil, der eingebaut wurde, ist der Wechsel zwischen automatischem und manuellem Betrieb, siehe Abbildung 81. Beim automatischen Betrieb übernimmt der Arduino-µC mit den LDRs das Regeln und stellt die Lichtintensität der Lichtquellen ein. Im manuellen Betrieb kann die Helligkeit stufenlos mit einem Potentiometer eingestellt werden. Dazu muss lediglich ein Schalter betätigt werden. Wenn dieser auf das HIGH-Signal geschaltet wird, wechselt der Tisch in manuellen Betrieb. Ausgeschaltet wird der manuelle Betrieb, indem der Schalter auf ein LOW-Signal geschaltet wird. Seite 66 von 89 HTL Wien 10 5. Lichtregelung AVDIC Abbildung 81: Schaltung vom Wechsel Automatik - Manuell Abbildung 82 zeigt die wesentlichen Teile des fertigen Programms und die Programmzeilen wurden daneben näher beschrieben. Abbildung 82: Programmausschnitt der manuellen Einstellung mittels Potentiometer Zur Verbesserung der Lichtregelung, wurde noch eine Abfrage hinzugefügt. Falls die Helligkeit so hoch ist, dass sie den Sollwert überschreitet, wird die jeweilige Leiste ausgeschaltet. Durch Herumprobieren erwies sich eine Wartezeit von 5000ms oder 5s als komfortabel. Das bedeutet, dass beim Überschreiten des Wertes 980 die Differenz e1 kleiner Seite 67 von 89 HTL Wien 10 5. Lichtregelung AVDIC als 0 wird und in diesem Fall wird die LED-Leiste für 5s abgeschaltet. Fünf Sekunden wurden gewählt, weil diese Zeit ausreicht, damit das Hinaufregeln der übrigen LED-Leisten ersichtlich ist. Abbildung 83: Blockschaltbild der Regelung/Steuerung In der Abbildung 83 ist das fertige Blockschaltbild dargestellt. Der Schalter entscheidet ob das Licht geregelt oder gesteuert wird. Seite 68 von 89 HTL Wien 10 6. Strombedarf IMAMOVIC 6. Strombedarf Der gesamte Strombedarf aller LED-Leisten wird mit Hilfe eines Klappkern-Stromwandlers erfasst. Der Stromwandler ist vor dem Netzteil angeschlossen und misst den Wechselstrom. Die Messung läuft die ganze Zeit so lange der Hauptschalter betätigt ist. Abbildung 84 Datenloggerbox mit Klappkernwandler 22 Vom Stromwandler führen zwei Leitungen zu der Datenloggerbox. Beim Konfigurieren der Box können die Parameter der Erfassung eingestellt werden. Der Stromwandler nimmt lediglich den Momentanstrom auf. Deswegen wird eine Kennlinie erstellt, in der der Strombedarf zeitabhängig betrachtet werden kann. Auf der x-Achse ist die Zeit und der yAchse die Stromstärke in Ampere aufgetragen. Die Box ist mit einer Cloud-Plattform verbunden. Das bedeutet, dass mit jedem Rechner die Daten der Erfassung jederzeit angesehen werden können. Auch bei manchen Smartphones gibt es Applikationen, die den Zugriff auf die Erfassungsdaten ermöglichen. Und falls nicht, so lassen sich am Mobiltelefon mit Internetzugriff im Browser trotzdem die Daten aufrufen. Informationen zum Stromwandler: Der Stromwandler (auch Klappkernwandler genannt) ist ein Sensor, der den Strom einer Phase induktiv erfassen kann. In Abhängigkeit der Stromstärke erzeugt der Sensor eine Spannung zwischen 0 und 10 Volt. Dabei entsprechen 10V dem Nennstrom des Stromwandlers, also 10A. Achtung: Bei der Anbringung des Stromwandlers ins System ist darauf zu achten nur die Phase (ohne Neutralleiter) durchzuführen, da sich sonst die Magnetfelder aufheben würden. Beim Wandler sind auf beiden Seiten zwei Buchstaben eingraviert. Nämlich „K“ für Kraftwerk und „L“ für Last. Deswegen sollte auf die Polung geachtet werden: Anschluss K versorgungsseitig und L in Richtung zu den LED-Leisten. Die Auswertung der Kennlinien erfolgt im Webbrowser. Der Momentanstromverbrauch wird jede Minute gemessen und kann auf der Homepage von „linemetrics“ aufgerufen werden. In den Abbildungen 85 und 86 ist auf der x-Achse die Zeit und auf der y-Achse der Momentstrom des Wechselstromes aufgetragen. Seite 69 von 89 HTL Wien 10 6. Strombedarf IMAMOVIC Tageskurven vom Strombedarf der LED-Leisten Einerseits ist der Sinn der Regelung die konstante Beleuchtung der Tischoberfläche. Andererseits wird dadurch Energie gespart. Auch wenn dies relativ wenig ist, zeigen die unten angeführten Kurven einen Unterschied. Dabei wird ein Arbeitstag von 8 bis 16 Uhr simuliert, wie er in den meisten Unternehmen üblich ist. o Messung an einem teilweise sonnigen Tag mit der Regelung Abbildung 85: Strombedarf mit Regelung Bemerkenswert hier ist, dass von 8 Uhr bis kurz vor Mittag, die Kurve leicht absinkt. Ab diesem Zeitpunkt treten dann Spitzen nach oben oder unten auf. Dies hat zwei Gründe: Entweder die Sonne scheint stärker und die LED-Leisten dimmen auf minimalste Helligkeit. Oder das Sonnenlicht wird durch Wolken gedämmt und die LED-Leisten werden stärker angesteuert. o Messung mit voller Aussteuerung der LED-Leisten Abbildung 86: Strombedarf bei voller Aussteuerung der LED-Leisten Wie hier deutlich zu sehen ist, wird werden grob geschätzt 0,4A an Strom eingespart. Natürlich ist dies nur ein Schätzwert vom Momentanwert der Stromstärker, aber dadurch wird der Bedarf an Strom und dadurch auch an Energie reduziert. Seite 70 von 89 HTL Wien 10 7. Bedienungsanleitung SHADI 7. Bedienungsanleitung 7.1. Erste Schritte Um den Tisch in Betrieb nehmen zu können, müssen Sie den weißen Stecker, der mit dem Zentralsteckdosenverteiler verbunden ist, an eine Spannungsversorgung (Steckdose) mit einer Einspeisespannung von 230V anschließen. Schließen Sie alle drei Stecker an den Zentralsteckdosenverteiler an. Betätigen Sie den Hauptschalter des Tischs. 7.2. Funktionsbeschreibung Der Benutzer kann zwischen zwei Modi wählen. Der erste Modus ist der voll automatische Betrieb des Tisches. Dieser ermöglicht eine vollkommen ausgeglichene Beleuchtung Ihres Arbeitsplatzes und eine Anzeige der Temperatur- und Luftfeuchtigkeitswerte auf ein kleines Vierzeilendisplay. Zusätzlich wird auch eine Warnmeldung, in Form eines digitalen Tons, ausgegeben, welche im Falle eines zu niedrigen Luftfeuchtigkeitswertes ertönt. Um diese Betriebsform zu verwenden, stellen Sie den Regelungsschalter auf „Automatisch“. Um den zweiten Modus zu aktivieren, stellen Sie den Regelungsschalter auf „Manuell“. Diese Betriebsform erlaubt Ihnen die Beleuchtung manuell mit Hilfe eines Drehreglers (Potentiometer) zu dimmen und alle anderen Funktionen des Tischs wie beim voll automatischen Betrieb zu nützen. Die Tischhöhe kann mit Hilfe von zwei Tastern verstellt werden. In der folgenden Graphik kann die Lokalität der Bedienungsfelder nachvollzogen werden. Abbildung 87:Lageplan der Bedienungsfelder in der Vorderansicht der Tischplatte Seite 71 von 89 HTL Wien 10 8. Erweiterungsmöglichkeiten AVDIC 8. Erweiterungsmöglichkeiten Beim aktuellen Tisch wurde berücksichtigt, dass Erweiterungen möglich sein sollen. Schon in der Projektplanung sind uns viele in den Sinn gekommen, doch aus zeitlichen Gründen kamen wir nicht dazu diese zum Implementieren. Das Erweitern sollte einen nicht allzu hohen Aufwand erfordern. Der mechanische Ein-Ausschalter könnte durch einen Bewegungsmelder ersetzt werden. Dieser könnte unter dem Tisch platziert werden, damit er nicht stark ins Auge fällt. Wenn sich jemand dem Tisch nähert sollen die Lichtquellen angehen, sowie die Sensoren und das Display. Falls sich einige Zeit lang niemand nähert, wird der Smart Desk ausgeschaltet. Damit die Beleuchtung für jedermann tauglich ist, sollten Warmweiß- und Kaltweißlichtquellen kombiniert werden. Die jetzigen LED-Leisten haben einen warmweißen Farbton. Zu den vorhandenen könnte jeweils eine kaltweiße LED-Leiste montiert werden. So kann beispielsweise jemand der in der Früh noch müde ist, den Farbton auf Kaltweiß ändern. Außerdem könnten beide Farbtöne kombiniert werden und die Anteile manuell festgelegt werden. Ein wichtiger Punkt, der die Benutzerfreundlichkeit kennzeichnet, ist die Bedienung. Ein Touchpad von dem aus alles steuerbar wäre, wäre von Vorteil für die Konsumenten. Der Wechsel von Automatik- in Manuellbetrieb und das Einstellen der Lichtintensität wären mit einem Fingerwischer möglich. Alle Messwerte und Vergleichswerte könnten angezeigt werden. Bei Überlegungen bezüglich Aufbau und Konstruktion erschien uns eine Vorrichtung aus Plexiglas als gute Lösung. Die Nachteile waren der Aufwand und die Kosten. Doch der große Vorteil läge im Design. Darüber hinaus würde auch mehr Licht auf die Oberfläche des Tisches dringen, da Plexiglas mehr Licht durchlässt als Holz. Da heutzutage fast jedes Smartphone NFC (near field communication) hat, könnte der Smart Desk den Benutzer erkennen und die Verhältnisse an dessen Wünsche anpassen und sofort den Tisch in der gewünschten Höhe ausrichten und die Lichtquellen mit der gewünschten Helligkeit betreiben. Vielleicht werden eines Tages solche Tische in die Massenproduktion gehen und in jedem Büro oder Schulgebäude vorhanden sein. Seite 72 von 89 HTL Wien 10 9. Danksagungen Smart_Desk 9. Danksagungen Anfangs möchten wir uns sehr herzlich bei unseren Sponsoren bedanken. Außerdem bedanken wir uns bei unseren betreuenden Professoren, ohne die die Diplomarbeit nicht auf so einen hohen Stand gekommen wäre. Durch ihrer Erfahrung und Fachkenntnisse konnten Sie uns immer auf neue Lösungswege aufmerksam machen und uns aufs Neue motivieren. Dipl.-Ing. Hermann FREIBERGER OStR Dipl.-Ing. Dr. techn. Ewald GAUSTER Des Weiteren bedanken wir uns bei unsere Jahrgangsvorständin für ihre Unterstützung bei unserer Lichtregelung Fr. Dipl.-Ing. Johanna ULLRICH und bei den Fachlehrern, die uns bei praktischen Arbeiten unterstützt haben FL Dipl. –Päd. Leopold WAYSSMAIER FL Ludwig ZIMMEL Außerdem sind wir unsererm Schuldirektor und unserem Abteilungsvorstand besonders dankbar Dir. Mag. Stefan WENKA AV. Dipl.-Ing. Johannes DORFNER Seite 73 von 89 HTL Wien 10 ANHANG Smart_Desk 10. Verzeichnisse 10.1. Abbildungsverzeichnis Abbildung 1: Einfaches Blockschaltbild der Komponenten..................................................................... 8 Abbildung 2: Arduino Beispielprogramm ................................................................................................ 9 Abbildung 3: Arduino Uno Mikrocontroller Board ................................................................................ 10 Abbildung 4: Eigenschaftes des Arduino Uno ....................................................................................... 10 Abbildung 5: Blockdiagramm ATmega328 ............................................................................................ 11 Abbildung 6: I2C Schaltungsbeispiel...................................................................................................... 14 Abbildung 7: AVR Architektur................................................................................................................ 14 Abbildung 8: Digitaler Luxsensor ........................................................................................................... 16 Abbildung 9:Fotowiderstand ................................................................................................................. 16 Abbildung 10: Empfindlichkeitskurve des Fotowiderstandes ............................................................... 18 Abbildung 11: LM317T mit Beschriftung ............................................................................................... 18 Abbildung 12: Interne Schaltung eines Längsreglers ............................................................................ 18 Abbildung 13: Wärmeersatzschaltbild .................................................................................................. 19 Abbildung 14: Tisch in der 3D-Ansicht von AutoCAD ............................................................................ 21 Abbildung 15:U-Stahlträger (Maße in cm) ............................................................................................ 22 Abbildung 16: Tisch mit Vorrichtung und LED-Leisten .......................................................................... 23 Abbildung 17: Tisch mit Vorrichtung und LED-Leisten in der 3D Ansicht von AutoCAD ....................... 24 Abbildung 18: Grundriss der Tischplatte ............................................................................................... 25 Abbildung 19: Anordnung der Komponenten in der Grundrissansicht der Gerätebox ........................ 26 Abbildung 20: Kühlungsschlitze und Anschlusslöcher in der Vorderansicht der Gerätebox ................ 26 Abbildung 21: LED-Leiste ....................................................................................................................... 28 Abbildung 22:Schaltung für Konstantstromquelle ................................................................................ 28 Abbildung 23: Diagramm aus dem Datenblatt des LM317 ................................................................... 29 Abbildung 24: Konstantstromquelle konstruiert mit EAGLE (Schaltplan-Ansicht)................................ 30 Abbildung 25: Sechs Konstantstromquellenschaltungen in der Board-Ansicht.................................... 31 Abbildung 26: Schaltung für die Konstanststromquelle mit Potentialtrennung ................................... 32 Abbildung 27: Schaltung für Konstantstromquelle mit Potentialtrennung .......................................... 33 Abbildung 28: Datenblatt des Optokoppler .......................................................................................... 33 Abbildung 29: Verbesserte Schaltung für Konstantstromquelle mit Potentialtrennung ...................... 34 Abbildung 30: Verbesserte Konstantstromquellenschaltung in der Schaltplan-Ansicht von EAGLE .... 35 Abbildung 31: Verbesserte Konstantstromquellenschaltung in der Bord-Ansicht von EAGLE ............. 36 Abbildung 32: Verbesserte Konstantstromquellenschaltung in der 3D-Anansicht von EAGLE ............ 36 Abbildung 33:Sensorplatine in der Bord-Ansicht von EAGLE ................................................................ 37 Abbildung 34: Sensorplatine in der Schaltplan-Ansicht von EAGLE ...................................................... 38 Abbildung 35: Sensorplatine in der 3D-Ansicht von EAGLE .................................................................. 38 Abbildung 36: Die von der Bord-Ansicht von EAGLE in die Bohr-Ansicht des Roboters konvertierte Schaltung ............................................................................................................................................... 39 Abbildung 37: : Bohrerreihenfolge-Meldung ........................................................................................ 39 Abbildung 38: Schaltung Arduino mit Display ....................................................................................... 42 Abbildung 39: Einbinden der Bibliotheken............................................................................................ 42 Abbildung 40: Setup & Loop Programmierung ..................................................................................... 43 Abbildung 41: Anzeige des Displays ...................................................................................................... 43 Abbildung 42: Ausgabe im Serial Monitor............................................................................................. 44 Abbildung 43: Temperatur- und Feuchtesensor ................................................................................... 44 Abbildung 44: Schaltung Arduino, Temperatur- und Feuchtesensor & Display ................................... 45 Seite 74 von 89 HTL Wien 10 ANHANG Smart_Desk Abbildung 45: Programmierung für die Ausgabe am Display ............................................................... 45 Abbildung 46: Ausgabe am Display ....................................................................................................... 46 Abbildung 47: : I2C Kommunikation mit der Darstellung einzelner Bits ............................................... 46 Abbildung 48: Piezolautsprecher und Arduino ..................................................................................... 47 Abbildung 49: Programmierung der Warnmeldung.............................................................................. 48 Abbildung 50: Spannung als Funktion der Zeit...................................................................................... 49 Abbildung 51: Rechtecksignal ............................................................................................................... 49 Abbildung 52: Prinzip der Pulsweitenmodulation................................................................................. 50 Abbildung 53: 1% duty cycle ................................................................................................................. 51 Abbildung 54: 25% duty cycle ............................................................................................................... 51 Abbildung 55: 50% duty cycle ............................................................................................................... 52 Abbildung 56: 75% duty cycle ............................................................................................................... 52 Abbildung 57: 99% duty cycle ............................................................................................................... 52 Abbildung 58: Arduino-Modul ............................................................................................................... 53 Abbildung 59: Programmausschnitt der If-Vergleiche ......................................................................... 54 Abbildung 60: Regelkreis ....................................................................................................................... 55 Abbildung 61: Blockschaltbild der Regelung ......................................................................................... 55 Abbildung 62: Berechnung im Programm ............................................................................................. 55 Abbildung 63: : Programmausschnitt Regelkreis .................................................................................. 56 Abbildung 64: Einbinden der Bibliotheken & Definieren der Variablen ............................................... 57 Abbildung 65: Berechnung des Luxwertes ............................................................................................ 57 Abbildung 66: Regelung (nur Proportionalglied)................................................................................... 58 Abbildung 67: Analoge Ausgabe auf die LED Leisten ............................................................................ 59 Abbildung 68: If-Abfrage ....................................................................................................................... 59 Abbildung 69: Grafische Darstellung der Lichtverteilung ..................................................................... 60 Abbildung 70: Grundrisse der Tischplatten ........................................................................................... 60 Abbildung 71: Durchschnittssensorwerte in Lux bei 60%-Steuersignal ................................................ 62 Abbildung 72: Beeinflussung der LED-Leisten bei 60%-Leistung .......................................................... 62 Abbildung 73: Umsetzung im Programm .............................................................................................. 63 Abbildung 74: Definition der Integrationszeit des Luxsensors im Programm ....................................... 64 Abbildung 75: Schaltung für LDR ........................................................................................................... 64 Abbildung 76: Berechnung im Programm ............................................................................................. 64 Abbildung 77: Schaltplan von der Regelung mit LDR ............................................................................ 65 Abbildung 78: Verbindungen am Steckbrett ......................................................................................... 65 Abbildung 79: Regelkreis mit Fotowiderstand ...................................................................................... 65 Abbildung 80: Verschiedene Datentypen der Programmiersprache C ................................................. 66 Abbildung 81: Schaltung vom Wechsel Automatik - Manuell ............................................................... 67 Abbildung 82: Programmausschnitt der manuellen Einstellung mittels Potentiometer ...................... 67 Abbildung 83: Blockschaltbild der Regelung/Steuerung ....................................................................... 68 Abbildung 84 Datenloggerbox mit Klappkernwandler .......................................................................... 69 Abbildung 85: Strombedarf mit Regelung ............................................................................................. 70 Abbildung 86: Strombedarf bei voller Aussteuerung der LED-Leisten .................................................. 70 Abbildung 87:Lageplan der Bedienungsfelder in der Vorderansicht der Tischplatte ........................... 71 Seite 75 von 89 HTL Wien 10 ANHANG Smart_Desk 10.2. Quellenverzeichnis 10.3. Literaturverzeichnis 1. Bartmann, E. (2011). Die elektronische Welt mit Arduino entdecken. 2. Lunze, J. (2014). Regelungstechnik 1: Systemtheoretische Grundlagen, Analyse und Entwurf einschleifiger Regelungen. Seite 76 von 89 HTL Wien 10 ANHANG 11. Anhang 11.1. Programmanhang Lichtregelungsprogramm mit Fotowiderständen (LDR) Seite 77 von 89 Smart_Desk HTL Wien 10 ANHANG I2C Scanner #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("\nI2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for(address = 1; address < 127; address++ ) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if Seite 78 von 89 Smart_Desk HTL Wien 10 ANHANG Smart_Desk // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address<16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; } else if (error==4) { Serial.print("Unknow error at address 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("No I2C devices found\n"); else Serial.println("done\n"); delay(5000); // wait 5 seconds for next scan } Temperatur- und Feuchtesensor, Display und Piezolautsprecher // Einbinden des DHT22 #include "DHT.h" // Library für DHT Sensor aufgerufen #define DHTPIN 9 // DHT Sensor wird aus PIN 9 ausgelesen #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); // DHT Type wird auf DHT22 festgelegt // DHTPIN und DHTTYE in dht22 definiert // Einbinden des LCDs #include <Wire.h> // Library für I2C aufgerufen #include <LiquidCrystal_I2C.h> // Library für LCD aufgerufen LiquidCrystal_I2C lcd(0x3F,16,4); // LCD Adresse auf 0x3F gesetzt, 16 Zeichen & 4 Zeilen LCD int speaker= 11; void setup() { pinMode(speaker, OUTPUT); Seite 79 von 89 HTL Wien 10 ANHANG Serial.begin(9600); Smart_Desk // Serielle Ausgabe beginnen mit 9600baud Serial.println("DHT22 Serielle Ausgabe"); // Begrüßung beim Aufruf vom seriellen Monitor dht.begin(); lcd.init(); // Auslesen des DHT22 beginnt // Initialisierung des LCD lcd.backlight(); // LCD Hintergrundbeleuchtung aktivieren } void loop() { //int LDR1 = analogRead(A0); delay (500); float t = dht.readTemperature(); schreiben float h = dht.readHumidity(); schreiben Serial.print("Temperatur: "); Serial.print(t); Serial.print(" C\t"); // Die Temperatur wird vom DHT22 ausgelesen, Wert in "t" // Die Luftfeuchte wird vom DHT22 ausgelesen, Wert in "h" // Ausgabe im Seriellen Monitor // Ausgabe im Seriellen Monitor // Ausgabe im Seriellen Monitor Serial.print("Luftfeuchte: "); // Ausgabe im Seriellen Monitor Serial.print(h); Serial.println(" %"); // Ausgabe im Seriellen Monitor // Ausgabe im Seriellen Monitor lcd.setCursor(0, 1); // Anfang auf Stelle 0, Zeile 0 setzen lcd.print("Temp. :"); // Temp. : auf LCD ausgeben lcd.setCursor(9, 1); // Anfang auf Stelle 9, Zeile 0 setzen lcd.print(t); lcd.setCursor(15, 1); lcd.print("C"); lcd.setCursor(0, 2); lcd.print("Luftf.:"); // Wert von "t" wird am Display ausgeben // Anfang auf Stelle 15, Zeile 0 setzen // Einheit "C" wird auf das Display ausgegeben // Anfang auf Stelle 0, Zeile 1 setzen // Luft.: auf LCD ausgeben Seite 80 von 89 HTL Wien 10 ANHANG lcd.setCursor(9, 2); lcd.print(h); // Anfang auf Stelle 9, Zeile 1 setzen // Wert von "h" ausgeben am Display ausgegeben lcd.setCursor(15, 2); lcd.print("%"); // Anfang auf Stelle 15, Zeile 1 setzen // Einheit "%" auf LCD ausgeben if ( h < 35) { lcd.setCursor(0, 3); lcd.print("Luftbefeuchter an"); digitalWrite(speaker, HIGH); delay(100); digitalWrite(speaker, LOW); delay(4000); } if ( t > 30){ lcd.setCursor(0, 0); lcd.print("Klima an"); digitalWrite(speaker, HIGH); delay(100); digitalWrite(speaker, LOW); delay(4000); } if ( t < 17) { lcd.setCursor(0, 0); lcd.print("Heizung an"); digitalWrite(speaker, HIGH); delay(100); digitalWrite(speaker, LOW); delay(4000); } if ( h > 65) { Seite 81 von 89 Smart_Desk HTL Wien 10 ANHANG lcd.setCursor(0, 3); lcd.print("Lüfter an"); digitalWrite(speaker, HIGH); delay(100); digitalWrite(speaker, LOW); delay(4000); } if ( h < 35) { lcd.setCursor(0, 3); lcd.print("Luftbefeuchter an"); digitalWrite(speaker, HIGH); delay(100); digitalWrite(speaker, LOW); delay(4000); } delay(1000); } Regelung mit Mittelwert (LED-Leiste1 und LED-Leiste2) #include <TSL2561.h> #include <Wire.h> int LEDLeiste1 = 3; int LEDLeiste2 = 6; int y1 = 0; int y2 = 0; int e1 = 0; int e2 = 0; int esum1 = 0; int esum2 = 0; int z = 0; TSL2561 tsl1(TSL2561_ADDR_FLOAT); Seite 82 von 89 Smart_Desk HTL Wien 10 ANHANG TSL2561 tsl2(TSL2561_ADDR_HIGH); void setup (void) { Serial.begin(9600); pinMode(LEDLeiste1, OUTPUT); pinMode(LEDLeiste2, OUTPUT); tsl1.setGain(TSL2561_GAIN_16X); tsl1.setTiming(TSL2561_INTEGRATIONTIME_101MS); tsl2.setGain(TSL2561_GAIN_16X); tsl2.setTiming(TSL2561_INTEGRATIONTIME_101MS); } void loop(void) { tsl1.setGain(TSL2561_GAIN_16X); tsl1.setTiming(TSL2561_INTEGRATIONTIME_101MS); uint16_t x1 = tsl1.getLuminosity(TSL2561_VISIBLE); uint32_t lum1 = tsl1.getFullLuminosity(); uint16_t infrarot1, gesamtSpektrum1; infrarot1 = lum1 >> 16; gesamtSpektrum1 = lum1 & 0xFFFF; x1=(tsl1.calculateLux(gesamtSpektrum1, infrarot1)); uint32_t lum2 = tsl2.getFullLuminosity(); uint16_t infrarot2, gesamtSpektrum2; infrarot2 = lum2 >> 16; gesamtSpektrum2 = lum2 & 0xFFFF; x2=(tsl2.calculateLux(gesamtSpektrum2, infrarot2)); z = (((0.65*x1) + (x2*0.35))/2); Seite 83 von 89 Smart_Desk HTL Wien 10 ANHANG e1=(500-z); esum1=esum1+e1; y1 = (0.565*e1+0*esum1*0.00204); e2=(500-z); esum2=esum2+e2; y2 = (0.565*e2+0*esum2*0.00204); Serial.print("Mittelwert: "); Serial.println(z); Serial.print("AnalogWrite1: ");Serial.println(y1); Serial.print("AnalogWrite2: ");Serial.println(y2); analogWrite(LEDLeiste1, y1); analogWrite(LEDLeiste2, y2); if (y1 > 255) { analogWrite(LEDLeiste1, 255); } if (y2 > 255) { analogWrite(LEDLeiste2, 255); } Serial.print("Lux1: "); Serial.println(tsl1.calculateLux(gesamtSpektrum1, infrarot1)); Serial.print("Lux2: "); Serial.println(tsl2.calculateLux(gesamtSpektrum2, infrarot2)); } Seite 84 von 89 Smart_Desk HTL Wien 10 ANHANG Einfaches Programm zum Dimmen der LED-Leisten If-Vergleiche Seite 85 von 89 Smart_Desk HTL Wien 10 ANHANG Seite 86 von 89 Smart_Desk HTL Wien 10 ANHANG Lichtregelungsprogramm mit Luxsensoren Seite 87 von 89 Smart_Desk HTL Wien 10 ANHANG Seite 88 von 89 Smart_Desk HTL Wien 10 ANHANG 10.4. ACAD - Zeichnung vom Tisch Tischmaße Seite 89 von 89 Smart_Desk HTL Wien 10 ANHANG Seite 90 von 89 Smart_Desk