Forum: Mikrocontroller und Digitale Elektronik Auslesen und Speichern von Sensordaten


von Simon (Gast)


Lesenswert?

Hallo zusammen,

ich bin gerade Dabei einen Weg zu finden, wie ich die Temperatur mehrere 
Thermoelemente ab einer bestimmten Temperatur auslesen und abspeichern 
kann.

z.B.: Unter 20°C und über 80°C soll die Themperatur von 6 
Thermoelementen ausgelesen und abgespeichert werden.

Das auslesen der Thermoelemtene erfolgt mit folgendem Aufruf 
"Tw[i].readCelsius()"

Da mir dafür leider die nötigen Programmierkenntnisse Fehlen, hoffe ich 
hier auf ein wenig Hilfe.

Danke schon mal im voraus

Gruß Simon

von A. S. (Gast)


Lesenswert?

Eine Hausaufgabe ohne
- Aufgabenstellung
- Programmiersprache
- Umgebung / HW
- erste Gedanken, Fragen, Probleme

Sorry, es ist kein Ansatz erkennbar.

von Simon (Gast)


Lesenswert?

A. S. schrieb:
> - Aufgabenstellung
> - Programmiersprache
> - Umgebung / HW
> - erste Gedanken, Fragen, Probleme


Aufgabenstellung: Es sollen mehrere Thermoelemente + MAX31855 mit einem 
Arduino UNO ausgelesen werden. Diese Werte sollen allerdings nur ab 
einem Bestimmten Temperaturbereich erfasst werden. Ab diesem Bereich 
sollen pro Fühler ca 10 Messwerte erfasst und abgespeichert.

Programmiersprache: C

HW: Arduino UNO + MAX31855 + Thermoelemente

Problem: Ich bin zwar in der Lage die Temperatur aller Thermoelemente 
auszulesen, jedoch weiß ich nicht wie ich dies nur ab einem bestimmten 
Bereiche machen kann und gleichzeitig diese Werte abspeichere.

von Sebastian R. (sebastian_r569)


Lesenswert?

Simon schrieb:
> Problem: Ich bin zwar in der Lage die Temperatur aller Thermoelemente
> auszulesen, jedoch weiß ich nicht wie ich dies nur ab einem bestimmten
> Bereiche machen kann und gleichzeitig diese Werte abspeichere.

Temperatur zyklisch auslesen.
Schauen, ob die Temperatur im Bereich lieg
Wenn ja, abspeichern.

Wohin soll denn gespeichert werden? Eine SD-Karte würde sich vermutlich 
anbieten. Und wie sieht das mit einem Zeitstempel aus, damit man weiß, 
wann die Temperatur aufgetreten ist? Gibt es eine RTC?

von Simon (Gast)


Lesenswert?

Sebastian R. schrieb:
> Temperatur zyklisch auslesen.
> Schauen, ob die Temperatur im Bereich lieg
> Wenn ja, abspeichern.
>
> Wohin soll denn gespeichert werden? Eine SD-Karte würde sich vermutlich
> anbieten. Und wie sieht das mit einem Zeitstempel aus, damit man weiß,
> wann die Temperatur aufgetreten ist? Gibt es eine RTC?


Ok, ich möchte die Werte eig nur in einen Buffer schreiben/abspeichern, 
damit ich sie später weiterverwenden kann (Temperatur abgleich). Jedoch 
weiß ich nicht wie ich dies Programmieren soll. Zeitstempel werden keine 
benötigt.

von Hans (Gast)


Lesenswert?

Dann mach doch mal einen Versuch. Es kann ja auch gerne Pseudocode sein. 
Und es wurde ja schon alles genannt:

Temperatur zyklisch auslesen.                -> Schleife?
Schauen, ob die Temperatur im Bereich lieg   -> if/else?
Wenn ja, abspeichern.

von Joachim (Gast)


Lesenswert?

Simon schrieb:
> Aufgabenstellung: Es sollen mehrere Thermoelemente + MAX31855 mit einem
> Arduino UNO ausgelesen werden. Diese Werte sollen allerdings nur ab
> einem Bestimmten Temperaturbereich erfasst werden. Ab diesem Bereich
> sollen pro Fühler ca 10 Messwerte erfasst und abgespeichert.

Und wenn nach der Erfassung der 10 Messwerte die Temperatur immer noch 
im relevanten Temperaturbereich liegt, dann geht das Spiel von vorne los 
und es werden direkt wieder 10 Messwerte gespeichert?

> Problem: Ich bin zwar in der Lage die Temperatur aller Thermoelemente
> auszulesen, jedoch weiß ich nicht wie ich dies nur ab einem bestimmten
> Bereiche machen kann und gleichzeitig diese Werte abspeichere.

Auslesen musst Du die Temperatur doch so oder so, weil Du sonst ja gar 
nicht weisst, ob die Temperatur gerade im für Dich relevanten Bereich 
ist.
Zumindest die Temperatur von einem Thermoelement. Allerdings gibt es ja 
eh 6 Thermoelemente und somit nicht nur eine, sondern gleichzeitig sechs 
verschiedene Temperaturen. Es ist also nicht ganz klar, was genau das 
Speichern der Messwerte überhaupt auslösen soll: Wenn irgendeine der von 
den sechs Thermoelementen gemessenen Temperaturen im relevanten Bereich 
liegt? Erst wenn alle sechs Temperaturen im relevanten Bereich liegen? 
Oder gibt es unter den sechs Thermoelementen ein spezielles, das alleine 
dafür herangezogen wird?

von Simon (Gast)


Lesenswert?

> Es ist also nicht ganz klar, was genau das
> Speichern der Messwerte überhaupt auslösen soll: Wenn irgendeine der von
> den sechs Thermoelementen gemessenen Temperaturen im relevanten Bereich
> liegt? Erst wenn alle sechs Temperaturen im relevanten Bereich liegen?
> Oder gibt es unter den sechs Thermoelementen ein spezielles, das alleine
> dafür herangezogen wird?

Mein Fehler, ich habe vergessen zu erwähnen, dass einer der Fühler die 
Referenz ist, sobald sich dieser in dem bestimmten Bereich befindet 
werden die Messwerte der anderen Fühler erfasst, die erfassten Werte 
werde für die Berechnung des Offsets der einzelnen Fühler benötigt.

von Axel S. (a-za-z0-9)


Lesenswert?

Simon schrieb:
> Es sollen mehrere Thermoelemente + MAX31855 mit einem
> Arduino UNO ausgelesen werden. Diese Werte sollen allerdings nur ab
> einem Bestimmten Temperaturbereich erfasst werden

Wenn du auch nur 3 Sekunden über diesen Satz nachgedacht hättest, dann 
wäre dir aufgefallen, daß das Blödsinn ist. Wenn du die Sensoren nicht 
abfragst, wie willst du dann wissen, ob die Temperatur innerhalb eines 
gewissen Bereichs liegt?

Natürlich mußt du die Daten kontinuierlich erfassen. Aber du willst 
sie möglicherweise nicht jedes Mal abspeichern.

Simon schrieb:
> ich möchte die Werte eig nur in einen Buffer schreiben/abspeichern,
> damit ich sie später weiterverwenden kann (Temperatur abgleich).

Puffer? Wie groß? Oder nur für einen Datensatz?

> Jedoch weiß ich nicht wie ich dies Programmieren soll.

Logisch. Du kannst ja noch nicht mal die Aufgabenstellung vollständig 
hinschreiben. Wie willst du da einem Computer beibringen, wie er das 
lösen soll?

von Stefan F. (Gast)


Lesenswert?

Simon schrieb:
> jedoch weiß ich nicht wie ich dies nur ab einem bestimmten
> Bereiche machen kann

Dafür gibt es die Vergleichs-Operatoren:
1
> Größer als
2
< Kleiner als

> und gleichzeitig diese Werte abspeichere.

Gleichzeitig speichern wäre unnötig kompliziert bis sinnlos. Speichere 
die Werte lieber ab, nach ein Vergleich wahr geworden ist. Dazu brauchst 
du Ausdrücke wie
1
if temp > 80) {
2
   speichern(temp);
3
}

> Ok, ich möchte die Werte eig nur in einen Buffer schreiben/abspeichern,

Was ist denn ein "Buffer"? Zum, Beispiel Ein Array von Werten, mit einer 
Angabe, wie viele Werte ausgefüllt sind. Etwa:
1
int messwerte[100];
2
int gemessen=0;
3
4
void speichern(int temperatur)
5
{
6
    messwerte[gemessen]=temperatur;
7
    gemessen=gemessen+1;
8
}

Jetzt bist du an der Reihe, es zu versuchen. Zeige dann deinen Ansatz 
und stelle konkrete Fragen dazu.

von Simon (Gast)


Lesenswert?

Danke, dass sollte mir weiterhelfen können.

von Cyblord -. (cyblord)


Lesenswert?

Simon schrieb:
> Danke, dass sollte mir weiterhelfen können.

Das bezweifle ich mal schwer

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.