Begründung des Vorgehens für die Datenerfassung
Das in der Hypothese festgelegte Verfahren soll zeigen, wie sich die Lichtwerte nach verlängerter Dunkelheit (Max1), nach dem Abschalten der LED (Min1) für Tmin = 80ms, dem erneuten Einschalten danach (Max2) und schließlich erneutem Ausschalten (Min2) entwickeln. Dargelegt wird dadurch, wie sich Leuchtdioden bei rapidem Ein- und Ausschalten entgegen längeren Leuchtperioden verhalten. Die Messpunkte der Variablen sind in der nebenstehenden Abbildung in genannter Reihenfolge an t = 160ms, t = 240ms, t = 400ms und t = 480ms der Kurve zu sehen.
Parameterwahl
Die Anzahl der Parameter ist im Rahmen dieser Facharbeit möglichst gering zu halten, da sonst eine unüberschaubare Anzahl möglicher Optionen zur Optimierung entstehen. Es werden bereits drei verschiedene Leuchtdioden untersucht, weshalb nicht mehr als ein weiterer Parameter betrachtet werden sollte.
Der Helligkeitsverlauf beim wiederholten Ein- und Ausschalten einer jeden einzelnen Leuchtdiode kann stark variieren, weshalb er anhand verschiedener Leuchtdauern zu analysieren ist. Im experimentellen Teil erfolgt keine Bitbestimmung, sondern nur die Ermittlung der als wichtig gekennzeichneten Rohwerte. Da keine Bits übermittelt werden, simulieren die Leuchtdauern Übermittlungen mehrerer kontinuierlicher Bits mit Wert 1. Die Leuchtdauern sind Vielfache der angestrebten Leuchtdauer von 80ms. Das Maximum beträgt dabei 480ms, da der längste Byte sechsstellig ist, während die LED immer für Tmin = 80ms ausgeschaltet bleibt. Zur Diskussion verschiedener Leuchtdauern werden diese fortan abgekürzt (LD) und in n Vielfachen der erstrebten Periodendauer Tmin angegeben (LD = n * Tmin).
Abweichungen und Streuung von Werten
Natürlicherweise weichen die Lichtwerte bei wiederholter Datenaufnahme voneinander ab. Dies ist berücksichtigt, indem die Messung für jede Leuchtdauer pro Diode 15 mal wiederholt wird. Die Zahl kommt durch die Begrenzung der Tabellenlänge zustande, ist aber völlig ausreichend, um ein umfangreiches Bild über das Verhalten der LEDs zu geben. Zum Arbeiten mit den Variablen werden die arithmetischen Mittelwerte dieser vom Datenverarbeitungsprogramm berechnet und in einem separaten Datenblatt für jede Leuchtdiode zusammengefasst.
Erzeugung und Organisation der Datensätze
Zur Erzeugung der Daten wurde ein neues Arduino-Programm geschrieben, dass gleichzeitig für das Emittieren und Aufnehmen des Lichtes zuständig ist. Das Hinzuziehen eines dritten, unabhängigen Microcontrollers für die Datenaufnahme, ersparte das ständig wechselnde Hochladen von alten und neuen Programmcodes.
Automatisierung der Datenverarbeitung
Schon von Beginn an war klar, dass die Messwerte weder von Hand erzeugbar, noch dokumentierbar waren. Daher musste ein separates Programm geschrieben werden, dass den dritten Arduino ansteuert sowie dessen Werte verarbeitet und verzeichnet. Dazu wurde die Programmiersprache Python verwendet. Sie erleichtert den Umgang mit Daten, da Python eine objektorientierte Sprache ist und das Nutzen von Klassen ermöglicht. Zusätzlich verwaltet sie Speicher dynamisch und automatisch. Somit ließen sich Ergänzungen zur Menge der Daten von der Entwicklung des Programms bis zur Datenaufnahme problemlos skalieren. Es war effizienter diesen Prozess zu automatisieren, unter anderem indem das Programm die Datenblätter selbstständig erzeugt und auf Google Sheets hochlädt.
Programmablauf
Das Python-Programm wurde noch vor dessen Ausarbeitung in die Regionen “Serial Communication”, “Data Extraction & Evaluation” und “Google Sheets Upload” unterteilt. Der Ablauf der Datenerfassung kann diesen Bereichen folgend erklärt werden.
Zunächst sendet das Arduino-Programm die Werte als Rohtext in Form von Bits über die serielle Schnittstelle an das Python-Programm. Dieses liest jeden Zeit- mit dessen zugehörigem Lichtwert heraus. Weiterhin ist das Verfahren für eine variable Anzahl an Wiederholungen für jede Leuchtdauer in einem Programmablauf möglich. Die Differenzierung der Werttypen erfolgt im Programm durch Linientrennung und sogenannte “Header” über jedem Datensatz.
Es wird für jede Leuchtdauer der nächstmögliche Messzeitpunkt aller jeweiligen Variablen ermittelt und das arithmetische Mittel aller Variablen berechnet. Am Ende der zweiten Region liegt in separaten Arrays (Listen) für jede Leuchtdauer sowohl eine Klasse der Koordinaten aus t und den Messungen (SW 1-15), als auch eine Klasse für die Durchschnittswerte aller Variablen.
Implementierung der Google Sheets API
Die finalen Dokumente und darin enthaltenen Datenblätter werden in der letzten Region des Programms automatisch erzeugt und bearbeitet. Es ist in der Lage zu unterscheiden, ob ein Dokument erstellt, gewisse Teile überschrieben oder ergänzt werden müssen. Dabei mussten zahlreiche, extensive Algorithmen entwickelt werden, die bei variablen Datenmengen eine feste Tabellenstruktur generieren und sämtliche Zellen eines einzelnen Datenblattes mit einem einzigen Upload befüllen. Letzteres ist notwendig, sodass die Upload-Beschränkungen der Google Sheets API nicht überlastet werden. Die Konsolenlogs waren dabei eine fundamentale Unterstützung beim Verfassen des Codes und demonstrieren die Fähigkeiten des Codes in seinem vollen Maße.
Auswertung der Daten
Besonders die zusammenfassenden Datenblätter der Variablen (Max1, Max2, Min1 und Min2) mit ihren zugehörigen Balkendiagrammen geben Aufschluss über das Verhalten der Leuchtdioden. Aber auch die Helligkeitskurven einzelner Leuchtdauern sind beispielhaft für wünschenswerte oder unzureichende Eigenschaften.
Allgemeine Erkenntnisse
Unabhängig der Parameter verschiedener LEDs und Leuchtdauern lassen sich globale Beobachtungen machen: Max2 liegt immer 20SW bis 30SW über Max1. Grund dafür ist, dass der Stromfluss einer Diode, bzw. proportional dazu die Helligkeit, nicht unmittelbar auf null sinkt. Bevor der Stromfluss in den Ausgangswert zurückfallen kann, steigt er nach Ende der Periode bereits wieder an, weshalb er bei Max2 höher ist. Analog dazu gilt dasselbe für Min1 und Min2: Bei Max2 ist die LED heller, weshalb sie auch bei Min2 mit gleicher Periodendauer noch etwas weiter aufleuchtet. Folglich sind die Minima abhängig von vorhergehenden Maxima, als auch der Dauer, in der die LED ausgeschaltet bleibt (hier konstant bei Tmin). Dieser Effekt ist ist im Graphen der grünen Leuchtdiode von “Tru Components” außerordentlich deutlich.
Dadurch bestätigt sich, wie in der Hypothese bereits vermutet, die Erhöhung von Max2 und Min2 bei wiederholten Bitwechseln. Es ist anzunehmen, dass die Erhöhung der Maxima und Minima über sehr häufige Wiederholungen von Bitwechseln unvorhersehbarer sowie extremer werden. Dadurch lässt sich die regelmäßige Oszillation als wünschenswerte Eigenschaft, wie in der Hypothese formuliert, zur regelmäßigen Oszillation unabhängig von der Anzahl der Bitwechsel erweitern.
Gesamteinfluss des Parameters Leuchtdauer
Idealerweise ist genanntes Merkmal gleichfalls unabhängig aller Leuchtdauern. Stattdessen ist zu beobachten, dass die Streuung der Messkurven mit geringeren Leuchtdauern zunehmen, welche jedoch für die meisten LEDs tolerierbar bleiben. Weiterhin zeigt sich, dass sämtliche Lichtwerte mit abnehmender Leuchtdauer ebenfalls sinken. Die Zerfallsrate verhält sich dabei für jede Diode unterschiedlich und ist möglichst gering zu halten. Überraschenderweise zeigt sich, dass sämtliche LEDs verschieden auf die jeweiligen Leuchtdauern reagieren, weshalb sich keine weiteren Dioden-übergreifenden Schlüsse zu den Leuchtdauern machen lassen. Vor dem Vergleich werden sie aus diesem Grund alle einzeln betrachtet.
Analyse aller Leuchtdioden
Wie zu erwarten, schneidet die standardmäßige LED des Arduino schlecht ab. Der gefärbte Schirm filtert einen Großteil des Lichtspektrums ab, weshalb nur ein Höchstwert von 150SW erreicht wird. Die Helligkeit ist, auch bei klaren, einwandfreien Unterschieden zwischen Maxima und Minima, über die Distanz von einem Meter unzureichend. Nichtsdestotrotz weist die LED ein sehr vorhersehbares Verhalten auf: Dem Diagramm der Durchschnittswerte ist zu entnehmen, dass die Beträge der Variablen allesamt linear abnehmen.
Kurzübersicht: Arduino Standard LED
- sehr geringe Helligkeit aufgrund Filterung des Farbschirms
- weite Abstände zwischen Minima und Maxima
- Min1, Min2, Max1 und Max2 nehmen mit steigender Leuchtdauer linear ab
Die TC LED in Blau liegt im Gegensatz dazu mit Höchstwerten von 445SW in einer angemessenen Größenordnung. Ihre Streuungen sind von der Leuchtdauer unabhängig und kompensierbar. Allerdings nimmt Max2 nicht wie Max1 linear, sondern exponentiell ab. Der Effekt würde sich mit hoher Sicherheit bei rapiden, aufeinanderfolgenden Bitwechseln verstärken, weshalb auch die Leistung dieser Leuchtdiode unzureichend ist.
Kurzübersicht: Tru Components LED Blau
- angemesse Helligkeit mit Sensorwerten bis zu 445SW
- Streuungen unabähngig von der Leuchtdauer
- Max1 nimmt linear ab
- Max2 nimmt exponentiell ab; Effekt würde sich bei schnellen Bitwechseln hintereinander verstärken
Keinerlei positive Merkmale weist die grüne LED derselben Marke auf. Vergleichsweise besteht ein geringerer Unterschied zwischen Maximum und Minimum sowie signifikante Unterschiede zwischen Min1 und Min2. Ähnlich wie bei den vorherigen Dioden festgestellt, sind diese Charakteristika extrem anfällig sich bei längeren Bitfolgen zu verschlechtern. Das zuvor genannte Ausschlusskriterium, nachdem sich die Erhöhung von Maxima und Minima bei Bitwechseln verstärken, ist in der vorherigen Abbildung für LD = 1T am deutlichsten. Ersichtlich gruppierte, jedoch unverhältnismäßig weite Streuungen, machen das Verhalten zudem sprunghaft.
Kurzübersicht: Tru Components LED Grün
- zu geringe Abstände zwischen Minima und Maxima
- signifikante Unterschiede zwischen Min1 und Min2
- gennante Merkmale sind anfällig bei längeren Bitfolgen schlechter zu werden
- extreme Streuungen
Herausstechend ist die rote TC LED durch ihr extrem konstantes Verhalten: Nahezu unabhängig der Leuchtdauer gilt Max1 = Max2, Min1 = Min2 sowie Max ≈ 2.15 * Min. Letzterer Zusammenhang bedeutet, dass diese LED mit einem vergleichsmäßig großen Höchstwert bei 945SW ihre Helligkeit in einer Periode nur auf etwa die Hälfte mindern kann. Der Graph für LD = 480ms zeigt, im Gegenzug die nahezu infinitesimale, benötigte Dauer, um den Maximalbetrag zu erreichen. Die Abnahme der Helligkeit über verkürzte Leuchtdauern ist aufgrund ihrer Geringfügigkeit schlecht von Messungenauigkeiten zu unterscheiden, weshalb sie für Leuchtdauern um Tmin als inexistent angesehen werden kann. Die Ergebnisse schienen zunächst überaus unwahrscheinlich, waren jedoch bei einer Wiederholung der gesamten Messung mit identischen Werten reproduzierbar.
Kurzübersicht: Tru Components LED Rot
- unabhängig der Leuchtdauer sind Max1 und Max2 sowie Min1 und Min2 jeweils identisch
- unabhängig der Leuchtdauer sind die Maxima das 2.15-fache der Minima; es gilt: Max ≈ 2.15 * Min
- extrem große Helligkeit bei 945SW
- sofortiges Ansteigen von Minima zum Maximalbetrag der Helligkeit
Vergleich aller Leuchtdioden und Schlussfolgerungen
Beinahe alle Leuchtdioden weisen gewisse Ausschlusskriterien auf. Zuwider der Annahme der Hypothese, nach welcher hellere LEDs die Differenzierung von Bits vereinfachen würden, sind es die die der Marke “True Components”, welche bei frequenten Bitwechseln unter verhältnismäßig starkem Helligkeitsverlust leiden oder unberechenbar auf sie reagieren. Ausschließlich die rote TC LED ist in ihren Eigenschaften nahezu optimal.