Thermometer mit R8C13

Gast #2533451
Lesenswert?

Hallo

Ich möchte mir ein digitales Thermometer mit dem R8C13 basteln.

Die Temperatur wird mittels LM335 (10mV/°C) in eine Spannung umgesetzt 
und am AN6 (Pin31) dem µC zugeführt.

Ausgegeben wird die Temperatur mittels 3 großen 7-Segment-Anzeigen.

Mit den Anzeigen klappt das auch schon ganz gut. Blos die 
temperaturabhängige Spannung schwankt fürchterlich.

Wenn ich zB die 5V Versorgungsspannung messe, so bleibt die recht stabil 
und wird auch so stabil angezeigt.

Bei der Umrechnung auf die Temperatur muss also das faule Ei sein - ich 
komm blos nicht drauf.


Die Umrechnung sieht so aus:

####################

float u; // Spannung
float t; // Temperatur

u = ad_in(6);
u = u / 1023.0 * 5000.0;
t = u - 2730; // 2.73V = 0°C

####################

In weiterer Folge wird t etwa einmal pro Sekunde an die 7-Seg-Anzeigen 
ausgegeben.

Leider springt die Anzeige bis zu 5°C pro Messung auf und ab. Sie 
pendelt also bei Zimmertempertur zwischen 20 und 25°C.


Hat jemand einen Tipp ?

:-)
Gast #2533661
Lesenswert?

Der R8 hat einen internen A/D Wandler. Der benötigt eine stabile 
Referenz. Der Analogteil im IC hat eine eigene Spannungsversorgung. Die 
muss sehr stabil sein. Schau bei Renesas in das Datenblatt und 
application notes für Hinweise.
Gast #2533707
Lesenswert?

Ja ich weis.

Die analoge Versorgung ist hier gleich der Hauptversorgung. Also die 
"normale" und die analoge Versorgungsspannung wird über EINEN 7805 
hergestellt. Zusätzlich ist noch direkt am µC jeweils ein 100nF-Kerko.

Habe auch schon versucht zusätzlich 1000µF auf die Ub zu legen - aber 
auch keine Wirkung ersichtlich.

Ich denke vielmehr, dass es an der "Rechnung", also an der Software 
liegt.

lg
Gast #2533739
Lesenswert?

Na ja, rechnen wird er immer gleich. Schau dir die raw Daten - also 
direkt die AD Werte - an. Ich schätze, die schwanken bereits. Hängt die 
Anzeige auch an dem 7805? Zum Zeitpunkt der AD Wandlung bruacht es eine 
absolut stabile AD Versorung und Referenz.

Mmmhhh.... wie löst der AD Wandler auf? Also wieviel mV/digit?
Gast #2533758
Lesenswert?

>> Hängt die Anzeige auch an dem 7805?

Nein die wird zZ. aus einer anderen Spannungsquelle versort (15V). Der 
GND der 5V und der GND der 15V ist aber verbunden.


Mmmhhh.... wie löst der AD Wandler auf? Also wieviel mV/digit?

Wenn ich das wüsste. Es schein als wären es 5mV, das die Kommastelle der 
Temp-Anzeige immer nur 0 oder 5 anzeigt.

Wie bekomme ich die Auflösung höher ?
Die Anzeige sollte 0.1°C auflösen - also auf 1mV.

lg
Gast #2533787
Lesenswert?

Der RC8 hat - glaube ich - nur 8 Bit. Dann wären das so um die 
20mV/digit und bei dir ca. 2°C. Wenn der AD Wandler um 2 digit wackelt, 
passt deine Beobachtung.

Du kommst am Datenblatt nicht vorbei. Auf geht es!
Gast #2533852
Lesenswert?

Deine Rechenformel ist ok, du ver(sch)wendest zwar
floating point, aber das kann der uC ja und du darfst
wohl die Leistung verschwenden.


Ein 7805 ist (mit -1.1mV/GradC) fast so temperaturabhängig
wie ein LM335 (10mV/GradC),
als Spannungsversorgung eines Thermometers taugt der
billigste der billigen Spannungsregler also nicht.

EIn LP2951-5 wäre präziser, aber normalerweise verwendet man
Referenzspannungsquellen, damit die absolute Genauigkeit
der Spannung deutlich besser wäre als 5mV (ergibt immerhin
eine Genauigkeit besser 1 GradC). Dummerweise sind solche
absolut genauen Referenzspannungsquellen teuer und schwer
beschaffbar, MC1403 nur 25mV, LP2951 nur 36mV, REF5050 5mV,
bingo, Reichelt Fehlanzeige, der hat nur die REF02 mit 15mV.

Da also absolut genaue Referenzspannungen sowieso zu schwer
zu bekommen sind, nimm die eingebaute, die ist zwar noch
ungenauer (1.19V bis 1.49V), du musst dann nur mit einer
bekannten Temperatur dein Thermometer kalibrieren, aber
immer 1000mal stabiler als deine 5V Versorgungsspannung die
du derzeit verwendest,

Allerdings kann sie keine 2.93V messen.

Nimmst du einen Spannungsteiler 1:3 und willst 2.73V (0 GradC)
bis 3.43V (70 GradC, Temperaturbereich des R8C) messen,
reicht dein A/D-Wandler nur von 795 bis 1000, also 200 Schritte
oder 0.35 GradC pro Schritt weit. Du müsstet die Spannung des
Sensors verstärken mit einem externen Operationsverstärker um
auf 0.1 GradC Auflösung zu kommen.

Alles in allem also recht ungünstig. Ich weiß nicht, ob man
dem R8C eine höhere untere Referenzspannung RefLO zuführen
kann (AVss also so bei 2.5V), vermutlich aber nicht.

Also bleibt dir nur ein externer OpAmp mit dem du das
alaogsignal des LM335 auf den ganzen Messbeerich von
0V (für 0 GradC) und 1.1V (für 70 GradC oder was du willst)
verstärkst.

Ein anderer Trick ist es, das Signal absichtlich mit Rauschen
zu unterlegen und im uC dann Mittelwerte mit höherer
Auflösung zu bilden, aber bei schon 3 digit absolute Ungenauigkeit
des A/D-Wandlers sind dein 0.1 GradC Auflösung dann sehr grosse
Schätzwerte.
Gast #2533857
Lesenswert?

Jochen schrieb:
> Wie würde der Quellcode bei Verwendung des DS18B20 aussehen ?

Ja, wie, was denn???

Dir ist also egal, wie du an die Werte kommst? Dann kauf doch gleich 
eine fertige Lösung beim Poolin oder Paerl oder sonst wo.

Wie sehen die Rohdaten des AD Wandlers beim RC8 aus? Sind die stabil 
oder nicht? Post die Werte mal.
Gast #2533869
Lesenswert?

Danke für deine Worte !

Heist also:
Ein Thermometer mit 0.1° Auflösung ist mit dem R8C13 schwer bis garnicht 
realisierbar.

Schade nur, weil ich bereits mit dem R8C eine Uhr gebaut habe. Und nun 
sollte im selben Design noch ein Thermometer hinzukommen.

lg
Angehängte Dateien:
Gast #2533943
Lesenswert?

> Was sind den Rohdaten ? Wo finde ich diese ? Was soll ich Posten ?

Hm...was ist denn in deinem Gehirn vorgegangen als du die Routine 
geschrieben hast um den AD-Wandler auszulesen? Du wirst doch wohl noch 
wissen wo du die Daten aus dem Register des AD-Wandlers kopierst.
Du koenntest auch dort mal in deine Variable direkt nach dem Auslesen 
einen festen Wert in die Hilfsvariable schreiben. Dann sollte deine 
Anzeige einen festen Wert anzeigen. Machst du das dann mit 2-3 Werten an 
den grenzen deines erwarteten Temperaturbereich hast du gleich gelernt 
wie du deinen Algorythmus testen kannst.

Wenn der Wert dann stabil sein sollte gibt es nur noch zwei 
Moeglichkeiten. Entweder die AD-Wandlung selber ist ungenau weil der 
Spannungswert rauscht, oder du wartest nicht bis der AD-Wandler mit der 
Wandlung fertig ist.

> Ein Thermometer mit 0.1° Auflösung ist mit dem R8C13 schwer bis
> garnicht realisierbar.

Ein Thermometer mit 0.1 Grad Aufloesung kannst du einfach durch rechnen 
bekommen. Solltest du dagegen eine Genauigkeit von 0.1Grad erwarten so 
ist das natuerlich mit dem R8C13 genauso einfach loesbar wie mit jedem 
anderen Controller, aber es stellt natuerlich erhoehte Anforderungen an 
deine Schaltung und die Kalibrierung der Temperatur. Das ist fuer 
jemanden der noch auf dem Level 'blinkende LED' ist, nicht machbar. Aber 
das macht nichts da kaeufliche Thermometer da auch luegen wenn sie nicht 
sehr sehr teuer sind.

Olaf
Gast #2533948
Lesenswert?

> Mit
> u = ad_in(6);
> liest du den AD Wandler aus

Noe, damit ruft er eine Funktion auf die es macht.

Man muss bei diesem schweren Fall hier vermuten das er sie einfach 
woanders abgeschrieben hat und diese Funktion aus dem zusammenhang 
gerissen wurde. Wenn man den AD-Wandler auslesen sollte wenn er noch 
wandelt dann kann das auch zu interessanten Ergebnissen fuehren.

Olaf
Gast #2533966
Lesenswert?

Olaf schrieb:
> Man muss bei diesem schweren Fall hier vermuten das er sie einfach
> woanders abgeschrieben hat und diese Funktion aus dem zusammenhang
> gerissen wurde. Wenn man den AD-Wandler auslesen sollte wenn er noch
> wandelt dann kann das auch zu interessanten Ergebnissen fuehren.

Immer locker aus der Hüfte ...

Es ist doch völlig egal, wie der Wert dahin kommt. Es bleibt die Frage:
Ist der Wert vor der Berechung stabil, oder nicht?
Gast #2533994
Lesenswert?

> Olaf, entspann dich mal.

Bin ich doch. Aber wenn man einem Fall maximaler Unwissenheit die 
Wuermer einzeln aus der Nase ziehen soll weil der Source nur in Teilen 
zu sehen ist, dann muss man sich halt mit Sarkasmus retten um nicht an 
der boesen Welt zu verzweifeln. .-)

Olaf (jetzt erstmal einen beruhigenden Tee trinken geh)
Gast #2534097
Lesenswert?

Hallo Olaf

Also wenn ich einen festen Wert angebe, dann steht der auch bombenfest 
und "wackelt" nicht. Ist ja auch klar, denn dann messe ich ja nichts.

Die Funktion des AD-Wandlers hab ich schon so wie sie ist aus einem Bsp. 
genommen - sie sieht so aus:
1
unsigned int ad_in(unsigned char ch)
2
{
3
    adcon0 = 0x80 + ch;     // Port P0 group 
4
    adcon1 = 0x28;          // 10-bit mode 
5
    adst = 1;               // Conversion start 
6
    while(adst == 1){}      // Wait A/D conversion 
7
    return ad;              // AD value 
8
}

lg
Gast #2534137
Lesenswert?

> Ein Thermometer mit 0.1° Auflösung ist mit dem R8C13
> schwer bis garnicht realisierbar.

Du benötigst, nebem den R8C mit Display und LM335,
einen OpAmp wie LM358.

Schwer bis gar nicht würde ich das nicht nennen,
aber viele Leute stehen auf Kriegsfuß mit Analogtechnik.

Für die ist das dann schwer bis gar nicht realisierbar.

Woran man wieder erkennen kann, daß Grundlagenkenntnisse
in Analogtechnik gar nicht so verkehrt wären.

VRef ---|+\
        |  >--+--+---+---------- ARef
      +-|-/   |  |   R3
      |       |  R1  +--|+\
      +-------+  |   |  |  >-+-- A/D
                 +---(--|-/  R4
                 |   |       |
                 +---(-------+
                 |   |
                 R2 LM335
                 |   |
                  GND
Gast #2534142
Lesenswert?

>> Wo gibst Du einen festen Wert an?

Na da wo die Rechnung steht:
1
u = ad_in(6);
2
u = u / 1023 * 5000;
3
t = u - 2730;
4
t = 179; // nun wird t an die Ausgabe übergeben



>> Speichere ein paar der Rückgabewerte von ad_in(6) und schaue, ob die
>> Werte gleich sind.

Wo/Wie soll ich die den Speichern und schauen ?
Gast #2534156
Lesenswert?

VRef ---|+\
        |  >--+--+---+---------- ARef
      +-|-/   |  |   R3
      |       |  R1  +--|+\
      +-------+  |   |  |  >-+-- A/D
                 +---(--|-/  R4
                 |   |       |
                 +---(-------+
                 |   |
                 R2 LM335
                 |   |
                  GND


Mit dieser Art "geschreibsl" blick ich ja schon gar nicht durch :-(

Ich gehe mal davon aus, das es zwei Opamps sind. Der erste ein 
Impedanzwandler, der eine Referenzspannung niederohmig macht.

Der zweite OP vergleicht scheinbar die gemessene Spannung (Temperatur) 
mit einem Spannungsteiler (mit Hysterese?).

Der Ausgang des zweiten OPs geht zum AD-Eingang des µC.

Was wird aber als Referenzspannung (VRef) angelegt?
Was ist ARef ?
Gast #2534167
Lesenswert?

Stimmt doch alles.

> Was wird aber als Referenzspannung (VRef) angelegt?

Eine brauchbar stabile Referenzspannung aus einem der
obejn genannten Spannungsreferenzen.
Falls es möglich ist, die Referenz des R8C auf einen
Ausgang geschaltet (hab ich aber im Datenblatt nicht
gefunden).

> Was ist ARef ?

Der ARef Eingang des R8C, falls eine externe Refeenz
verwendet wurde.
Gast #2534181
Lesenswert?

>> Wo/Wie soll ich die den Speichern und schauen ?

> Im Debugger oder Monitor Deiner Entwicklungsumgebung.
Der Debugger läuft bei mir nicht (Win7/32).

> Notfalls geht auch Deine Anzeige:
Anzeigen ja - wo sonst, aber speichern ???
1
t = ad_in(6);
2
// t anzeigen

>> Die Messungen sollten nicht zu schnell erfolgen, sonst sieht man ja
>> nichts.

Die 7-Seg-Anzeige flimmert nicht - da sieht man alles, nur der Messwert 
"wackelt".
Gast #2534186
Lesenswert?

> Was wird aber als Referenzspannung (VRef) angelegt?

>> Eine brauchbar stabile Referenzspannung aus einem der
>> obejn genannten Spannungsreferenzen.
>> Falls es möglich ist, die Referenz des R8C auf einen
>> Ausgang geschaltet (hab ich aber im Datenblatt nicht
>> gefunden).
Du meinst die normale Versorgungsspannung des R8C ?

> Was ist ARef ?

Der ARef Eingang des R8C, falls eine externe Refeenz
verwendet wurde.
Die analoge Versorgungsspannung ist gleich die "normale" 
Versorgungsspannung.

So müsste VRef und ARef das gleiche sein - richtig ?
Gast #2534205
Lesenswert?

Jochen schrieb:
> Anzeigen ja - wo sonst, aber speichern ???

Nocheinmal langsam:
Beim Ausgangspost hast Du vermutet, dass Deine Berechnung nicht stimmt. 
Die "Experten" hier sind eher der Meinung, dass der AD Wandler bereits 
wacklige Werte liefert. Eine einfache Möglichkeit dies zu prüfen, ist 
direkt die AD Wandler Werte zu betrachten. Also machst Du es, wie 
beschrieben.
anstatt
u = ad_in(6);
u = u / 1023 * 5000;
t = u - 2730;
t = 179; // nun wird t an die Ausgabe übergeben

machst Du
t = ad_in(6);  // t an Anzeige übergeben

Auf der Anzeige siehst du jetzt die Rohdaten und kannst deren Stabilität 
kontollieren.
Gast #2534525
Lesenswert?

>> machst Du
>> t = ad_in(6);  // t an Anzeige übergeben

>> Auf der Anzeige siehst du jetzt die Rohdaten und kannst deren Stabilität
>> kontollieren.


Jetzt weis ich erstmal was Rohdaten sind :-)
Gesagt, getan: Die Anzeige "wackelt" genauso.
Gast #2534527
Lesenswert?

> t = ad_in(6);  // t an Anzeige übergeben
> Die Anzeige "wackelt" genauso.


Richtigstellung:
"Genauso" stimmt nicht ganz - sorry:
Die Anzeige wechselt nur um ein, zwei oder auch mal drei Digits. Das 
könnte also aus einer leichten Temperaturschwankung entstehen. Sie 
bleibt auch mal für ein paar Messungen unverändert.
Jedenfalls deutlich stabiler als zuvor.
Gast #2534763
Lesenswert?

> Ist das so OK ?

Nicht ganz.

Die 5V aus dem 7805 reichen dem LM358 nicht als Versorgungsspannung um 
seinerseits 5V ausgeben zu können. Du müsstest dem LM358 mit 15V 
versorgen.

Da sollte man dann aufpassen, daß nicht mehr als 5V an die Eingänge des 
uC kommen (z.B. ein 10k Widerstand zwischen A2 und den uC-Eingang)

Und die Widerstandswerte R4 R5 R7 müssen natürlich passend berechnet 
werden, um deinen gewünschten Temperaturbereich, den du natürlich 
niemandem erzählt hast, auf volle 0V bis 5V auszudehnen.

Letztlich sind die 5V des TL431 sogar so belastbar, daß man A1 weglassen 
könnte. Da man aber A2 braucht, spart das kein Bauteil.
Gast #2534818
Lesenswert?

> Und die Widerstandswerte R4 R5 R7 müssen natürlich passend berechnet
> werden, um deinen gewünschten Temperaturbereich, den du natürlich
> niemandem erzählt hast, auf volle 0V bis 5V auszudehnen.
Hatte ich das nicht ?
Also von -30°C bis +60°C wäre wünschenswert.
Wie berechnet man die Widerstände ?


> Letztlich sind die 5V des TL431 sogar so belastbar, daß man A1 weglassen
> könnte.
Das dachte ich mir auch schon.


> Da man aber A2 braucht, spart das kein Bauteil.
Man könnte aber einen Einzel-OP verwenden. Hätte noch TS321 im SOT23-5 
vorrätig. Der würde mir schon aus platzgründen gut gefallen.
Gast #2534863
Lesenswert?

Nun habe ich mal mit dem TL431 eine stabile Referenzspannung aufgebaut 
und diese an Aref des µC angelegt und auch den LM335 damit versorgt. 
Erstmal ohne Opamp.

Nun schwankt die Anzeige nicht mehr um 5°C sondern um gut 15°C.
Auch die Rohdaten sind deutlich unstabiler.

Was läuft hier falsch ???
Gast #2534885
Lesenswert?

Jetzt habe ich Referenzspannung des TL431 nochmal zusätzlich mit 100µF 
stabilisiert - und jetzt ist (fast) Ruhe eingekehrt. Die Anzeig wechselt 
nur noch um 0.5°C mal nach oben, mal nach unten. Damit kann ich leben. 
Vermutlich ein "Steckplatten-Problem" ?!

Was aber noch garnicht vertretbar ist, ist die Tatsache, dass die 
Anzeige um gut 10°C zuviel anzeigt. Der LM335 sollte doch einigermaßen 
genau sein. Nur wird aber um gut 10°C mehr Raumtemperatur angezeigt als 
tatsächlich herscht. Natürlich könnte ich das per µC rausrechnen, ob das 
aber die richtige Lösung ist ?
Die Genauigkeit sollte schon in vertetbaren Grenzen liegen. So etwa +/- 
1°C Abweichung würde ich für vertretbar halten.

Ach ja, die Auflösung von 0.5°C gefällt mir auch nicht wirklich. Eine 
Auflösung von 0.1°C würde ich anstreben.
Gast #2534893
Lesenswert?

> Also von -30°C bis +60°C wäre wünschenswert.
> Wie berechnet man die Widerstände ?

-30 = 2.43V -> 0V
+60 = 3.33V -> 5V
Schnittpunkt der Geraden bei 2.97V, Spannungsteiler
der 5V könnte man also aus 8k2 und 12k aufbauen,
er hat am Knotenpunkt 4871.28 Ohm Quellwiderstand,
Verstärkung 5.5, also 4.5 mal grösseren Widerstand
für R7, also 21.920 Ohm = 22k.

Es fliessen dann bei soll=0V am Ausgang
180uA aus den +5V in den Ausgang des TS321,
das sind mehr als die 50uA die der TS321 so nah an 0V
noch abfliessen lassen kann, er kommt kaum unter 0.7V.

Also R4=82k, R6=120k, R7=220k geht runter bis 0.05V
und hat einen Eingangsfehler bei 500nA Eingangsoffsetstrom
von 20mV, den man zum guten Teil wegkalibriert.

Du siehst, 1% genaue Widerstände führen zu Abweichungen,
die man eigentlich schon bei der Rechenformel zur Anzeige
der Temperaturen mit einrechnen müsste.

Daher ist es notwendig das Thermometer hinterher zu kalibrieren,
was man wegen des bis zu 9 GradC ungenauen LM335
und 1% ungenauen TL431 sowieso tun muß.

Ein kleines bischen besser weil symmetrischer wird es,
wenn du in die +-Eingangsleitung des OpAmps noch einen
39k Widerstand einbaust, dann sehen beide Eingänge dieselbe
Quellimpedanz und unterscheiden sich nur noch um 150nA
statt 500nA, also unter 0.5 GradC statt 2 GradC.

Ein TL431B und ein LM235A und 0.5% Widerstände würde vielleicht
gerade eben ein abgleichfreies Thermometer ergeben,
je nach deinen wirklichen Genauigkeitsanforderungen.

A1 weglassen. Wenn du keinen 10k Widerstand vor den ARef-Eingang
baust (weil das vielleicht laut Datenblatt nicht zulässig ist,
man zumindest auch 100nF dahinter nach Masse legen müsste),
dann solltest du eine BAT49 Schottky-Diode von C2 nach C3 legen,
damit 5VRef nie mehr als 0.5V höher werden kann als VCC des R8C.
Gast #2535146
Lesenswert?

Jochen schrieb:
> jetzt ist (fast) Ruhe eingekehrt. Die Anzeig wechselt
> nur noch um 0.5°C mal nach oben, mal nach unten. Damit kann ich leben.

Gratuliere!
Da wackelt nur noch das letzte Bit:
5V Ref bei 10Bit AD Wandler ergibt ca. 5mV/digit
bei 10mV/°K Sensor ergeben sich 5mV = 0.5°K Auflösung.
Die Anzeige kann sich also nur in ca. 0.5° Schritten ändern. Um das zu 
ändern, muss der AD Wandler höher auflösen (geht ja nicht) oder die 
Eingangssignaländerung (jetzt noch 10mV/°K) vergrößert werden. Da bist 
Du mit MaWin dran.

Ach ja, die Anzeige läßt sich durch Mittelwertbildung über 3 - 5 
Messungen beruhigen.
Gast #2535167
Lesenswert?

> Sollte ich irgendwo einen Trimmer vorsehen, oder wo/wie kann ich
> ansonst kalibrieren ?

Du hast einen Microcontroller und der kann Rechnen. Und er hat internes 
Dataflash um kalibrierwerte abzulegen. Wenn du also irgendwo an deiner 
Schaltung einen Taster hast dann koenntest du damit in einen noch zu 
programmierenden Kalibriermodus wechseln. Da dann zwei 
Referenztemperaturen messen und damit dann die Kalibrierung vornehmen.

> Gratuliere!
> Da wackelt nur noch das letzte Bit:

Besser wird man den AD-Wandler auch kaum bekommen. Da wuerde ich dann 
auch den Wert durch einen Filter schicken/mitteln wenn einen das stoert.

Oder vielleicht einfach auf 0.5Grad runden.

Olaf
Gast #2536097
Lesenswert?

Hallo

Irgendwie raff ich das Thermometer nicht (mehr)!

Ich sagte ja bereits, dass bei Raumtemperatur etwa 10°C zuviel 
angetzeigt werden.
Nun habe ich den überschüssigen Wert per Software abgezogen, so dass bei 
20° Raumtemperatur auch etwa 20° angezeigt werden. Soweit so gut.
Wenn ich nun damit in den Abstellraum gehe (hier zeigt das Quecksilber 
12°C) zeigt mein Thermometer blos noch rund 7° an.
Leg ich es in die nähe der Heizung (Laserthermometer sagt 45°) zeigt 
mein Superthermometer satte 65° an.

Ist der LM335 das Übel oder der µC oder was sonst ?

Alternativ hätte ich noch einen KTY81-110 (Temperatursensor) im TO92
oder
einen LM61 (Tempertursensor) im SOT23 anzubieten.

Wären hiermit vielleicht bessere Werte zu bekommen ?


lg
Gast #2536107
Lesenswert?

> Meinst du das mit den 39k-Widerständen so ?

Nur vor dem - Eingang, nicht vor dem + Eingang.
Aber noch ein 10k Widerstand zum A/D-uC-Eingang.

> Sollte ich irgendwo einen Trimmer vorsehen,

Ich würde so was eher in Software machen,

also Sensor in 0 GradC stopfen, Taste drücken
damit Umrechnnungswerte so gesetzt werden daß
0 GradC angezeigt werden, Sensor auf 37 GradC
erwärmen (lässt sich exakt mit Fieberthermometer
erfassen), Taste drücken damit 37 GradC angezeigt
werden.
Dazwischen rechnet der uC dann eine lineare
Interpolation.

> Ist der LM335 das Übel oder der µC oder was sonst ?

Da andere Leute durchauch 0.1 GradC auflösende und
1 GradC exakte Thermoemeter mit dem hinbekommen,
liegt es wohl eher an was anderem.

> Alternativ hätte ich noch einen KTY81-110
> (Temperatursensor) im TO92 oder

vergleichbar genau vergleichbar einsetzbar

> einen LM61 (Tempertursensor) im SOT23 anzubieten.

Den könnte man direkt an einen A/D-Eingang
anschliessen wenn man den R8C auf interne
1.2V Referenz stellt, um -30 bis +60 GradC
anzeigen zu lassen mit fast voller Auflösung.

Allerdings muß auch er wie oben beschrieben
kalibriert werden, weil eben die interne
Referenz des R8C nicht so absolut genau ist,
sondern nur stabil.

Jegliche zusätzliche Elektronik entfällt.
Er ist ja auch ein modernerer Sensor, aber
auch er ist um 3 GradC ungenau.
Gast #2536159
Lesenswert?

Neues Schaltbild anbei.
Müsste jetzt so stimmen.

Um eine Kalibrierung, so wie du es beschrieben hast, durchzuführen, muss 
aber noch eine entsprechende Funktion geschrieben werden.

Solch eine Funktion zu erstellen übersteigt bei weitem meine 
Fehigkeiten.
Kannst du mir dabei helfen ?

lg
Angehängte Dateien:
Gast #2536249
Lesenswert?

> Solch eine Funktion zu erstellen übersteigt
> bei weitem meine Fehigkeiten.

Das ist Grundschulmathematik

angezeigte Temperatur =
aktueller A/D-Wandlerwert -
A/D-Wandlerwert der auf Tastendruck für 0 GradC gespeichert wurde
*
37
/
(A/D-Wandlerwert der auf Tastendruck für 37 GradC gespeichert wurde
A/D-Wandlerwert der auf Tastendruck für 0 GradC gespeichert wurde)
Gast #2536279
Lesenswert?

> Das ist Grundschulmathematik
>
> angezeigte Temperatur =
> aktueller A/D-Wandlerwert -
> A/D-Wandlerwert der auf Tastendruck für 0 GradC gespeichert wurde
> *
> 37
> /
> (A/D-Wandlerwert der auf Tastendruck für 37 GradC gespeichert wurde
> A/D-Wandlerwert der auf Tastendruck für 0 GradC gespeichert wurde)

Ich weis ja auch nicht wie ich das mit nem Tastendruck speichern soll - 
das bekomm ich so nicht hin. Dazu hab ich viel zu wenig Ahnung vom 
programmieren.



> ENTWEDER ein (Schottky-)Diode von VRef zu VCC des R8C,

Mach ich.
Gast #2536322
Lesenswert?

> Ich weis ja auch nicht wie ich das mit nem Tastendruck speichern soll -

Den Tastendruck sollst du nur erkennen,

speichern solltest du die beiden A/D-Wandlerwerte, falls der uC nach dem 
Kalibrieren auch irgendwann mal wieder abgeschaltet wird, und beim 
nächsten einschalten (Batterie-einlegen) nicht erneut kalibriert werden 
soll.

Zum Speichern bietet dich EEPROM-Speicher an, den man abfragt, wenn nach 
dem Einschalten (minutenlang) kein Taster gedrückt wurde.
Gast #2536403
Lesenswert?

Klingt vernünftig.

Hatte aber noch nie mit so einem EEPROM-Speicher zu tun. Weis nicht wie 
der R8C mit dem Speicher kommuniziert - alles Fremdworte für mich.

Hab mir das wohl etwas einfacher vorgestellt.

Gibt es eine andere Möglichkeit einen brauchbaren Thermometer mit dem 
R8C zu realisieren? Ohne Kalibrieren, ohne EEPROM?

lg
Gast #2536518
Lesenswert?

Hab eben bei Conrad geschaut, da gibt es einen DS18S20 um 5 Euro, von 
-50° bis +125°C, zwar auch nur in 0.5°-Schritten, ist aber bereits 
kalibriert.

Hier steht:
Dieser Temperatur-Sensor macht das "Thermo-Management" mit einem 
direkten digitalen Ausgang leicht. Der Sensor ermöglicht ein direktes, 
digitales Auslesen der gemessenen Temperatur, ohne dass ein A/D-Wandler 
benötigt wird und ist kalibriert. Der Sensor beinhaltet ein digitales 
Thermometer und verfügt darüber hinaus über Funktionen wie Thermostat, 
programmierbarem, digitalen Thermostat oder Speicher.


Wie kann dieser Baustein mit dem R8C13 arbeiten - ohne AD-Wandler?

Wie bekommt man die Temperaturwerte angeboten?


lg
Gast #2536538
Lesenswert?

Ohne daß ich jetzt die Spec des LM335 genau kenne:
Kannst mal vergleichen mit dem Microchip MCP9700A (dto. 10mV/°C aber 
Offset bzgl. der Null Grad Grenze, nur pos. Spannungen).
Dann gibt's noch den MCP971A , der hat 19,5 mV/°C , also fast doppelt so 
hohe Spannungsänderung (dafür aber eingeschränkter Meßbereich).
http://ww1.microchip.com/downloads/en/DeviceDoc/21942e.pdf

Und in nachfolgenden Links kannste noch nachlesen, wie andere Leute das 
machen, evtl. ergibt sich daraus was.

http://embedded-lab.com/blog/?p=4001
http://www.microchip.com/forums/m594754.aspx

Generell kann man durch längere Mittelwertbildung eine Verbesserung 
bzgl. des "wackelns" hinbringen, aber die 1/10° Anzeigestelle...
... Auflösung und Genauigkeit sind zwei Dinge !

Ohne Kalibrierung geht wohl keine Genauigkeit in 1/10 Grad, denke ich.
Das genaueste ohne Kalibrierung dürfte mit dem SMT160-30 sein. Dessen 
PWM Signal muss man aber denn direkt mit einer Capture-Einheit des uC 
auszählen und jede Periode einzeln ins Verhältnis setzen.
Gast #2536651
Lesenswert?

@ Erich

Das ist lieb gemeint - Danke, aber die verlinkten Seiten sind alle in 
englisch - da kann ich leider nur Bilder ansehen.
Auch ist da nichts vom R8C13 zu sehen - mit anderen µC hatte ich noch 
keine Erfahrung.


Mir schwebt vielmehr so ein "Temperaturonkel" vor, der zum einen bereits 
kalibriert ist und zum anderen eine der Temperatur proportionele 
Spannung ausgiebt.

Diese Spannung kann ich (dann auch mit meinen bescheidenen Wissen) mit 
dem R8C zur Anzeige bringen.

Dass wäre Klasse :-)


lg
Gast #2537090
Lesenswert?

Jochen schrieb:
> Autor:
>
>       Jochen (Gast)
>       Datum: 06.02.2012 16:43
>
>       @ Erich
>
> Das ist lieb gemeint - Danke, aber die verlinkten Seiten sind alle in
> englisch - da kann ich leider nur Bilder ansehen.
> Auch ist da nichts vom R8C13 zu sehen - mit anderen µC hatte ich noch
> keine Erfahrung.


Hmmmm, du willst dich ernsthaft mit Mikrocontrollern befassen und bist
nicht in der Lage, englische Artikel über dieses Thema zu lesen ?

=  VHS Kurs besuchen (Englisch)
=  http://de.babelfish.yahoo.com/
=  http://translate.google.de/
=  ... oder vielleicht doch einfacheres Hobby suchen ?
Gast #2539017
Lesenswert?

Aufpasser schrieb:
> Erich schrieb:
>> =  ... oder vielleicht doch einfacheres Hobby suchen ?
>
> Meine Fres.... Erich. Hooooooobbbbbbbyyyyyy! Der verdient kein Geld
> damit. Ich finde er sich bisher sehr gut geschlagen.
>
> Bitte unterstützen, oder einfach mal die Finger still halten!


Vielen Dank lieber `Aufpasser` !

Mitlerweile denke ich an einen Temperatursensor, der (früher) bei 
Multimetern mitgeliefert wurde. Man konnte ihn an die Buchsen V und COM 
stecken. Den Messbereich stellte man (glaube ich) auf 200mV. Im Display 
des DMM wurde dann direkt die gemessene Temperatur in °C angezeigt. Ich 
denke aber ohne Kommastelle. Der Messbereich ging dabei oft weit unter 
Null und auch weit über 1000°. Über die Genauigkeit weis ich auch nicht 
Bescheid.

Aber so ein Sensor, sollte doch auch für meinen Zweck realiserbar sein.

Warum dann plötzlich Funkstille ?

Nur weil ich nicht englisch kann ?

lg
Gast #2539051
Lesenswert?

Jochen schrieb:
> Neues Schaltbild anbei.
> Müsste jetzt so stimmen.

Du bist doch fertig. Noch kalibrieren und gut isses. Das muss ja nicht 
auf Knopfdruck gehen. Die Werte können auch fest compiliert werden. Ohne 
Kalibrierung musst du etwas fertiges kaufen. Da übernimmt der Hersteller 
dies für dich. Das macht aber keinen Spaß :-(

MaWin hat es oben beschrieben: Referenzthermometer nehmen, einen 
Messpunkt im unteren Bereich, einen im oberen und schon kann jeder 
beliebige Wert berechnet werden.
Gast #2539552
Lesenswert?

> MaWin hat es oben beschrieben: Referenzthermometer nehmen, einen
> Messpunkt im unteren Bereich, einen im oberen und schon kann jeder
> beliebige Wert berechnet werden.


Klingt so einfach wie ein Motorschaden:
Brauchst nur den Motor auszubauen, reparieren und wieder einbauen - 
schwubs bist schon fertig - ist ja ganz einfach.

...
Gast #2539577
Lesenswert?

> Warum dann plötzlich Funkstille ?

Weil niemand Lust hat, deinen ständig ändernden Wünschen 
hinterherzuhecheln.

Warum soll man für 10 verschiedene Sachen erklären wie es geht, wenn 
danach doch nur die Frage nach der 11ten kommt ?

Warum soll eine Heerschar von Menschen für dich arbeiten, bloss weil du 
zu faul bist selbst mal was zu lesen und selbst zu arbeiten ?

Trainierst du für deine Zukunft als Chef ?
Vergiss es.


> Nur weil ich nicht englisch kann ?

Das ist natürlich ein dickes Defizit.

Kauf dir was fertiges:

http://www.ebay.de/itm/Typ-K-Temperaturmessgerat-50-C-1300-C-Digital-Thermometer-Temperaturfuhler-/260937031048

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren