UV-Sensor UVM30A
![](/wiki/images/thumb/8/89/UV-Sensor-UVM-30A_600x600.png/350px-UV-Sensor-UVM-30A_600x600.png)
Autor: | Oliver Scholze |
Studiengang: | Business and Systems Engineering |
Modul: | BSE-M-2-1.03, Hausarbeit in Angewandte Informatik gehalten von Prof. Dr.-Ing. Schneider |
Semester: | Sommersemester 2024 |
Abgabetermin: | 28.07.2024 |
Einführung
Der Sensor im UVM30A ist ein photodetektiver Sensor, der UV-Licht im Bereich von 200 nm bis 370 nm erfasst. Dieser photodetektiver Sensor besteht aus einem Halbleitermaterial, das bei Bestrahlung mit UV-Licht Elektronen freisetzt [1]. Diese freigesetzten Elektronen erzeugen einen elektrischen Strom, der proportional zur Intensität des einfallenden UV-Lichts ist, diese wird auch als photoelektrischer Effekt bezeichnet. Dieser Strom wird dann in eine analoge Spannung umgewandelt, die vom Sensor ausgegeben wird [2]. Die analoge Ausgangsspannung wird mithilfe des Diagramms, aus dem Datenblatt, in einen UV-Index umgewandelt [1].
Aufgabenstellung
Messen Sie Intensität eines gegebenen ultravioletten Lichts. Zeigen Sie auf dem Display an, welchem UV Index die Intensität entspricht.
Anforderungen | |||||||||||||||||||||||||||
|
- Thema/Fragestellung: Messung der UV-Intensität erfolgt mit dem Sensor UVM30A.
- Hypothese: Die Wellenlängen lassen sich im Bereich von 200 nm-370 nm fehlerfrei messen.
- Einordnung in den Lehrplan Für die Aufgabe werden Inhalte aus der Vorlesung Angewandte Informatik und Signalverarbeitende Systeme benötigt, da somit die Implementierung/ Durchführung und die Bewertung des Ergebnisses erfolgen kann.
Projektbeschreibung
In diesem Projekt wird eine Schaltung mit dem UV-Sensor UVM30A und einem Arduino aufgebaut. Die UV-Intensität wird gemessen, die Daten werden verarbeitet und die Ergebnisse auf einem LCD-Display angezeigt. Dabei wird der UV-Index ermittelt und ausgegeben. Dazu werden folgende Bauteile benötigt:
# | Anzahl | Material |
---|---|---|
1 | 1 | PC mit MATLAB/Simulink R2023b |
2 | 1 | UV-Sensor - UVM30A |
3 | 1 | Arduino Uno R3 |
4 | 1 | Streckbrett |
5 | 5 | Jumper Kabel, männlich/männlich, 20 cm |
6 | 1 | LCD-Display mit I2C |
7 | 1 | Buzzer |
Beschreibung Funktionsweise der verwendeten Hard- und Software
- Arduino Uno R3: Der Arduino Uno R3 ist das Herzstück des Systems und dient als Mikrocontroller.
- UVM30A: Der Sensor erzeugt ein elektrisches Signal, dessen Spannung von der Intensität der UV-Strahlung abhängt, die auf den Sensor trifft.
- Simulink R2023b: Erstellung des Programms zur Ansteuerung und Auswertung der angeschlossenen Hardware (UVM30A und LCD Display).
- LCD-Display mit I2C: Das LCD-Display wird verwendet, um die gemessenen UV-Intensitätswerte anzuzeigen.
- Steckbrett: Ein Steckbrett dient zum schnellen und flexiblen Aufbau und Testen von elektronischen Schaltungen ohne Löten.
- Jumperkabel: Jumperkabel werden verwendet, um Verbindungen zwischen verschiedenen Komponenten auf einem Steckbrett oder zwischen einem Steckbrett und einem Arduino herzustellen.
- Buzzer: Der Buzzer erzeugt akustische Signale durch schnelle Vibrationen oder Schwingungen eines Membransystems, die als Töne wahrgenommen werden können.
Technische Daten
Die technischen Daten des Sensors geben Aufschluss über den Einsatzbereich und die Anforderungen, die erfüllt werden müssen, um ihn in die Messumgebung zu integrieren.
Messbereich | 200-370 nm |
Versorgungsspannung | 3 V .. 5 V |
Versorgungsstrom | 0.06 mA, maximal 0.1 mA |
Genauigkeit | +-1 UV Index |
Gewicht | 13 g |
Getriebe | Kunststtoff |
Arbeitstemperatur | -20 °C .. +85 °C |
Abmessungen | 34 mm x 13 mm x 7 mm |
[1]
Pinbelegung
In diesem Abschnitt wird die Pinbelegung des UVM30A Sensors beschrieben.
Pin | Belegung | Signal |
---|---|---|
1 | Versorgungsspannung VCC | 5 V |
2 | Analoger Ausgang | 0 V .. 1.16 V |
3 | Masse (GND) | 0 V |
[1]
Funktionsweise Primärsensor
In diesem Kapitel werden die Grundlagen und die Funktionsweise des Primärsensors beschrieben.
![](/wiki/images/thumb/9/97/Photoelement_.png/450px-Photoelement_.png)
Grundlagen (photoelektrische Effekt)
Der photoelektrische Effekt lässt sich in verschiedene Funktionsweisen unterteilen. In diesem Fall ist der Sperrschichtphotoeffekt am relevantesten. Hierbei wird ein pn-Halbleiter und die daraus resultierende Sperrschicht verwendet. Wenn externe Energie auf den pn-Halbleiter einwirkt, werden Ladungsträgerpaare in der Sperrschicht freigesetzt. In der dort herrschenden Raumladungszone werden die Ladungsträger durch das bestehende elektrische Feld beschleunigt und getrennt. Dadurch wird die Rekombination verhindert und die Photoempfindlichkeit erhöht. Dies führt zur Entstehung einer elektrischen Spannung, die entnommen werden kann (photovoltaischer Effekt) [3].
Primärsensor UVM30A
Photoelemente arbeiten nach dem Sperrschichtphotoeffekt. Im Normalbetrieb, siehe Abbildung 2, wird das Photoelement mit einem ausgewählten Widerstand parallel geschaltet. Der erzeugte Photonenstrom (I_FE) kann durch den Widerstand (R_L) in eine Spannung umgewandelt werden:
Der geringe Strom, der von der Photodiode erzeugt wird, wird durch einen Vorverstärker verstärkt. Dieser Vorverstärker ist ein Operationsverstärker, der das schwache Signal auf ein nutzbares Niveau bringt. Die erzeugte Spannung kann beispielsweise von einem Mikrocontroller verarbeitet werden, wodurch die Schaltung als optischer Empfänger, Luxmeter oder Leuchtdichtemesser verwendet werden kann [3].
Versuchsaufbau und Durchführung
In diesem Kapitel wird der Versuchsaufbau , die Implementierung in Simulink und die Versuchsbeobachtung beschrieben. Relevante Themen wie Messunsicherheit, Filterung und Referenzenwerte werden ebenfalls behandelt.
Versuchsaufbau
![]() |
![]() |
Der Versuchsaufbau zeigt ein Arduino Uno, ein LCD-Display, einen UV-Sensor (UVM30A) und einen Buzzer, die miteinander verbunden sind.
Verkabelung
1.LCD-Display:
- VCC und GND des Displays sind mit 5V und GND des Arduino verbunden.
- SDA und SCL des Displays sind mit den entsprechenden Pins am Arduino verbunden (A4 und A5 für I2C-Kommunikation).
2.UVM30A UV-Sensor:
- VCC und GND des Sensors sind mit 5V und GND des Arduino verbunden.
- Der Ausgangspin des Sensors ist mit einem analogen Pin des Arduino (A0) verbunden.
3.Buzzer:
- Der positive Anschluss des Buzzers ist mit einem digitalen Pin des Arduino (D13) verbunden.
- Der negative Anschluss des Buzzers ist mit GND verbunden.
Funktionsweise
1. UV-Sensor Messung: Der UVM30A UV-Sensor misst die UV-Strahlung und gibt eine entsprechende Spannung aus, die am analogen Pin des Arduino eingelesen wird.
2. Datenverarbeitung mit Simulink: Die eingelesenen Spannungswerte werden an Simulink übergeben, wo sie in den UV-Index umgewandelt werden.
3. Anzeige auf dem LCD: Der berechnete UV-Index wird über den Arduino an das LCD-Display gesendet und angezeigt.
4. Buzzer: Wenn die UV-Sensorwerte über einen bestimmten Zeitraum stabil bleiben, wird der Buzzer aktiviert, um einen Ton zu erzeugen.
Implementierung in Simulink
In Abbildung 5 ist das Simulink-Modell dargestellt. Der Prozess beginnt mit dem Einlesen des analogen Eingangs A0. Das empfangene Digitalwort wird daraufhin umgewandelt und gefiltert. Das gefilterte Signal wird anschließend in einem Diagramm in einen UV-Index umgewandelt. Diese beiden Werte werden zur weiteren Verarbeitung an den Workspace übermittelt. Danach erfolgt die Ausgabe des UV-Index, und der Mittelwert des UV-Index wird über fünf Messwerte hinweg mit dem UV-Index verglichen, um zu prüfen, ob ein stabiles Signal vorliegt. Ist dies der Fall, wird ein akustisches Signal erzeugt. Weitere und detaillierte Informationen zum Modell sind hier zu finden:
![](/wiki/images/thumb/9/9c/Sensorverarbeitung_UVM30A.png/800px-Sensorverarbeitung_UVM30A.png)
Umwandlung des Digitalwortes in mV
Im Simulink-Modell wird das vom UV-Sensor gelesene Digitalwort in Millivolt (mV) umgewandelt. Der Sensorwert (ein 10-Bit-Digitalwert von 0 bis 1023 mit einer Referenzspannung von 5V) wird durch den Analog-Digital-Wandler (ADC) des Arduino erfasst. Um diesen Wert in mV umzurechnen, wird der folgende Schritt mit einem Gain durchgeführt:
Dieser umgerechnete mV-Wert wird dann gefiltert und zur weiteren Verarbeitung im Modell verwendet.
Filterung des Signals
Im Simulink-Modell wird ein Medianfilter verwendet, um die mV-Signale des UV-Sensors zu glätten. Der Filter hat eine Größe von 20 Werten. Dies bedeutet, dass der Median der letzten 20 gemessenen Werte berechnet wird, um Ausreißer zu minimieren und ein stabileres Signal zu erzeugen. Dieses gefilterte Signal wird dann für die weitere Verarbeitung und zur Steuerung des Buzzers verwendet.
Kalibrierung der Spannungswerte in einen UV-Index
![](/wiki/images/thumb/9/9e/Korrelation_zwischen_UV-Index_und_Ausgangsspannung_des_Sensors.jpg/450px-Korrelation_zwischen_UV-Index_und_Ausgangsspannung_des_Sensors.jpg)
Für die Umwandlung wird eine Kennlinie benötigt, um die Beziehung zwischen der analogen Ausgangsspannung und der UV-Intensität zu beschreiben. Diese Kennlinie wird mithilfe der vom Hersteller gegebenen Daten erstellt und ist notwendig, um die Messwerte korrekt zu interpretieren. Für die Interpretation wird Simulink eine 1D-Lookuptabel verwendet, welche die unten genannten Werte enthält:
% Werte für den 1-D Lookup-Table zur Umwandlung der Spannungswerte in den UV-Index Output_Voltage = [0 225 320 405 500 605 700 790 875 975 1075 1160]; % Wert aus AD-Wandler [mV] UV_Index = [0 1 2 3 4 5 6 7 8 9 10 11]; % UV-Wert [1]
Verwendete Toolbox: DSP System Toolbox, Simulink Support Package für Arduino Hardware
Summeransteuerung bei stabilen Signal ansteuern (Diff < 0.01)
Bei einem stabilen Signal (geringe Schwankungen des UV-Index) wird zusätzlich ein Buzzer aktiviert. Das Modell ermöglicht somit eine Überwachung und eine akustische Benachrichtigung basierend auf den gemessenen UV-Index-Werten. Diesbezüglich wird der Mittelwert über fünf Messwerte gebildet, dazu werden mehrere Memory Blöcke verknüpft, die Ergebnisse summiert und durch die Anzahl der Messwerte dividiert. Anschließend wird die Differenz vom UV-Index und dem Mittelwert berechnet. Ist die Abweichung des UV-Index kleiner als 0,2 wird das Signal als stabil betrachtet und der Ausgang wird auf HIGH gesetzt. Dadurch wird die digitale Pin D13 auf 1 bzw. High gesetzt, was dazu führt das ein akustisches Signal vom Buzzer erzeugt wird.
Versuchsdurchführung
![](/wiki/images/thumb/2/2f/Versuchsaufbau_UVM30A.png/450px-Versuchsaufbau_UVM30A.png)
Der Versuchsaufbau wird durch einen Schaltplan (Abb. 3), Anschlussplan (Abb. 4( und Foto des Aufbaus (Abb. 7) dokumentiert.
Die Durchführung des Experiments beginnt mit dem Flashen des Arduino Uno R3. Nachdem alle relevanten Daten eingestellt wurden, wird die Messung gestartet. Dazu wird der Versuchsaufbau in die Sonne platziert und für mehrere Sekunden nicht bewegt, um statische Parameter zu gewährleisten. Anschließend wird eine weitere Messung durchgeführt, bei der die Dynamik untersucht wird. Hierzu wird ein Blatt Papier verwendet, um den Sensor abwechselnd zu bedecken und freizulegen. Das Ziel dieser zweiten Messung ist die Analyse der Einstellung des Medianfilters, insbesondere ob das Fenster groß genug gewählt wurde oder ob Anpassungen erforderlich sind, um ein verwertbares Signal zu erhalten.
Referenzwert
Als Referenz werden Wetterdaten verwendet aus der die UV-Intensität hervorgeht, um die Kalibrierung des UVM30A durchzuführen. Diese Daten sind präzise und werden regelmäßig gewartet und überprüft, um die Genauigkeit zu gewährleisten.
Die Messung erfolgte am 18.07.2024 in Stirpe mit der Postleitzahl 59597. Laut dem Wetterdienst sollte der UV-Index zwischen 12:00 Uhr und 14:00 Uhr von 4 auf 3 fallen. Da die Messung um 12:40 Uhr stattfand, wurde der Referenzwert auf einen UV-Index von 3,2 festgelegt [4].
Das Modell zur Datenverarbeitung wurde gemäß Abb. 5 in Simulink aufgebaut. Die Messdaten wurden aufgezeichnet. Ein Video der Versuchsdurchführung findet sich hier.
Modelleinstellungen: Arduino Uno, Solver: Fixed-step, discrete, Abtastrate: 0,01 s
Messprozess und Messunsicherheit
In diesem Abschnitt wird die Messunsicherheit und die Standardunsicherheiten bestimmt, um die Genauigkeit und Vertrauenswürdigkeit der Messungen zu bewerten.
Standardunsicherheit Typ B
Der verwendete Arduino UNO R3 hat einen 10-Bit ADU und eine Referenzspannung von 5V. Daraus ergibt sich eine Quantisierungsstufe von:
Der maximale Quantisierungsfehler beträgt somit:
Um den tatsächlichen Fehler berechnen zu können, muss die Standardunsicherheit Typ B des Sensors mithilfe von MATLAB ermittelt werden. Dabei wird geprüft, wie viel Spannung der Messunsicherheit eines UV-Index entspricht. Aus der Kennlinie geht hervor, dass die Umwandlung nahezu linear ist, jedoch nicht vollständig den Anforderungen entspricht. Daher wird zunächst die Differenz zwischen den Spannungswerten berechnet und der Mittelwert dieser Differenzen als Grundlage für die Messunsicherheit verwendet [1].
Hier ist der MATLAB-Code für die Berechnung des Mittelwerts:
% Gegebene Spannungswerte in mV für die jeden UV-Index von 0 bis 11 von dem Sensor UVM30A output_voltage = [0, 225, 320, 405, 500, 605, 700, 790, 875, 975, 1075, 1160]; % Wert aus AD-Wandler [mV] % Differenzen berechnen differences = diff(output_voltage); % Mittelwert der Differenzen berechnen mean_difference = mean(differences); % Mittelwert ausgeben disp('Der Mittelwert der Differenzen ist:'); disp(mean_difference);
Dadurch ergibt sich eine kombinierte Standardunsicherheit von:
Der tatsächliche Fehler dieser Messung unter Berücksichtigung der Messunsicherheit des UV-Sensors und des Quantisierungsfehlers des 10-Bit AD-Wandlers beträgt etwa 105.56 mV.
Standardunsicherheit TYP A und C
Die Berechnung der kombinierten Standardunsicherheit Typ C erfolgt abschließend unter Berücksichtigung eines Konfidenzniveaus von 68,3%, was einer Standardabweichung (1𝜎) entspricht. Diese Berechnung basiert auf den vorliegenden Messdaten, die im Folgenden detailliert erläutert werden.
Hier ist der Matlab-Code:
Die Auswertung zeigt dieses Diagramm:
![](/wiki/images/thumb/0/0e/Unsicherheit.jpg/700px-Unsicherheit.jpg)
Versuchsbeobachtung
![]() |
![]() |
Das Signal des Sensors weist alle 40 ms systematische Ausreisser auf (vgl. Abb. 6, rote Kurve).
Auswertung
Die Messhypothese wurde verworfen. Der Sensor weist sowohl Messwertausreisser als auch eine relative Messunsicherheit die im Verhältnis sehr hoch ist auf.
Die relative Messunsicherheit gibt Aufschluss darüber, wie groß der Fehler im Verhältnis zum Messwert ist. Eine relative Messunsicherheit von 51.09% zeigt an, dass die Unsicherheit im Verhältnis zum gemessenen Wert beträchtlich ist. In der Praxis ist es oft wünschenswert, eine niedrige relative Messunsicherheit zu haben, um genaue und verlässliche Messungen zu gewährleisten. Der Bereich der Unsicherheit erstreckt sich somit von etwa 307,3435 mV bis 518,2621 mV (Mittelwert ± Unsicherheit), wie es in Abbildung 8 dargestellt ist, und dies bei einem Vertrauensnievau von 68,
Die Ausreisser lassen sich mit einem Signalfilter eliminieren. Hierzu eignet sich ein Rangordnungsfilter (z. B. Median-Filter). Das Filter wird hierzu auf eine Fensterbreite von 30 Werten eingestellt. Das zufriedenstellende Filterergebnis für statische Werte zeigt Abb. 6 als blaue Kurve. Es konnte mit dynamische Werten verifiziert werden (vgl. Abb. 7). Das Datenblatt ([2, S. 6]) belegt die Messungen und bezeichnet die Messausreisser als "instabile Ausgabe" für maximal 5 ms alle 40 ms. Mit 50 Werten erhöht sich die Filterwirkung, es entsteht jedoch ein Delay von 10 ms. Mit 10 Werten ist die Filterwirkung zu gering.
Zusammenfassung und Ausblick
- Zusammenfassung der Kapitel 1-4
- Diskussion der Ergebnisse
- Ausblick
- Selbstreflexion/Lessons learned
Ergebnisvideo
Im Ergebnisvideo wird das Simulink-Modell, das auf einem Arduino implementiert ist, demonstriert. Die Kennlinie zeigt deutlich, dass ein stabiler UV-Index bzw. Messwert vorliegt, was zusätzlich durch das akustische Signal bestätigt wird. Dieses Signal dient als Indikator für die Stabilität des gemessenen Wertes. Der Messaufbau entspricht den angegebenen Spezifikationen und ist so eingerichtet, dass der Sensor direkt zur Sonne ausgerichtet ist, um präzise Messungen des UV-Index zu gewährleisten.
Lernzielkrontrolle
Beantworten Sie in Ihrem Artikel die Lernzielkontrollfragen.
Lernzielkontrollfragen |
|
Literatur
Zitieren Sie nach DIN ISO 690:2013-10.
- [1] Wiltronics: UVM30A. URL: https://www.wiltronics.com.au/wp-content/uploads/datasheets/ARD2-2062.pdf, 10. Juli 2024
- [2] Wikipedia: Photoelektrischer Effekt. URL: https://de.wikipedia.org/wiki/Photoelektrischer_Effekt, 10. Juli 2024
- [3] Edmund, S.: Industriesensorik: Automation, Messtechnik, Mechatronik. Würzburg: Springer-Verlag, 2. Auflage 2016, Seite 321łff. ISBN: 978-3-8343-6211-7
- [4] Wetter.com: UV-Index heute in Stirpe. URL: https://www.wetter.com/uv-index/deutschland/bohmte/stirpe/DE0001299023/, 18. Juli 2024
Anhang
- Datenblätter
- Simulink-Modell
- Originaldateien (PAP, Schaltplan,... )
→ zurück zum Hauptartikel: BSE Angewandte Informatik SoSe24 | Hausarbeit SoSe24