Ik wil met een PIC een redelijk nauwkeurige thermometer maken .
Eigenlijk zoek ik dus een nauwkeurige temperatuursensor die liefst van al geen afregeling hoeft.
Ik dacht ooit temperatuursensors (van National) gezien te hebben die redelijk nauwkeurig waren, maar als ik nu terug ga kijken zie ik dat bijvoorbeeld de LM92 met een I²C Serial Bus interface werkt.
Ik heb eigenlijk geen kaas gegeten van die seriele overdracht, dus zoek toch nog iets anders.
Bestaan er andere naukeurige sensors die desnoods aan een A/D van de PIC kan gehangen worden die aan mijn eisen voldoen?
Echt een volleerd microcontrollerprogrammeur ben ik niet, werk met Flowcode en weet ook niet hoe ik zo een I²C Serial Bus interface kan inlezen, en welke PIC ik daar voor moet gebruiken.
Ik val daarom maar terug op mijn kennis van analoge sensors.
Of jullie moesten mijn koudwatervrees voor I²C kunnen wegwerken met jullie gouden raad :-)

Ik weet dat mijn vraag mss beter in analoog gesteld kon worden, maar ik wil hier een zo groot mogelijke nauwkeurigheid.

Hoe nauwkeurig ???

De resolutie van een I²C sensor is doorgaans 0,5 graad, maar kan je tot 0,1 graad verhogen door je samples uit te middelen.
Vrij eenvoudig te maken, en de code wil ik wel schrijven.

Analoog ga je weer stuiten op andere factoren die de resolutie beperken..

inderdaad geen analoge sensor nemen. spi of i2c. daarn kan je de nauwkeurigheid zelf bepalen aan de hand van het bedrag wat je voor je chip kwijt wilt zijn...

De resolutie van een I²C sensor is doorgaans 0,5 graad, maar kan je tot 0,1 graad verhogen door je samples uit te middelen.

Dat begrijp ik niet. Als het bv. een hele tijd 21.1°C is, geeft zo'n ding toch 21.0 op?

Wat de keuze voor een digitale opnemer betreft, ben ik het met jullie eens. Geen geklooi met opamps die last hebben van een ingangs-offset en zelf temperatuurgevoelig zijn. Geen gepruts omdat de ADC niet 100% lineair is, enz...

Dat begrijp ik niet. Als het bv. een hele tijd 21.1°C is, geeft zo'n ding toch 21.0 op?

Werkt goed bij schommelende temperaturen.
Als je 60 samples krijgt van 20.0 en 40 samples van 21.0, en je middeld dat uit, dan heb je je decimaaltje.

Ah! Op die manier. Prima om bv. de kamertemperatuur te meten, als de verwarming voortdurend in- en uitschakeld, maar minder geschikt voor de buitentemperatuur.

ik gebruik zelf de DALLAS18s20 1-wire, die zijn met een pic simpel uit te lezen (bij pic basic staat een voorbeeld in de handleiding)

en de data is makkelijk te gebruiken in de resta van je programma

Op 19 december 2007 20:15:50 schreef ~Galaxy:
[...]

Werkt goed bij schommelende temperaturen.
Als je 60 samples krijgt van 20.0 en 40 samples van 21.0, en je middeld dat uit, dan heb je je decimaaltje.

En hoe ga je dat dan wel vaststellen?
Ik ga ervanuit als je behoefte hebt aan een nauwkeurige temperatuurmeter, je er dan geen hebt die een factor 10 beter is om die samples uit te zoeken.
Het lijkt me ook gek om 10 temperatuur ic's te kopen om er één uit te zoeken.
Dan kun je beter een duurder sensor kopen.

Op 19 december 2007 18:53:07 schreef MJU:
Ik heb eigenlijk geen kaas gegeten van die seriele overdracht, dus zoek toch nog iets anders.

Als je zo redeneert leer je nooit iets bij. Dan had je nu nog de kennis van een 0-jarige :-) Er is heel veel info over I2C te vinden, en moeilijk is het ook zeker niet. Sterker nog, er is al veel code voor beschikbaar, ik denk zelfs wel bij Microchip zelf. Succes met bijleren!

je vraagt in alle topics een beetje naar het zelfde, heb je deze tip als eens bekeken : http://www.circuitsonline.net/forum/view/message/634130#634130

en flowcode ondersteund I2C, mischien de handleiding lezen?

[Bericht gewijzigd door Shiptronic op (16%)]

Op 19 december 2007 21:16:30 schreef shiptronic:
je vraagt in alle topics een beetje naar het zelfde, heb je deze tip als eens bekeken : http://www.circuitsonline.net/forum/view/message/634130#634130

en flowcode ondersteund I2C, mischien de handleiding lezen?

Is het typisch Nederlands om telkens je iets vraagt een preek te geven?
Ik vraag hier iets en krijg een hoop bruikbare tips.
Nu komen sommigen hier af met een vraag die ik vroeger al gesteld heb en waar ik ondertussen werk van gemaakt heb.
Ik stel een heel andere vraag en krijg nu een preek...

Ik dacht dat dit een forum was waar je vragen mocht stellen?
Ik heb mijn kwaliteiten en specialiteiten, en je mag er geld op verwedden dat ik mensen online help.
Niet enkel hier, maar ook op Usenet en andere fora.
Als ik dan een vraag stel moeten jullie niet beginnen zeuren alsof ik een leecher eerste graad ben.

Dus voor iedereen die al bruikbare tips gegeven hebben, dank u wel!!!
Iedereen nog prettige feestdagen en veel begrip in 2008!

Op 19 december 2007 20:43:14 schreef grotedikken:
[...]
En hoe ga je dat dan wel vaststellen?
Ik ga ervanuit als je behoefte hebt aan een nauwkeurige temperatuurmeter, je er dan geen hebt die een factor 10 beter is om die samples uit te zoeken.
Het lijkt me ook gek om 10 temperatuur ic's te kopen om er één uit te zoeken.
Dan kun je beter een duurder sensor kopen.

Nee, Nee, Nee !!

Ik ga nog steeds uit van een I²C T-sensor met een resolutie van 0,5 graad.
Je neemt elk uur een sample.

Resultaat na 10 samples:

20.0 20.0 20.0 20.5 20.5 21.0 21.0 21.0 21.0 21.0

Totaal is 206. delen door 10 geeft een gemiddelde van 20,6 graden.

Ik wil met een PIC een redelijk nauwkeurige thermometer maken .
Eigenlijk zoek ik dus een nauwkeurige temperatuursensor die liefst van al geen afregeling hoeft.

Kijk eens naar de DS1624, die werkt erg nauwkeurig.
http://pdfserv.maxim-ic.com/en/ds/DS1624.pdf

Die methode van uitmiddelen is wel leuk maar heeft als nadeel dat je dus niet de huidige temperatuur te zien krijgt maar wel een gemiddelde over de afgelopen tijd.
En je kan nooit een hogere nauwkeurigheid krijgen door gemiddelden te nemen.

Als je sensor een nauwkeurigheid heeft van 0,5 graden en je neemt een aantal samples en dat middelt uit tot bijvoorbeeld 21,2 graden dan heb je nog steeds die mogelijke afwijking van 0,5 graden. Die zal nooit kleiner worden.

Misschien de naurkeurigheid verhogen door te ijken???
jan

Op 22 december 2007 10:07:44 schreef fzwart:
Als je sensor een nauwkeurigheid heeft van 0,5 graden en je neemt een aantal samples en dat middelt uit tot bijvoorbeeld 21,2 graden dan heb je nog steeds die mogelijke afwijking van 0,5 graden. Die zal nooit kleiner worden.

Juist. Dat heeft alleen zin als er ruis op de meetwaarden zit. Dan middel je de ruis weg. Maar dat gaat in dit geval niet op.

Hier wordt weer nauwkeurigheid en resolutie door elkaar gehaald. Een sensor met een resolutie van 0.5 graad kan best wel nauwkeuriger zijn.
Als je dan meerdere samples neemt bij aanwezigheid van ruis dan kun je de resolutie verbeteren.
Als er geen ruis is en de temperatuur is 20.2 graden zal de meting altijd 20 graden geven hoe lang je ook middelt. Met ruis zal de meting soms 20 graden opleveren en soms 20.5 graden, de ruis middel je weg en je komt dan uit op 20.2 graden.

Da's toch aardig wat ik al zei? De sensor heeft feitelijk een onnauwkeurigheid door een soort gain/offset fout, en door z'n resolutie (kan de exacte temp niet afbeelden op de digitale waarde). Op beide effecten zal middelen niet altijd helpen. Stel, echte temp is 20.75, stabiel. Sensor geeft telkens 21 af. Middelen over 10 keer 21 geeft nog steeds 21.
Ruis heeft een random karakter en zal een waarde _rondom_ de echte waarde opleveren. DAT filter je eruit door te middelen.