Komplexe Problemstellungen lösen

Temperaturwerte in Tabellenform erfassen

Facharbeit von S.Lange und P.Kreipe

Gliederung

1.

Thematik

2.

Lösungsweg

3.

Software

3.1.

Formel

3.2.

Programm

3.3.

Programmcode

4.

Probleme

Thematik

In diesem Halbjahr befassten wir uns mit dem Problem eine nichtelektrische Größe
in eine elektrische Spannung von 0-5 Volt umzuwandeln, diese dann auszulesen
und in einer Tabelle zu erfassen. Unsere nichtelektrische Größe war die Temperatur.

Im letzten Schuljahr hatten wir bereits einen Temperaturfühler erstellt welchen wir nun
für dieses Projekt verwenden können. Mit diesem Temperaturfühler, wandeln wir die Temperatur
in eine elektrische Größe von 0-5 Volt.

Nun benötigen wir nur noch die Schnittstelle, über die wir diese Größe zurückrechnen
und die Temperatur in einer Tabelle speichern können. Diese Schnittstelle war das Velleman K8055.

Nur war damit das Problem noch nicht behoben, da wir erst noch ein Programm erstellen mussten,
womit wir die Temperatur korrekt auslesen konnten und diese Temperatur dann in eine Tabelle schreiben
zulassen.

Beschreibung: Beschreibung: Grafik

Lösungsweg

Wir nahmen nun den Temperaturfühler, das Velleman K8055 und ein Notebook, welche wir
korrekt miteinander verbanden. Dazu starteten wir auf dem Notebook die Demo-Software des
Velleman K8055. Nun sahen wir, dass bei einem der Analogeingängen ein Signal ankam.
Dieses galt es nun so zu verändern, dass dies die momentane Temperatur anzeigt.
Die Software dazu mussten wir daher für unsere eigenen Zwecke verändern und umprogrammieren.

Software

Zur Erstellung der Software verwendeten wir Visualstudio 2010 und programmierten in
der Programmiersprache C++. Dazu machten wir uns Gedanken, wie wir die -20°C erreichen
konnten und wie die Berechnung aussehen muss, damit die Temperatur richtig ist.
Denn das Problem war, dass wir nur positive Werte auf dem Analogeingang kriegen und somit
die negativen Temperaturen nicht so einfach erreichen konnten. Beim Analogeingang standen uns
256 Schritte zur Verfügung und wir können von -20°C bis 43°C mit unserem Temperaturfühler messen.
Somit sah die Berechnungsformel wie folgt aus:


Beschreibung: Beschreibung: Formel


Zur Formel:

Die Formel setzt sich zusammen aus der "maximalen" Temperatur, dies sind 64, wir müssen hierbei
die -20° und 43° zusammenziehen welches 63 wäre, dabei dürfen wir die 0° nicht außer Acht lassen.
Somit sind wir bei 64. Diese 64 dividieren wir durch die maximale Schrittanzahl also durch 256.
Nun multiplizieren wir diese Konstante mit dem Eingangssignal und erhalten somit eine Temperatur,
welche um 20° zu hoch ist, daher müssen wir noch 20 von diesem Wert subtrahieren, damit wir auch
die -20° darstellen können. Die Formel sieht also wie folgt aus:


Beschreibung: Beschreibung: Formel2

Zum Programm

Das Programm reduzierten wir auf das nötigste, das ursprüngliche Programm sah so aus:


Beschreibung: Beschreibung: Originalprogramm


Wie man hier noch erkennen, kann, sind dort auch noch die digitalen Eingänge, die Outputs, der Outputtest und
noch einige andere Optionen vorhanden, welche wir für unsere Zwecke nicht benötigen. Daher machten wir uns nun
daran dieses Programm soweit zurecht zu schneiden, dass es für unsere Anforderungen genügt und auch funktioniert.
Somit sieht unser reduziertes Programm wie folgt aus:


Beschreibung: Beschreibung: Temperaturwerte


Unser Programm besteht nun noch aus der Kartenadresse SK5 und SK6, aus dem "Connect-Button", welcher erforderlich ist um das Board mit dem Notebook zu verbinden und den Analogwert auszulesen. Die Temperaturen
werden nun unterhalb als Zahlenwert angezeigt ohne die Balken. Außerdem wurden die Inputs und Outputs entfernt,
da wir diese für unser Vorhaben nicht benötigen.

Programmcode

Beschreibung: Beschreibung: Code1


Mit "int" wird ein Objekt, in diesem Fall Data1 und Data2, deklariert. Diese werden dann später
im Dritten Codeabschnitt verwendet und berechnet. "Float" hat genauso denselben Effekt, wie "int",
jedoch kann "float" auch ungerade Werte wie 20,35 ausgeben.

Beschreibung: Beschreibung: Code2


In diesem Teil wird der "maximalen Temperatur" der Wert 64 zugewiesen. Es handelt sich dabei wie im Vorfeld
schon näher erläutert um die Temperaturschritte in 1° Abständen, sprich von -20°C bis 43°C. Außerdem wird
der Schrittanzahl bzw. steps der Wert 256 zugeordnet, da wir über 256 mögliche Schritte im Programm verfügen,
sprich in der wir die Temperatur ausgeben können. Diese Schritte werden durch das Velleman Board auf 256 begrenzt.

Beschreibung: Beschreibung: Code3


Hier findet nun die Berechnung statt, nach der Formel, die oben näher erläutert wurde.

Probleme

Bei diesem Projekt sind wir auch auf einige Probleme bzw. Schwierigkeiten gestoßen. Ein Problem ist das ISERV-
System, welches auf den Schulrechnern läuft, wodurch wir nicht alle Berechtigungen haben, die erforderlich sind.
Somit griffen wir auf ein privates Notebook zurück, womit wir diese Problematik umgehen konnten. Eine Schwierigkeit
war hingegen das Programmieren. Zunächst mussten wir eine Entscheidung treffen, in welcher Sprache wir das Programm
erstellen und wie wir den Code so bearbeiten, damit dies auch funktioniert. Doch nach einigen Startschwierigkeiten,
entschieden wir uns für C++ und konnten das Programm letztendlich fertigstellen und auch dieses Problem beseitigen.
Weitere größere Probleme/Schwierigkeiten gab es nicht, auch wenn uns das Programmieren nicht so leicht viel. Mit
etwas Recherche und Eigenarbeit, wurde auch dies gelöst und wir können auf ein Ergebnis schauen.