LM35 PCTS: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(84 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:ST_WS2018]]
[[Kategorie:ST_WS2018]]
[[Datei:LM35 TCPS.png|links|300px|LM35 PCTS]] <br>
[[Datei:LM35DZ.PNG|thumb|rechts|500px|LM35DZ]]  
→ zurück zur Übersicht: [[ST_WS2018|WS 18/19: Sensortechnik (MTR)]]
→ zurück zur Übersicht: [[ST_WS2018|WS 18/19: Sensortechnik (MTR)]]<br/>


'''Autor:''' [[Benutzer:Yanick-Christian_Tchenko|Yanick Christian Tchenko]] <br/>
'''Autor:''' [[Benutzer:Yanick-Christian_Tchenko|Yanick Christian Tchenko]] <br/>
'''Betreuer:''' [[Benutzer:Ulrich_Schneider| Prof. Schneider]]<br/>
'''Betreuer:''' [[Benutzer:Ulrich_Schneider| Prof. Schneider]]<br/>
 
 
== Aufgabe ==
== Aufgabe ==
Es soll im Rahmen der Sensorik-Vorlesung aus dem 5. Semester Mechatronik SDE ein Sensor in betrieb genommen werden. Dazu wurde als Sensormodell für die vorliegende Arbeit der LM35 Precision Centigrade TemperaturSensor (LM35 PCTS), nämlich die Version LM35DZ ausgewählt, deren ausführliche Beschreibung sowie Beschaltung mit passenden Anschlüssen (z.B. Steuergeräten) in den folgen Abschnitten näher betrachtet werden.
Es soll im Rahmen der Sensorik-Vorlesung aus dem 5. Semester Mechatronik SDE ein Sensor in betrieb genommen werden. Dazu wurde als Sensormodell für die vorliegende Arbeit der LM35 Precision Centigrade TemperaturSensor (LM35 PCTS), nämlich die Version LM35DZ, ausgewählt. Dessen Beschreibung sowie Beschaltung mit anderen Anschlüssen (z.B. Steuergeräten) werden in den folgenden Abschnitten näher betrachtet, wo ebenfalls die Dokumentation der Ergebnisse durchgeführt wird.


== Allgemeine Einleitung ==
== Allgemeine Einleitung ==


==Technische Beschreibung==
[[Datei:LM35 Schaltung.PNG|thumb|rechts|500px|LM35DZ-Pin-Belegung]]


==Technische Daten==
{| class="mw-datatable"
{| class="mw-datatable"
! style="font-weight: bold;" | Eigenschaft
! style="font-weight: bold;" | Eigenschaft
Zeile 45: Zeile 47:
|  
|  
|}
|}
==Funktionsweise==
 
==Funktionsweise der LM35DZ==
 
LM35DZ-Version TO-92 ist ein 3-beinieger analoger Temperatursensor mit einer Messabweichung von 0,5°C bei 25°C Umgebungstemperatur. Er kann in einem weiten Betriebs¬spannungs¬bereich von 4V bis 30V arbeiten und besitzt einen Temperaturbereich von 0°C bis + 100°C sowie eine kalibrierte Linearität.
Damit kann die Auswertung der Temperatur direkt in Grad Celsius erfolgen, wobei eine lineare Spannungsänderung von 10mV entspricht einer Temperaturänderung von 1°C. In Abhängigkeit der Temperatur stellt der Sensor LM35DZ somit an seinem Ausgangspin eine analoge Spannung zwischen 0mV und 1000mV bei einem Temperaturbereich von 0°C bis 100°C bereit. Dabei wird bei einer Temperatur von 0°C eine Ausgangsspannung von 0mV und bei 100°C eine Spannung von 1000mV bzw. 1V erwartet, was ein linearer Zusammenhang voraussetzt. Es kann demnach anhand der gemessenen Ausgangsspannung in mV die entsprechende Temperatur bestimmt werden. Für eine gemessene Ausgangsspannung von 120 mV lässt sich also die entsprechende Spannung folgendermaßen bestimmen:
                            <math>10 \,\mathrm{mV} =>1^\circ C</math><br />
                            <math>120 \,\mathrm{mV} =>T </math><br />
               
                            <math>T =\frac{1^\circ C\cdot 120 \,\mathrm{mV}}{10 \,\mathrm{mV}} = 12^\circ C</math>    (1) 
     
Bei einer Zimmertemperatur von ca. 25°C kann dieser linearen Umrechnungsmethode zu Folge eine Ausgangsspannung von 200mV erwartet werden.
 
==Anwendung und Aufgabe von Arduino==
 
Das hier angewendete Anschluss- bzw. Steuerungsmodul in der Arduino Uno, welcher einen Analog-Digitalwandler des Atmel Chips Atmega328 mit einer Auflösung von 10-bit hat. Das entspricht 1024 digitalen Wertemöglichkeiten, welche sich im Bereich zwischen 0 und 1023 erstrecken.
Da der Controller hier mit einer Betriebsspannung von 5V betrieben wird und diese auch als Referenzspannung des AD-Wandlers gilt, beträgt nach der oben dargestellten Umrechnungsformel die kleinste zu messende Spannung 4,88 mV für jeden digitalen Schritt
5000mV / 1024 = 4,88mV




==Vorgehensweise==
                                    <math>U =>1^\circ C</math><br />
                            <math>5000 \,\mathrm{mV} =>1024 </math><br />
               
                            <math>U =\frac{1^\circ C\cdot 5000 \,\mathrm{mV} }{1024^\circ C} = 4,88 \,\mathrm{mV}</math>    (2) 


==Schaltung==
 
Um nun den oben angenommenen Spannungswert von 120mV bei 12°C mit dem Arduino zu kriegen, muss der vom AD-Wandler ausgegebene Digitalwert nur noch mit den 4,88mV je Schritt multipliziert werden. Oder im Umkehrschluss wird bei 12°C und damit 120mV Ausgangsspannung des Temperatursensors ein digitaler Wert von überschlägig 25 je nach Toleranz erwartet.
    120 mV / 4,88mV = 24,59
 
== Projektdurchführung ==
 
Die Strecke zum Ziel dieser Arbeit entspricht den folgenden Arbeitsschritten: 
 
[[Datei:Vorgenhensweise.PNG|Vorgenhensweise]]
 
 
Nach der hier definierten Philosophie muss die funktionsfähige Schaltung der Hardware-Bestandteile die grundsätzliche Voraussetzung zur Überleitung zu Software umfassen. Die funktionierende Software sollte dann auf die Hardware implementiert werden, um  die Messdaten bekommen zu können.<br/><br/> 
 
=== Schaltung ===
 
Erster Arbeitsschritt ist die Beschaltung der Bauelemente. Zunächst soll der LM35-Sensor mit dem Arduino UNO Board verbunden werden. Daneben sollten noch einige zusätzliche Überprüfungseinheiten (LED, Widerstand)hinzugeschaltet werden. Es entsteht somit die auf der unteren Abbildung zu sehende Schaltung.  <br />
 
[[Datei:Messschaltung.png|1000px]]
 
 
Hier sollen Daten aus dem LM35-Sensor gelesen weden, wobei die RGB-LED bei hohen Temperaturen  (T > 37°) rot werden und bei mittelmäßigen Temperaturen (0° < T < 38°) grün sein muss. Nächster Schritt nach dem erfolgreichen Testen der Schaltung durch eine einfache Einspeisung mit einer Spannung von 5 V ist die Einstellung der Software.


==Quellcode==
==Quellcode==


==Reflexion==


==Fazit==
=== Programmierung ===
 
Als endlicher Lösungsansatz zum Ablesen bzw. zum Umwandeln der wirklichen von dem LM35 gemessenen bzw. ermittelten Größe erfolgt die durch  den unteren Code dargestellte Konstellation.
Dabei werden zuallererst der Ausgang definiert sowie die Initialwerte für den Sensor und die Temperatur. Initialisiert wird ebenfalls ein Array mit neun Elemente. Damit sollen aufgrund präziserer Genauigkeit erst nach neun Messungen der Mittelwert bestimmt werden, welcher letztendlich als die zu betrachtende Temperatur gelten soll<br />
 
'''Bibliotheken und Setup'''
<div style="width:1100px; height:200px; overflow:auto; border: 2px solid #088">
<source lang=c>
 
// Variablen und Setup-Funktion
 
 
int Ausgangspannung = A0;
float LM35_Wert = 0;
float temperatur = 0;
double Temperatur[9];
double A_Temperatur;
double Messwert;
 
void setup()
{
Serial.begin(9600);
}
 
 
</source>
</div>
<br/>
Die Anwendung der Variablen ermöglicht dann die Einstellung der gewünschten Funktionalitäten (Umwandlung der Größen), wie man im folgenden Programmabschnitt erkennen kann.<br/>
 
'''Loop-Funktion: Öffnen und Schließen des Spindes'''
<div style="width:1100px; height:320px; overflow:auto; border: 2px solid #088">
<source lang=c>
 
// Loop-Funktion
 
void loop()
{
 
// Messaufnahmen
LM35_Wert = analogRead(Ausgangspannung);
 
// Umwandlung in Grad Celcus der in Pin P0 gelesenen Spannung
Messwert = (5.0 * analogRead(Ausgangspannung) * 100.0) / 1024;
...
for(int i = 0; i<10; i++)
{
Temperatur[i+1] = Temperatur[i] + Messwert;
...
}
 
// Approximative Temperatur
...
}
 
{  …… }
 
</source>
</div>
<br/>
 
==Bewertung des Sensordaten==
Die Implementierung des geschriebenen Programms auf die Hardware läuft seriell, also über einen USB-Kabel. Ermittelt wird dann die gemessene Temperatur, wie im Video zu erkennen ist.
Prinzipiell sollte man sich nie auf nur einen Messwert verlassen, wenn man beabsichtigt, temperaturabhängige Aktionen auszuführen. Hier bieten sich mehrere Messungen hintereinander an, aus denen dann ein Durchschnitt gebildet wird. Es macht auch Sinn, extreme „Ausreißer“ in einem Messzyklus zu eliminieren. Den LM35 kann man kalibrieren, wenn man mittels eines Referenzmessgerätes die Temperatur-Differenz ermittelt und diese Ungenauigkeit im Programmcode berücksichtigt. Als Referenzsensor wurde im Rahmen dieser Arbeit die subjektive Temperaturwahrnehmung des Autors berücksichtigt. Es kam dann immer noch der Vergleich zwischen der ausgegeben Temperatur und der nach dem Verfasser möglichen Zimmertemperatur. Die gelieferten Werte waren ohnehin sehr realitätsnah.
 
==Zusammenfassung==
 
In diesem Artikel wurde hauptsächlich das Thema Sensortechnik behandelt, wobei der LM35 PCTS in Betrieb genommen wurde. Als Grundlagen dienten hierzu die Kenntnisse aus den Vorlesungen GET I und II sowie Programmierung. Die Durchführung der praktischen Aufgabe stellte sich als Hilfe fürs beste Verständnis der in der der Aufgabe entsprechenden Lehrveranstaltung (Sensorik) angesprochenen Theorien. Dazu wurden beispielsweise neben der Verdeutlichung der Funktionsweise des ausgewählten Sensoren auch ein allgemeiner Überblick über Temperatursensoren verschaffen. Es wurde außerdem aufgrund der Anwendung von Mikrocontroller eine geeignete Vorbereitung auf die praxisnahe Programmierung ermöglicht; Thematik, die im Zuge des Mechatronik Studiums ebenfalls angesprochen wird.


== YouTube Video ==
== YouTube Video ==
https://www.youtube.com/watch?v=UXZiVCBGf2s


== Weblinks ==
== Weblinks ==


== Literatur ==
== Literatur ==
 
http://www.ti.com/lit/ds/symlink/lm35.pdf<br/>
 
http://www.roboter-im-unterricht.de/temperatursensor-lm-35-oder-tmp36.html


<!-- Fügen Sie diesen Footer hinzu.  -->
<!-- Fügen Sie diesen Footer hinzu.  -->
---
----
→ zurück zur Übersicht: [[ST_WS2018|WS 18/19: Sensortechnik (MTR)]]
→ zurück zur Übersicht: [[ST_WS2018|WS 18/19: Sensortechnik (MTR)]]

Aktuelle Version vom 12. Februar 2019, 10:37 Uhr

LM35DZ

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

Autor: Yanick Christian Tchenko
Betreuer: Prof. Schneider

Aufgabe

Es soll im Rahmen der Sensorik-Vorlesung aus dem 5. Semester Mechatronik SDE ein Sensor in betrieb genommen werden. Dazu wurde als Sensormodell für die vorliegende Arbeit der LM35 Precision Centigrade TemperaturSensor (LM35 PCTS), nämlich die Version LM35DZ, ausgewählt. Dessen Beschreibung sowie Beschaltung mit anderen Anschlüssen (z.B. Steuergeräten) werden in den folgenden Abschnitten näher betrachtet, wo ebenfalls die Dokumentation der Ergebnisse durchgeführt wird.

Allgemeine Einleitung

Technische Beschreibung

LM35DZ-Pin-Belegung
Eigenschaft Daten
Artikelnummer des Hersteller LM35DZ
Versorgungssspannung von +4 bis +30 V
Schnittellen: 3
Modell: Analoger Temperastursensor
Ausgangsspannung: -1 ~ 6V
Ausgangsstrom: 10 mA
Betriebstemperatur: von 0°C bis 100°C
Temperaturempfindlichkeit: + 10 mV / ° C
Produkgröße (NOM): 4.699 mm × 4.699 mm [TO-CAN (3)]
4.30 mm × 4.30 mm [TO-92 (3)]
4.90 mm × 3.91 mm [SOIC (8)]
14.986 mm × 10.16 mm [TO-220 (3)]

Funktionsweise der LM35DZ

LM35DZ-Version TO-92 ist ein 3-beinieger analoger Temperatursensor mit einer Messabweichung von 0,5°C bei 25°C Umgebungstemperatur. Er kann in einem weiten Betriebs¬spannungs¬bereich von 4V bis 30V arbeiten und besitzt einen Temperaturbereich von 0°C bis + 100°C sowie eine kalibrierte Linearität. Damit kann die Auswertung der Temperatur direkt in Grad Celsius erfolgen, wobei eine lineare Spannungsänderung von 10mV entspricht einer Temperaturänderung von 1°C. In Abhängigkeit der Temperatur stellt der Sensor LM35DZ somit an seinem Ausgangspin eine analoge Spannung zwischen 0mV und 1000mV bei einem Temperaturbereich von 0°C bis 100°C bereit. Dabei wird bei einer Temperatur von 0°C eine Ausgangsspannung von 0mV und bei 100°C eine Spannung von 1000mV bzw. 1V erwartet, was ein linearer Zusammenhang voraussetzt. Es kann demnach anhand der gemessenen Ausgangsspannung in mV die entsprechende Temperatur bestimmt werden. Für eine gemessene Ausgangsspannung von 120 mV lässt sich also die entsprechende Spannung folgendermaßen bestimmen:

                            

(1)

Bei einer Zimmertemperatur von ca. 25°C kann dieser linearen Umrechnungsmethode zu Folge eine Ausgangsspannung von 200mV erwartet werden.

Anwendung und Aufgabe von Arduino

Das hier angewendete Anschluss- bzw. Steuerungsmodul in der Arduino Uno, welcher einen Analog-Digitalwandler des Atmel Chips Atmega328 mit einer Auflösung von 10-bit hat. Das entspricht 1024 digitalen Wertemöglichkeiten, welche sich im Bereich zwischen 0 und 1023 erstrecken. Da der Controller hier mit einer Betriebsspannung von 5V betrieben wird und diese auch als Referenzspannung des AD-Wandlers gilt, beträgt nach der oben dargestellten Umrechnungsformel die kleinste zu messende Spannung 4,88 mV für jeden digitalen Schritt 5000mV / 1024 = 4,88mV


                                    

(2)


Um nun den oben angenommenen Spannungswert von 120mV bei 12°C mit dem Arduino zu kriegen, muss der vom AD-Wandler ausgegebene Digitalwert nur noch mit den 4,88mV je Schritt multipliziert werden. Oder im Umkehrschluss wird bei 12°C und damit 120mV Ausgangsspannung des Temperatursensors ein digitaler Wert von überschlägig 25 je nach Toleranz erwartet. 120 mV / 4,88mV = 24,59

Projektdurchführung

Die Strecke zum Ziel dieser Arbeit entspricht den folgenden Arbeitsschritten:

Vorgenhensweise


Nach der hier definierten Philosophie muss die funktionsfähige Schaltung der Hardware-Bestandteile die grundsätzliche Voraussetzung zur Überleitung zu Software umfassen. Die funktionierende Software sollte dann auf die Hardware implementiert werden, um die Messdaten bekommen zu können.

Schaltung

Erster Arbeitsschritt ist die Beschaltung der Bauelemente. Zunächst soll der LM35-Sensor mit dem Arduino UNO Board verbunden werden. Daneben sollten noch einige zusätzliche Überprüfungseinheiten (LED, Widerstand)hinzugeschaltet werden. Es entsteht somit die auf der unteren Abbildung zu sehende Schaltung.


Hier sollen Daten aus dem LM35-Sensor gelesen weden, wobei die RGB-LED bei hohen Temperaturen (T > 37°) rot werden und bei mittelmäßigen Temperaturen (0° < T < 38°) grün sein muss. Nächster Schritt nach dem erfolgreichen Testen der Schaltung durch eine einfache Einspeisung mit einer Spannung von 5 V ist die Einstellung der Software.

Quellcode

Programmierung

Als endlicher Lösungsansatz zum Ablesen bzw. zum Umwandeln der wirklichen von dem LM35 gemessenen bzw. ermittelten Größe erfolgt die durch den unteren Code dargestellte Konstellation. Dabei werden zuallererst der Ausgang definiert sowie die Initialwerte für den Sensor und die Temperatur. Initialisiert wird ebenfalls ein Array mit neun Elemente. Damit sollen aufgrund präziserer Genauigkeit erst nach neun Messungen der Mittelwert bestimmt werden, welcher letztendlich als die zu betrachtende Temperatur gelten soll

Bibliotheken und Setup

// Variablen und Setup-Funktion


int Ausgangspannung = A0;
float LM35_Wert = 0;
float temperatur = 0;
double Temperatur[9];
double A_Temperatur;
double Messwert;

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


Die Anwendung der Variablen ermöglicht dann die Einstellung der gewünschten Funktionalitäten (Umwandlung der Größen), wie man im folgenden Programmabschnitt erkennen kann.

Loop-Funktion: Öffnen und Schließen des Spindes

// Loop-Funktion

void loop() 
{

// Messaufnahmen
LM35_Wert = analogRead(Ausgangspannung);

// Umwandlung in Grad Celcus der in Pin P0 gelesenen Spannung
Messwert = (5.0 * analogRead(Ausgangspannung) * 100.0) / 1024;
... 
for(int i = 0; i<10; i++)
{
Temperatur[i+1] = Temperatur[i] + Messwert;
...
}

// Approximative Temperatur
...
}

{  …… }


Bewertung des Sensordaten

Die Implementierung des geschriebenen Programms auf die Hardware läuft seriell, also über einen USB-Kabel. Ermittelt wird dann die gemessene Temperatur, wie im Video zu erkennen ist. Prinzipiell sollte man sich nie auf nur einen Messwert verlassen, wenn man beabsichtigt, temperaturabhängige Aktionen auszuführen. Hier bieten sich mehrere Messungen hintereinander an, aus denen dann ein Durchschnitt gebildet wird. Es macht auch Sinn, extreme „Ausreißer“ in einem Messzyklus zu eliminieren. Den LM35 kann man kalibrieren, wenn man mittels eines Referenzmessgerätes die Temperatur-Differenz ermittelt und diese Ungenauigkeit im Programmcode berücksichtigt. Als Referenzsensor wurde im Rahmen dieser Arbeit die subjektive Temperaturwahrnehmung des Autors berücksichtigt. Es kam dann immer noch der Vergleich zwischen der ausgegeben Temperatur und der nach dem Verfasser möglichen Zimmertemperatur. Die gelieferten Werte waren ohnehin sehr realitätsnah.

Zusammenfassung

In diesem Artikel wurde hauptsächlich das Thema Sensortechnik behandelt, wobei der LM35 PCTS in Betrieb genommen wurde. Als Grundlagen dienten hierzu die Kenntnisse aus den Vorlesungen GET I und II sowie Programmierung. Die Durchführung der praktischen Aufgabe stellte sich als Hilfe fürs beste Verständnis der in der der Aufgabe entsprechenden Lehrveranstaltung (Sensorik) angesprochenen Theorien. Dazu wurden beispielsweise neben der Verdeutlichung der Funktionsweise des ausgewählten Sensoren auch ein allgemeiner Überblick über Temperatursensoren verschaffen. Es wurde außerdem aufgrund der Anwendung von Mikrocontroller eine geeignete Vorbereitung auf die praxisnahe Programmierung ermöglicht; Thematik, die im Zuge des Mechatronik Studiums ebenfalls angesprochen wird.

YouTube Video

https://www.youtube.com/watch?v=UXZiVCBGf2s

Weblinks

Literatur

http://www.ti.com/lit/ds/symlink/lm35.pdf
http://www.roboter-im-unterricht.de/temperatursensor-lm-35-oder-tmp36.html


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