Temperatur Messen

Hallo,

ich bräuchte Hilfe bei einer Aufgabe.
Ich habe es hinbekommen Linear Temperatur zu messen aber es soll eine Funktion seien.
Wie geht das ?

Ein temperaturabhängiger Widerstand wird über einen Vorwiderstand an +5 V angeschlossen

Die Verbindung zwischen dem Vorwiderstand und dem temperaturabhängigen Widerstand
Wll'd am NanoESP an A2 angeschlossen.

Die eingebaute LED des NanoESP bei Raumtemperatur (Referenztemperatur 1) mit ca. 2 HZ'
Wird der temperaturabhängige Widerstand auf max. 37°C (Referenztemperatur 2)erwannt
soll die LED mit ca. 10 Hz. Blinken. Zwischen diesen Werten soll sich die Blmkfrequenz

kontinuierlich verändern (NTC Kennlinie zwischen den Referenzwerten als linear ansehen).
RV in Reihe mit dem NTC beträgt: .... .. 10kg

Was hindert dich daran, deine Aufgabe zu erfüllen?

ich habe es so weit geschafft das ich die Temperatur abfrage und sage:

größer 25 Grad = blinke schnell
kleiner 25 Grad = blinke langsam

aber es soll so seien mit einer Funktion und ich habe ewig rum probiert aber komme nicht weiter wie ich dort auch die Blinkfrequenz mit verknüpfen

"Programmieren" und "Probieren" sind zwei völlig verschiedene Dinge.

Mummelmann1012:
RV in Reihe mit dem NTC beträgt: .... .. 10kg

Du verwendest aber schwere Widerstände.

Wie hast du dir das vorgestellt, wie sollen wir helfen ?

Widerstand sind 10 kOhm

Ich soll es mit einer Funktion machen das wurde mir verraten aber da ich seid 3 Tagen erst mit dem Arduino arbeite fällt es mir schwer.

int TMP36 = A0; 
int sensorwert;
int temperatur = 0;
int t=500;
int LED=5; // steht für die LED

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


void loop() 
{
sensorwert=analogRead(TMP36); 
temperatur= map(sensorwert, 0, 410, -50, 150);
delay(t);
Serial.print(temperatur);
Serial.println(" Grad Celsius");

if (temperatur>=30) //Es wird eine IF-Bedingung erstellt: Wenn der Wert für die Temperatur über oder gleich 30 ist, dann…


Led high blinkt schnell oder Led low blinkt langsam
}
}

Ich habe ja 2 x und 2 y Werte.

Und die Formel y=mx+n

y möchte ich ausgeben und x sind die Messwerte.

Wo ist in Deinem Sketch ein NTC?
Grüße Uwe

Mummelmann1012:
Ich soll es mit einer Funktion machen das wurde mir verraten aber da ich seid 3 Tagen erst mit dem Arduino arbeite fällt es mir schwer.

So ohne Erfahrung und Wissen solltest du unbedingt die Beispiele der IDE und der Libraries durcharbeiten,
Das übt.

Hi

NTC ->
sensorwert=analogRead(TMP36); denk

delay(t) ??? :o

Gewöhne Dir ganz schnell delay() wieder ab, als Ersatz schaust Du Dir das Beispiel 'Blink_without_delay' aus der IDE an.
Ebenfalls lesenswert ist dazu die Nachtwächtererklärung hier im Forum (benutze bitte die Suche, ggf. packe ich den Link gleich aus dem Lesezeichen noch hier rein).

Weshalb hast Du 2 Graphen? Oder besser: Woher?
1x NTC, jupp, sehe ich ein.
Wer ist Nummer Zwei?

MfG

Und warum postest du gleich doppelt ?
Verstehe ich das richtig, wir sollen deine Hausaufgaben machen ?

Hi

Im englischen Bereich wurde dem TO mehr oder minder geraten, den Thread im deutschen Bereich zu erstellen (bzw. hatte ich Das eher so verstanden, daß Der hier her verschoben werden sollte/könnte).
Wo hast Du Parallel-Posts gefunden?
Dort wurde auch gesagt, daß (kA ob gerade speziell) dort eher weniger Hausaufgaben erledigt würden.
Sonst schon in die Richtung 'ich muß ... ', aber eigentlich nicht so, daß mir die Alarm-Glocken geläutet hätten.
(habe es mir aber nicht nehmen lassen, dem Poster mit den 'Hausaufgaben gehen da drüben aber gar nicht' ein Karma da zu lassen :wink: )

MfG

Genau, der Post im englischen Bereich war der zweite.
Und hier war klar zu erkennen, das dies Hausaufgaben sind, wie auch vom User angemerkt.

HotSystems:
Und warum postest du gleich doppelt ?
Verstehe ich das richtig, wir sollen deine Hausaufgaben machen ?

Hab den zweiten Tread gelöscht.
Grüße Uwe

NTCs sind nicht linear. Die Kennlinie ist logarithmisch. Man kann dann die Temperatur entweder über zwei Stützpunkte (d.h. Temperatur/Widerstands Paare) oder über die Materialkonstante B (siehe Datenblatt) und einem Stützpunkt berechnen:

“Programmieren” und “Probieren” sind zwei völlig verschiedene Dinge.

… aber Probieren hilft manchmal auch ein Stück weiter.

Ich kenne kein Programm, das nach dem ersten Hinschreiben fertig war.

Auch das Folgende ist nicht fertig:

ich habe es so weit geschafft das ich die Temperatur abfrage und sage:

größer 25 Grad = blinke schnell
kleiner 25 Grad = blinke langsam

aber es soll so seien mit einer Funktion und ich habe ewig rum probiert aber komme nicht weiter wie ich dort auch die Blinkfrequenz mit verknüpfen

const unsigned int LANGSAM = 2000;
const unsigned int SCHNELL = 300;
void loop () {
   int temperatur = leseTemperatur();
   if ( temperatur > 25 )
     blink(SCHNELL);
   if ( temperatur < 25 )
     blink (LANGSAM); 
}

Das ist deine Aufgabe, in C++ formuliert. Kann übrigens sein, dass die Aufgabe absichtlich so formuliert ist, dass erstmal unklar ist, was bei (temperatur == 25) passiert. Üblicherweise macht man es gern so, dass es erstmal so weiterblinkt wie vorher *) ( entweder SCHNELL oder LANGSAM ). Das kann das Programm oben so nicht. Mal abgesehen davon, dass die geforderten Funktionen zwar verwendet werden, aber noch nicht definiert sind. ( Deine Hausaufgabe )

Immerhin weisst du jetzt hoffentlich, wie Funktionen verwendet werden können.
Fehlt nur noch rauszukriegen, wie sie defineirt werden :wink:


*) So z.B. :

const unsigned int LANGSAM = 2000;
const unsigned int SCHNELL = 300;
unsigned int speed = LANGSAM;
void loop () {
   int temperatur = leseTemperatur();
   if ( temperatur > 25 )
     speed = SCHNELL;
   if ( temperatur < 25 )
     speed = LANGSAM;     
   blink (speed); 
}

Das wäre mit einer sogenannten Hysterese. (Wenn temperatur == 25, bleibt speed wie es ist)

Serenifly:
NTCs sind nicht linear. Die Kennlinie ist logarithmisch.

Das ist Mummelmann1012 bewußt (siehe ersten Beitrag). Er will sie mal der Einfachheit linear sehen.

Grüße Uwe

Es ist eine Übung die ich selber lösen möchte und keine Hausaufgabe. Es geht darum mal rein zu schnuppern... deswegen benötige ich ja Hilfe, habe keine Unterlagen wo ich es nach lesen kann.

Ich habe ja 2 Messwerte, bei Raumtemperatur und wenn der Finger daran ist. Die ich zur Berechnung benötige.

Meine Frage ist jetzt wie ich dies eingeben muss:

einmal die Formel mit Temperatur und gleichzeitig muss ich die Blinkfrequenz verknüpfen.

Mir drängt sich der Verdacht auf, hier könnte ein Mißverständnis vorliegen.

Mummelmann1012:
Ich habe ja 2 x und 2 y Werte.

Und die Formel y=mx+n

y möchte ich ausgeben und x sind die Messwerte.

Hier geht es um eine mathematische Funktion.

michael_x:
Immerhin weisst du jetzt hoffentlich, wie Funktionen verwendet werden können.

Hier geht es um eine Funktion in einer Programmiersprache.

@Mummelmann1012: Welche Variante benötigst Du?

Hi

Du hast die Funktion y=ax+b, wobei eine Variable die Temperatur ist und die andere Variable der ausgegebene Wert.
a und b hängen von dem Temp-Sensor ab.
Nun hast Du zwei Messwerte

  • Raumtemperatur
  • Finger drauf

Daraus müssten sich durch Umstellen die Unbekannten errechnen lassen - ist aber nun auch schon einige Jahre her, wo ich Das im Schlaf konnte (man vergisst so viel, obwohl ich Mathe sehr gern hatte - war 'einfach logisch' das Zeug).

Wobei mir bei ZWEI Unbekannten (a und b) mindestens DREI vorhandene Messwert-Paare nötig sein müssten - eine Unbekannte mit zwei Gleichungen, dann müssten bei zwei Unbekannten drei Gleichungen vorhanden sein - oder??

MfG