Lux Sensor

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Lux Sensor Platine

→ zurück zur Übersicht: WS 18/19: Sensortechnik (MTR)

Autor: Luca Di Lillo:
Betreuer: Prof. Schneider


Mit Hilfe eines Lux Sensors, lässt sich die Beleuchtungsstärke der Umgebung messen. Anders als bei der Leuchtdichte kann der Mensch nicht abschätzen wie groß die Beleuchtungsstärke in einem Raum ist, deshalb muss gemessen werden. Natürlich kann und muss die Leuchtdichte für eine korrekte Aussage auch gemessen werden, allerdings kann der Mensch erkennen, dass die Leuchtdichte direkt im Zentrum einer Leuchte größer ist als auf einem Tisch, auf dem das Licht der Leuchte fällt, jedoch kann der Mensch keine Aussage treffen an welchem Punkt eine größere Beleuchtungsstärke ist. Die Beleuchtungsstärke Lux [lx], setzt sich aus dem Lichtstrom in Lumen [lm] und der Fläche in [m²] zusammen.



Die hier dargestellte Sensorplatine enthält vier Sensoren Lux Sensoren, die jeweils ein analoges Signal liefern. Das Signal muss für die weitere Nutzung von einem Analog-Digital-Umsetzer in ein digitales Signal umgewandelt und dann in Lux umgerechnet werden.

Aufgabe

Nutzen von 25 unbestückten Lux Sensor Platinen
  • Bestückung von Sensorplatinen in einem Nutzen
  • Löten der Sensorplatinen in einem Reflowofen
  • Nutzentrennung, um die einzelnen Sensoren zu erhalten
  • Inbetriebnahme des Sensors

Auswertschaltung

Datenblätter

Datenblatt des Sensors: Ambient Light Sensor
Datenblatt des Analog-Digital Umsetzers: Texas Instruments ADS 1115

Sensorplatine

Der eingesetzte Lux Sensor NOA 1212 ist ein SMD Bauelement, aus diesem Grund musste eine Leiterplatte entworfen werden, auf die der Sensor bestückt wurde. Der Schaltungsentwurf dieser Leiterplatte ist dem Datenblatt des Sensors zu entnehmen [siehe Datenblatt Ambient Light Sensor Seite 1 Figure 1 Typical Application Circuit]. Aus Urheberrechtlichen Gründen können die mit Eagle erstellten Schaltungsentwürfe, der hier verwendeten Sensor Platine, nicht gezeigt werden. Wichtig zu wissen ist allerdings, dass die Leiterplatte so entworfen wurde, dass es immer eine mittlere Verstärkung (Medium Gain), im Bereich von 0 bis 100000 Lux gibt. Dies wurde ermöglicht, indem die Anschlüsse GB 1 immer logisch 0 und GB 2 immer logisch 1 sind [siehe Datenblatt Ambient Light Sensor Seite 7]. Nachdem das Platinenlayout entworfen war, konnte die Leiterplatten (PCB) bei einem Elektronikhersteller in Auftrag gegeben werden. Die unbestückten Leiterplatten wurden dann bestückt. Dazu wurde im ersten Schritt mit einer Schablone, die das Abbild der Bauteile des Sensors zeigt und einem Pastendrucker, Lotpaste auf die Leiterplatte gerakelt. Danach wurde mit einem automatischen Bestücker die Leiterplatte bestückt und in einem Reflowofen gelötet. Da sich die Bauteile auf einem Nutzen mit je 25 Sensorplatinen befanden mussten diese nun mit einem Nutzentrenner getrennt werden. Im letzten Schritt wurde jede Platine auf Funktion getestet, der Ausschuss wurde aussortiert oder gegebenenfalls repariert.

Schaltung

Fritzing Schaltung

Für die Schaltung sind drei Bauteile nötig. Zum einen die Luxsensor Platine, auf der sich die vier Luxsensoren befinden. Das zweite Bauteil ist eine Leiterplatte auf der sich der Analog-Digital Umsetzer (ADU) befindet. Ausgewählt wurde ein Analog-Digital Umsetzer des Unternehmens Adafruit. Dies hat mehrere Gründe, die Luxsensor Platine hat vier analoge Ausgänge, deshalb wurde ein ADU benötigt auf dem sich ein Multiplexer befindet. Alternativ hätte es die Möglichkeit gegeben an jeden analogen Ausgang der Sensorplatine, einen eigenen ADU anzuschließen, dies hätte allerdings den Nachteil, dass sich die Anzahl der Bauteile vervierfachen würde und somit die Anschaffungskosten der Bauteile steigen. Des Weiteren gibt die Luxsensor Platine eine Spannung im milli Volt Bereich aus, deshalb war es nötig ein ADU zu verwenden der solche geringen Spannungen verarbeiten und verstärken kann. Ein Weiteren Vorteil ist, dass Leiterplatten von Adafruit speziell für den Einsatz mit einem Arduino oder vergleichbaren Microcontroller konzipiert sind und eine kompatible Library mitlieft, die eine schnelle Programmierung ermöglicht. Das dritte Bauteil ist ein Microcontroller in dieser Schaltung wurde ein Microcontroller des Unternehmens Atmel (heute Microchip) verwendet, der sich auf einer Arduino Leiterplatte von Arduino befindet und mit dem Arduino Bootloader betrieben wird. Diese Schaltung lässt sich mit dem gleichen Quelltext auf die meisten Microcontroller auf Arduino Basis übertragen. In diesem Beispiel wurde ein Arduino Uno verwendet, im Video wird ein Arduino Mega benutzt, um zu demonstrieren, dass beide Plattformen den Betrieb unterstützen.

Bauteil Hersteller Anzahl
Arduino Uno Arduino 1
ADS1115 16-Bit ADC Platine Adafruit 1
Lux Sensor Platine 1

Messkette

Messkette














Die Messkette setzt sich aus drei Bauteilen zusammen, der Luxsensor Platine, den Analog-Digital Umsetzer (ADS 1115) und dem Microcontroller (Arduino). In den drei Bauteilen befinden sich weitere elektrische Komponenten die essenziell sind, um die Daten zu verarbeiten. Im Folgenden Abschnitt wird unterschieden zwischen dem Primärsensor, Signalvorverarbeitung, Analog-Digital Umsetzer, Bussystem, Digitale Signalverarbeitung und Bewertung der Sensordaten.

Primärsensor

Der Primärsensor ist eine Photodiode. Trifft Licht in Form eines Photons auf die Diode, werden Elektronen aus dem Material der Diode rausgelöst und es entsteht ein kleiner aber messbarer Strom. Da jedes Photon im Licht genau ein Elektron aus dem Material in der Diode herauslöst, lässt sich erkennen, dass die Intensität des Lichtes beeinflusst, wie hoch der Stromfluss ist. Das bedeutet, je größer der Stromfluss, desto größer ist die Beleuchtungsstärke, da gleichzeitig der Lichtstrom größer ist und die Beleuchtungsstärke direkt vom Lichtstrom (Lumen) abhängig ist.

Signalvorverarbeitung

Die Signalvorverarbeitung übernimmt ein Verstärker, im Datenblatt Amp genannt. Der Verstärker hat drei Eingänge und einen Ausgang. Ein Eingang ist die Kathode der Photodiode, die zwei weiteren Eingänge sind GB1 und GB2. Mit GB1 und GB2 lässt sich die Verstärkung einstellen. In dem Fall der hier gezeigten Sensorplatine ist GB2 immer auf 3,3 V und GB1 immer auf 0 V, so dass die Verstärkung nicht nachträglich verändert werden kann. Ist GB 2 auf 3,3 V und GB1 auf 0 V, ist der Medium Gain aktiviert [siehe Datenblatt Seite 7], mit dem Medium Gain lassen sich Lux Werte bis ca. 100000 Lux aufnehmen. Nach dem Verstärker ist an den Knotenpunkt ein Widerstand angeschlossen, der an die Masse angeschlossen ist, so dass am Knotenpunkt eine Spannung gemessen werden kann. Der Widerstand befindet sich auf der Leiterplatte und muss beim Layoutdesign ermittelt werden, dazu stellt das Datenblatt eine Formel bereit [siehe Datenblatt Ambient Light Sensor Seite 7].



Setzten wir unsere Werte für das Medium Gain ein, also für 100000 Lux und bedingt aus der Versorgungsspannung der Leiterplatte für 3.3V erhalten wir für einen Wert von rund 591 Ω. Das bedeutet, dass ein 590 Ω Widerstand der E 48 Reihe in Frage kommen würde. Da der Widerstand konstant ist und der Strom variabel, ändert sich die Spannung in Abhängigkeit vom Strom. Für die weitere Verarbeitung der Daten wird die Spannung benötigt

Analog-Digital-Umsetzer

Als Analog Digital Umsetzer wurde ein ADS1115 von Texas Instruments, eingebettet auf eine Leiterplatte von Adafruit, verwendet. Dieser IC enthält neben dem ADC noch weitere Bauteile, die hier essenziel sind. Zum einen ist das ein Multiplexer, denn der ADS1115 kann vier analoge Signale verarbeiten. Danach folgt ein programmierbarer Verstärker, der es ermöglicht, kleine Messgrößen zu verstärken. Jetzt folgt der eigentliche ADC, der die analogen Signale in digitale Signale wandelt. Zum Schluss werden die Signale an den Datenbus weitergeleitet, dazu mehr im Abschnitt Bussystem. Der Analog Digitalumsetzer im ADS1115 ist ein a ΔΣ ADC (Delta Sigma Modulation). Ein ΔΣ ADC, arbeitet nach dem Prinzip der Überabtastung. Die Eingangssignale werden mit einer hohen Frequenz abgetastet, um ein Aliasing zu vermeiden. Danach werden die Signale gefiltert. Das Filter ist ein Digitalfilter, das den Rauschanteil unterdrückt. Da die Sensorplatine vier analoge Signale liefert, ist es sinnvoll diesen Analog-Digital-Umsetzer einzusetzen, da er über eine vier Kanal Multiplexer verfügt. Ein Multiplexer schaltet, wie bei einem Schalter die Signale nacheinander weiter, so dass es möglich ist über eine Leitung, Signale von mehreren Quellen nacheinander weiter zu leiten. Des Weiteren wurde diese ADU eingesetzt, da dieser die Daten über einen I²C Bus an den Microcontroller weiterleitet und somit ein geringer Verdrahtungsaufwand nötig ist.

Bussystem

Das Bussystem, über das die Daten an den Microcontroller geliefert werden, ist der I²C (Inter- Integrated Circuit) Bus. Der Busanschluss ist in den IC des Analog Digital Umsetzers eingebettet. Das bedeutet, dass die Digitalen Signale, die aus dem ADU kommen, direkt über die Busleitung versendet werden. Der I²C, ist ein synchroner serieller Bus, das bedeutet, dass die Daten nacheinander über eine Leitung übertragen werden. Der Bus arbeitet nach dem Master Slave Prinzip und besteht aus einer Datenleitung SDA (Signal Data), einer Taktleitung SCL (Signal Clock), sowie einer Spannungsversorgung VDD und GND (Ground).

Digitale Signalverarbeitung

Das Ausgangssignal des Sensors, das digital verarbeitet wurde ist eine Spannung, die mit der Beleuchtungsstärke korrespondiert. Im Datenblatt des Sensors sind Formeln hinterlegt, die es erlauben aus der gemessenen Spannung eine Beleuchtungsstärke zu berechnen. Im Folgenden wird auf die Berechnung der Beleuchtungsstärke eingegangen, die im Microcontroller so umgesetzt wird.



Zuerst wir der Widerstand in Abhängigkeit der Verstärkung berechnet. VDD ist die Spannung, mit der der Sensor versorgt wird, bedingt durch die Sensorplatine sind das hier 3,3V. EVMAX ist der maximale Beleuchtungsstärkewert, der abhängig von dem Verstärkungsfaktor erreicht werden kann, in unserem Fall sind das rund 1000000 Lux. Die 100 Lux geteilt durch 4,9 µA stehen für den angenäherten Ausgangsstrom bei 100 Lux, dieser Wert ist wieder abhängig von der zuvor eingestellten Verstärkung, in unserem Fall ist das Medium Gain, der wie schon erwähnt bei dieser Platine nicht verändert werden kann.



Mit Hilfe der zweiten Formel wir dann die aktuelle Beleuchtungsstärke in Lux gemessen. Dazu werden die 100 Lux durch 4,9 µA geteilt. Diese Werte kommen als angenäherter Strom bei 100 Lux zustande. Dazu multipliziert wird die gemessene Spannung geteilt durch den Widerstand . Der ermittelte Wert stellt die aktuelle Beleuchtungsstärke in Lux dar.

Bewertung der Sensordaten

Bedingt durch die Bestückung der kleinen Lichtsensoren, kann es vorkommen, dass diese beim Reflowprozess von ihrem Lötpad schwimmen und keinen Kontakt zur Leiterplatte haben, dadurch können keine geeigneten Messwerte aufgenommen werden können. Dieser Fehler ist leicht zu erkennen, da die gelieferten Werte immer kleiner als Null sind und somit ausgeschlossen werden können. Schwieriger wird es im weiteren Signalverarbeitungsschritt Fehler zu erkennen. Zum einen entstehen schon Fehler beim Messen der Daten und dem Verarbeiten der Daten im Verstärker. Die nächsten Fehler, die entstehen können sind beim Verarbeiten der Daten von einem analogen in ein digitales Signal. Die Wandlung der Daten ist immer fehlerbehaftet, der Quantisierungsfehler einer ADU liegt bei bis zu . Der nächste Fehler kann durch das Versenden der Daten über den I²C Bus entstehen, dieser Bus ist sehr störanfällig dadurch bedingt kann durch Elektromagnetische Verträglichkeitsprobleme z.B. durch Motoren, der Bus gestört werden und keine oder fehlerhafte Daten übertragen werden.

Da auf der Platine vier Luxsensoren sitzen ist es möglich die Fehler des Signals geringer zu halten, dazu wendet man den Median auf die vier Signale an. Das bedeutet, dass die Werte der Größe nach geordnet werden. Die beiden mittleren Werte, werden dann addiert und durch zwei dividiert, dadurch ist gewährleistet, dass Werte, die aus dem Rahmen fallen nicht berücksichtigt werden. Des Weiteren bietet sich an jeden der vier Sensoren mit einer Referenzlichtquelle zu kalibrieren. Dazu bietet es sich an eine Referenzlichtquelle der Physikalisch-Technischen Bundesanstalt (PTB) zu beziehen, die Lichtquelle wird dann mit einem geeichten optischen Spektrometer in einem vorher definierten Abstand gemessen und die Lux Werte aufgenommen. Dann wird an die Position des Spektrometers die Platine befestigt, so dass diese den gleichen Abstand zu der Referenzlichtquelle hat wie vorher das Spektrometer. Nachdem mit allen vier Sensoren der Platine die Daten aufgenommen wurden, erhalten diese einen Kalibrierfaktor, der es ermöglicht, dass die Sensoren alle die gleichen Daten messen, dies bedeutet trotzdem nicht, dass sie immer das Gleiche messen werden. Für diesen Sensor wurden allerdings keine Kalibrierfaktoren ermittelt.

Quelltext

 
/********************************************
*  Name:    Lux_Sensor.ino                  *
*  Created: 06.11.2018 16:33:46             *
*  Author:  Luca Di Lillo                   *
*  Version: 1.0.0                           *
********************************************/
#include <Adafruit_ADS1015.h> 

Adafruit_ADS1015 adc; //Initialisiert den Analog Digital Wandler mit default Adresse 0x48

double EVMAX = 100000; //Maximale ausgabe in Lux bei eingestelltem Gain
double CURRENT = 0.0000049; //Strom bei 100 lx bei eingestelltem Gain
double U = 3.3;

double A_0;
double A_1;
double A_2;
double A_3;
double RL;

void setup()
{
  Serial.begin(9600);

  adc.begin();
  adc.setGain(GAIN_SIXTEEN); //Gain Wert auf 16 eingestellt für eine Reichweite von +/-0.0078125V
  RL = (U - 0.4) / EVMAX * (100 / CURRENT); //Berechnung von RL entnommen aus Datenblatt http://www.onsemi.com/pub/Collateral/NOA1212-D.PDF
}

void loop()
{
  A_0 = adc.readADC_SingleEnded(0) * 0.001 * 0.0078125; //Spannung am ersten Sensor wird gemessen und dann von milli Volt in Volt umgerechnet
  A_1 = adc.readADC_SingleEnded(1) * 0.001 * 0.0078125;
  A_2 = adc.readADC_SingleEnded(2) * 0.001 * 0.0078125;
  A_3 = adc.readADC_SingleEnded(3) * 0.001 * 0.0078125;


  A_0 = A_0 / ((CURRENT / 100) * RL); //Spannungswert wird von Spannung in Lux umgerechnet, Formel entnommen aus Datenblatt
  A_1 = A_1 / ((CURRENT / 100) * RL);
  A_2 = A_2 / ((CURRENT / 100) * RL);
  A_3 = A_3 / ((CURRENT / 100) * RL);

  //Ausgabe der Sensordaten
  Serial.print("A0: ");
  Serial.print(A_0);
  Serial.println(" Lux");

  Serial.print("A1: ");
  Serial.print(A_1);
  Serial.println(" Lux");

  Serial.print("A2: ");
  Serial.print(A_2);
  Serial.println(" Lux");

  Serial.print("A3: ");
  Serial.print(A_3);
  Serial.println(" Lux");

  delay(100000); //Wartezeit, reset drücken um eine neue Messung zu starten

}

Lernerfolg

Die Verwendung eines Lux Sensors implizierte das Auseinandersetzten mit lichttechnischen Größen. Daher gab es einen Lernerfolg in dem Bereich der Lichttechnik. Des Weiteren konnte man sehr gut erkennen und verstehen wie Messwerteaufgenommen und vorverarbeitet werden, dies stellt eine gute Ergänzung zu der Sensortechnik Vorlesung dar. Die Umsetzung des analogen Signals in ein digitales Signal war ein weiteres Element, dass an die Bauelemente und Schaltung Vorlesung des dritten Semesters Mechatronik an der HSHL anknüpft. Das Versenden der Daten über den I²C Bus greift Inhalte der Vorlesung Bussysteme, die im sechsten Semester stattfinden wird, auf. Dadurch lassen sich die ersten Grundlagen schaffen und erste Erfahrungen mit Bussystemen sammeln. Die Verwendung eines Microcontrollers verfestigt den Lernerfolg aus der Vorlesung Systemarchitektur und Embedded Systems und des Elektrotechnik Praktikums aus dem fünften Semester. Alles in allem lässt sich sagen, dass das Projekt durch seine praktische Arbeit mit der Sensorik hilft Inhalte der einzelnen Vorlesungen besser zu verstehen und die zukünftige Arbeit mit diesen Komponenten erleichtern werden.

Gesamtfazit

Der Lux Sensor ist ein gutes Hilfsmittel zur Ermittlung der Beleuchtungsstärke in einem Raum. Hat man keine fertige Sensorplatine ist es schwierig den Sensor in Betrieb zu nehmen und erfordert die Bestückung auf einer Leiterplatte. Hat man eine fertige Leiterplatte ist es einfach die Beleuchtungsstärke zu messen, man benötigt lediglich einen geeigneten Analog-Digital Umsetzer und einen Microcontroller.

Ein solcher Sensor kann sehr vielseitig eingesetzt werden, zum einen kann damit die Außenhelligkeit gemessen werden und abhängig von den Werten Leuchten gedimmt werden, um Energie zu sparen. Zum anderen kann der Sensor verwendet werden, um Leuchten schnell lichttechnisch zu vermessen ohne teures Equipment anzuschaffen, dies lohnt sich allerdings nur, wenn es nicht nötig ist sehr präzise Werte zu ermitteln.

YouTube Video

https://youtu.be/vwBdSAtz3AY

Schwierigkeitsgrad

Die Schwierigkeit dieses Projektes bestand darin, dass der Sensor ein SMD Bauteil ist und somit eine Leiterplatte mit diesem Sensor bestückt werden musste. War diese Aufgabe erledigt, war es nicht mehr schwierig den Sensor in Betrieb zu nehmen, es musste ein geeigneter ADU ausgewählt werden. Mit Hilfe des Datenblattes musste dann ermittelt werden, wie aus dem gemessenen Wert die Beleuchtungsstärke ermittelt wird.

Unter diesen Gesichtspunkt kann man das Projekt auf einer Skala von 1 bis 5 mit der Schwierigkeit 3 bewerten.

Literatur

  • Reinhard Lerch: Elektrische Messtechnik Analoge, digitale und computergestüzte Verfahren. Springer-Verlag Berlin Heidelberg 2007, ISBN 978-3-540-73610-3.

Weblinks

  • Licht.de: Erklärung der Lichttechnischen Größen und welchen Bezug diese zueinander haben.
  • Leifi Pysik: Erklärung des photoelektrischen Effekts

Quellenverzeichnis

--- → zurück zur Übersicht: WS 18/19: Sensortechnik (MTR)