Temperatursensor mit Matlab/Simulink

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autor: Sergej Vogel
Betreuer: Prof. Schneider
Sensor: Lego Temperatursensor 9749


Aufgabenstellung

In dem Fach "Signalverarbeitende Systeme" aus dem Studiengang "Business and Systemsengineering" wurde jeder Student damit beauftragt, sich Semesterbegleitend mit einem Sensor auseinander zu setzen. Genauer gesagt, soll der Sensor mittels MATLAB/Simulink ausgelesen werden. Um die Signale Verwertbar zu machen, sollen folgende Schritte abgearbeitet werden:

Schritte zur Signalbearbeitung:

  1. Auswahl eines Primärsensors
    1. Wie funktioniert der Sensor?
    2. Welche Rohsignale liefert der Sensor?
  2. Signalvorverarbeitung
    1. Sollen Messwerte oder vorverarbeitete Daten übertragen werden?
    2. Wie lässt sich eine Vorverarbeitung umsetzen?
    3. Wird eine Kennlinie eingesetzt? Wenn ja, wie wird diese kalibriert?
  3. Analog-Digital-Umsetzer
    1. Wie werden die analogen Signale umgesetzt?
    2. Welcher ADU kommt zum Einsatz?
    3. Welche Gründe sprechen für diesen ADU? Alternativen?
  4. Bussystem
    1. Wird ein Bussystem zwischen Sensor und Mikrocontroller eingesetzt?
    2. Wenn ja, wie funktioniert dieses Bussystem?
  5. Digitale Signalverarbeitung
    1. Welche Verarbeitungsschritte sind notwendig?
    2. Welche Filter werden angewendet?
    3. Bestimmen Sie Auflösung, Empfindlichkeit und Messunsicherheit des Sensors.
  6. Darstellung der Ergebnisse
    1. Welche Fehler treten in welchem Verarbeitungsschritt auf?
    2. Stellen Sie die Messunsicherheit bzw. das Vertrauensintervall dar.


Primärsensor

Abb. 1: Temperatursensor

In diesem Kapitel soll der LEGO® MINDSTORMS® Temperatursensor (Artikel 9749) vorgestellt und erläutert werden (siehe Abb. 1).
Es handelt es sich um einen digitalen Sensor, der durch einen LEGO® MINDSTORMS® Education NXT (Software v.2.1) oder LEGO MINDSTORMS Education EV3 (EV3 Software) angesteuert und ausgelesen werden kann. Dabei findet die Kommunikation, zwischen dem Mikrocontroller und dem Sensor, über die I²C Schnittstelle statt. Der Einsatz des Sensors liegt in dem Temperaturbereich: -20°C bis 120°C bzw. -4°F - 248°F, wobei dieser erst kalibriert werden muss.









Anschluss an Arduino

In diesem Projekt wird der Temperatursensor durch einen Arduino angesteuert und ausgelesen. Die erhaltenen Rohdaten werden zur Weiterverarbeitung an Matlab gesendet. Da der Sensor eine I²C Schnittstelle besitzt und der Sensor nicht beschädigt werden soll, wird ein I²C Adapter genutzt.

Abb. 2: Arduinoanschluss Schaltplan
Abb. 3: Sensor-Arduino-Verbindung











I²C Schnittstelle

Der I²C Bus (Inter Integrated Circuit) wurde von Philips konzipiert und stellt heute den Standard für die Systemsteuerung dar. Der Bus basiert auf einem Master-Slave-Prinzip und hat zwei Leitungen zur Verfügung. Die beiden Leitungen heißen Signal Data (SDA) und Signal Clock (SCL). Wie die Namen schon sagen, wird die SDA Leitung für Datenübertragung genutzt, während die SCL Leitung den Takt angibt. Zu Anfang befinden sich die beiden Leitungen im Leerlauf und werden durch Pullupwiderstände auf hohem Pegel gehalten. Der Takt wird durch den Master erzeugt, kann aber vom Slave solange auf 0 gehalten werden, bis der Slave wieder bereit ist. Die Daten können in beide Richtungen byteweise übermittelt werden.

START und STOP

In diesem Fall stellt der Temperatursensor den Slave dar. Jeder Slave hat eine eigene 7-Bit große Adresse. Somit können theoretisch 128 Slaves gesteuert werden.

Messprinzip

→ zurück zum Hauptartikel: Signalverarbeitende Systeme