Forum: Mikrocontroller und Digitale Elektronik Adruino mit Temperatursensor


von herb (Gast)


Lesenswert?

Moinzen,

hab vor ein paar Stunden gerade meinen Ardu ausgepackt, also alles sehr 
blutig.

Ich versuche gerade diesen Temperatursensor zu laufen zu bringen.
Bekomme jedoch komische Werte.
http://www.ebay.de/itm/261026313725?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649

Könnt ihr einen Blick auf dessen Schaltplan werfen?

Es ist ein Thermistor, müssten nicht R5 und R2 einen Teiler bilden 
anstelle parallel zu sein oder irre ich mich?

von herb (Gast)


Lesenswert?

ah das ist wohl vielleicht doch nicht der thermistor, sondern der ist 
nur im oberen Bild, dann wäre das doch richtig.

Irgendwie checke ich diesen Plan nicht so recht.

Wenn ich den Thermistor erwärme dann sinkt die Spannung am Analoginput 
anstatt zu steigen :-/

von herb (Gast)


Lesenswert?

Kann das sein das R und Thermistor vertauscht sind in der Reihenfolge im 
Gegensatz zum normalen Aufbau?

von Werner (Gast)


Lesenswert?

herb schrieb:
> Wenn ich den Thermistor erwärme dann sinkt die Spannung am Analoginput
> anstatt zu steigen :-/
Mach dir da nichts draus. Der Arduino hat einen µC, der das richten 
kann.

Der Schaltplan ist in der Tat ein Witz. Von dem LM393 sind bestimmt noch 
mehr Pins angeschlossen, als dort gezeichnet. Vermutlich besteht 
mindestens eine Gegenkopplungsverbindung zwischen INA- (2) und OUTA (1).

von Paul Baumann (Gast)


Lesenswert?

Das ist doch vollkommen richtig. Der LM393 ist ein Komparator, der hier
nur die LED ansteuert. Mit dem Potentiometer stellt man nur die Schalt-
schwelle ein. Der Schaltkreis ist überflüssig, wenn man nur das 
Analogsignal abgreifen will. Das holt man sich aus dem Verbindungspunkt 
von R1 und N1.

Einen Widerstand und einen Thermistor hättest Du in Deutschland auch
kaufen können und die wären billiger als 4,99 Dollar gewesen.

;-)

MfG Paul

von STK500-Besitzer (Gast)


Lesenswert?

Paul Baumann schrieb:
> Der LM393 ist ein Komparator, der hier nur die LED ansteuert.

Nicht ganz. "OUT" geht auch noch auf den P1.
Man sollte also den Schaltvorgang des Komparators auch erkennen können.

von herb (Gast)


Lesenswert?

jo der das Ganze hat einen Digi out and AO und beim Schwellwert leuchtet 
noch eine extra LED. Aber hast recht, das ist eigentlich ziemlich wayne 
:-)

Da der Aufbau ja falsch herum ist muss ich jetzt den Code ändern.

double Thermistor(int RawADC) {

long Resistance;  double Temp;
Resistance=((10240000/RawADC) - 10000);  // Assuming a 10k Thermistor. 
Calculation is actually: Resistance = (1024 * BalanceResistor/ADC) - 
BalanceResistor
Temp = log(Resistance);
Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp 
 Temp  Temp));
Temp = Temp - 273.15;



Dazu

Resistance = (1024 * BalanceResistor/ADC) - BalanceResistor
R1 = (1024 * R2/ADC)- R2

Aber Resistance und Balance Resistor sind vertauscht, richtig?
Also nach R2 auflösen.

Da komme ich dann auf

R2= (R1 * ADC) / (1024 - ADC)

Ist das richtig gedacht?

von herb (Gast)


Lesenswert?

sry für meine Noobness,
aber kann mir jmd als Bonus verraten warum bei

Temp = log((((1024 * 10000) / RawADC) - 10000));

was anderes rauskommt für Temp als bei

Temp = log((((10240000) / RawADC) - 10000));

für mich ist das das Gleiche :-/

von herb (Gast)


Angehängte Dateien:

Lesenswert?

Naja Lirum Larum

Ich habs eigentlich denke ich richtig gerechnet aber ich komme bei 
meinem Raum mit offenem Fenster auf 42°C was nicht sein kann.

Jetzt habe ich das nochmal anschaulich zum Nachvollziehen aufbereitet.

An meinem ADC lese ich 1,67V aus.

Das habe ich einer Sim nachgebaut: damit ich auf 1,67V komme muss der 
Thermistor gerade 5kOhm Widerstand haben, richtig?

Wäre die Thermistorschaltung normal aufgebaut (siehe zweite Schaltung) 
entspräche das dann 3,3V.

Aus einer Tabelle für 10K Thermi entnehme ich:
ADC  V                 R                 Temp             Temp2
677  3,305664063  5012,791728  41,93468981  41,5

Dh er zeigt mir gerade um die 42°C

Nach umbauen der Formeln und Spannungsteiler usw bin ich auch auf solche 
Werte gekommen.

Wie kann das denn sein? Kann mir bitte jmd weiterhelfen

von herb (Gast)


Lesenswert?

macht der LM393 vielleicht noch komische Sachen mit der Spannung?

von B. L. (b8limer)


Lesenswert?

herb schrieb:
> aber kann mir jmd als Bonus verraten warum bei
>
> Temp = log((((1024 * 10000) / RawADC) - 10000));
>
> was anderes rauskommt für Temp als bei
>
> Temp = log((((10240000) / RawADC) - 10000));
>
> für mich ist das das Gleiche :-/

Was für Datentypen sind den die einzelnen Komponenten? Jetzt müsste man 
halt C programmieren können ...

von herb (Gast)


Lesenswert?

Danke,
Ich habs nochmal anders gemacht, dann hats mit dem Rechnen geklappt.

Aber hast du eine Idee wieso da bei mir 42°C rauskommt mit der Erklärung 
die ich gegeben habe?

von ... (Gast)


Lesenswert?

herb schrieb:
> Temp = log((((10240000) / RawADC) - 10000));

Probier mal
  Temp = log((((10240000L) / RawADC) - 10000));
oder
  Temp = log((((10240000.0) / RawADC) - 10000));

Insgesamt ein wildes Kuddelmuddel von impliziten Typumwandlungen ;-)

von herb (Gast)


Lesenswert?

Danke, aber:
Temp = log((((10240000) / RawADC) - 10000));

so stehts ja im Beispielcode und ist wohl so korrekt.

Da 10240000 eine Zusammenfassung ist von 1024  10000 bzw 1024  
Balanceresistor und ich die Formel umstellen wollte habe ich einfach 
statt 1024 * 10000 geschrieben und habe mich gewundert das nicht mehr 
das Gleiche rauskommt.

Beschäftige mich ja erst seit gestern abend mit solchem Zeugs, dh keinen 
Plan von Datentypen.

Aber habs dann anders ja hinbekommen.

Viel wichtiger wäre mir jetzt das mit den 42°C :-/

von herb (Gast)


Lesenswert?

Ist vielleicht das entscheidende das es irgendein Thermistor ist der 
sich anders verhält als andere?
Oder gibts da nicht so große Unterschiede was eine Differenz von 20°C 
zur echten Temp erklären würde?

von herb (Gast)


Lesenswert?

wäre immer noch sehr froh wenn mir jmd weiterhelfen könnte :-/

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.