Hallo allemaal

Op school zijn we bezig met een nieuw project, namelijk de bedsidemonitor. We moeten dus een bedsidemonitor maken die bloeddruk hartslag en temperatuur op kan meten en later verwerken. We zijn net de ontwerpfase (van de schakelingen e.d.) gestart en heb een klein probleempje.

Mij is opgedragen de schakeling voor de temp sensor te gaan ontwerpen. We maken gebruik van een microcontroller (atmel) en een PT100. Nu is de vraag wat voor hardware er allemaal tussen de atmel en de pt100 moet. Zelf dacht ik alleen een Opamp en de AD-converter van de Atmel, of moet ik met nog meer hardware rekening houden? Bestaan er trouwens Atmels met meerdere AD-converters (we hebben er 3 nodig).

Alvast bedankt voor de hulp!

Ik ben even vluchtig door de datasheet van de ATmega16 aan het kijken en zie de volgende regels staan:

8 channel, 10-bit ADC
8 single-ended Channels
7 diffrential Channels in TQFP Package Only
2 Differential Channels with programmable gain at 1x 10 x 200x

Is deze mC geschikt om 3 sensoren uit te lezen?

Op 21 april 2007 13:25:04 schreef prowl:
8 channel, 10-bit ADC
Is deze uC geschikt om 3 sensoren uit te lezen?

wat denk je :)

Bestaan er trouwens Atmels met meerdere AD-converters (we hebben er 3 nodig).

8 channel, 10-bit ADC

Volgens mij geef je zelf het antwoord al.

Op 21 april 2007 13:18:25 schreef prowl: We moeten dus een bedsidemonitor maken die bloeddruk hartslag en temperatuur op kan meten en later verwerken.

Ik heb hier bij eerdere topics al op gewezen maar met een toepassing als deze lijkt het me nuttig om het nog maar een keer te doen:

Een Pt100 is niet bepaald lineair. Voor een groot meetbereik moet je voor de correcte temperatuur een behoorlijk berekening maken. Voor een klein temperatuursbereik als een lichaamstemperatuur is een tabel waarschijnlijk het meest practische.

Bij 38 graden is de afwijking door het niet lineaire al 5 hele graden. De formule om dit recht te breien staat gedefinieerd in de ITS90 en is voor temperaturen boven 0 graden celcius:
R=100*(1+0,0039083*T+-0,0000005775*T^2)
Alle gangbare Pt100's voldoen aan deze norm.

[Bericht gewijzigd door GJ_ op ]

Eh?

R=100*(1+0,0039083*T+-0,0000005775*T^2)

Dat is het ingewikkeld maken.
R RTD = (100 + 0.39083*T - 0.00005775*T^2) in ohm

De 100 staat voor de 100ohm die een PT100 aan 0°C aangeeft.

PT100 zijn wel heel stabiele sensoren, veel beter dan thermokoppels.

Geen nekele temperatuuresensor is echt lineair, er is altijd wel een soort compensatie voor nodig.

[Bericht gewijzigd door Benarty op ]

Ja ik denk dat ik zelf al mijn vraag over de uC beantwoord hebt, dit is dus goed mogelijk.

Ik weet dat we beter voor een LM35 hadden kunnen kiezen aangezien deze wel linear is maar tijdens het vooronderzoek hebben we voor de pt100 gekozen (niet goed verder gekeken naar andere sensoren) en deze kunnen nu niet meer veranderen (regels van school :/ ).

Nu wil ik het eigenlijk hebben over het echte probleem.
Ik begrijp dat de uC een spanning van 0 tot 5 V kan inlezen en dat de pt100 een variabele weerstand is die per graadt ongeveer 0.37 Ohm groter word.
(Gj bedankt voor de fommule, deze gaan we zeker gebruiken met het eiken!)
Maar nu heb ik dus een variabele weerstand ongeveer tussen de 10 en 20 ohm.. Kan een uC deze zo direct inlezen (denk het zelf van niet), of dient deze weerstand nu vertaald te worden naar een variabele spanning tussen de 0 & 5V met een zo groot mogelijke spreiding?

Door middel van een vaste stroom zou je de variabele weerstand kunnen vertalen naar een variabele spanning..

Maar zoals jullie al zien weet ik het niet precies en hoop ik dat iemand me hier verder mee kan helpen!

p.s Waar uC en niet mC (als in microcontroller)?

Op 21 april 2007 20:49:10 schreef prowl:
Ja ik denk dat ik zelf al mijn vraag over de uC beantwoord hebt, dit is dus goed mogelijk.

:)

Ik weet dat we beter voor een LM35 hadden kunnen kiezen aangezien deze wel linear is maar tijdens het vooronderzoek hebben we voor de pt100 gekozen (niet goed verder gekeken naar andere sensoren) en deze kunnen nu niet meer veranderen (regels van school :/ ).

Enerzijds goed van school (de gevolgen van slecht overwogen beslissingen ondervinden) anderzijds... in 'het echte leven' gooi je ook wel eens 2 maanden engineering weg als blijkt dat je de verkeerde kant op aan het rennen bent. Persoonlijk had ik denk ik voor een SPI, I2C of 1-Wire variant gekozen. Geen geneuzel met lineair of niet, gewoon data tegenaan kletsen.

Nu wil ik het eigenlijk hebben over het echte probleem.
Ik begrijp dat de uC een spanning van 0 tot 5 V kan inlezen en dat de pt100 een variabele weerstand is die per graadt ongeveer 0.37 Ohm groter word.
(Gj bedankt voor de fommule, deze gaan we zeker gebruiken met het eiken!)
Maar nu heb ik dus een variabele weerstand ongeveer tussen de 10 en 20 ohm.. Kan een uC deze zo direct inlezen (denk het zelf van niet), of dient deze weerstand nu vertaald te worden naar een variabele spanning tussen de 0 & 5V met een zo groot mogelijke spreiding?

Dat lijkt me een goed plan

Door middel van een vaste stroom zou je de variabele weerstand kunnen vertalen naar een variabele spanning..

Daar gaat het in de praktijk waarschijnlijk wel op neer komen, of het ding nou in een spanningsdeler, brug of achter een kleine currentsource hangt. Kies je stroom 'klein' om zelf-opwarming te voorkomen. Zoek eens wat op die sensor en kijk hoe anderen het doen en wat de voor / nadelen zijn die je erbij kan vinden.

Maar zoals jullie al zien weet ik het niet precies en hoop ik dat iemand me hier verder mee kan helpen!

Je overwegingen zijn in elk geval niet volkomen de verkeerde kant op (mi. op de keuze van de sensor na...). Zoek eens naar bouwprojectjes ofzo van anderen en lees hun overwegingen, jat daar je ideeen uit (beter goed gejat dan slecht zelf verzonnen; zorg wal dat je blijft snappen wat je doet)

p.s Waar uC en niet mC (als in microcontroller)?

Die u moet eigenlijk een μ zijn. Dan is het zinniger.

Op 21 april 2007 20:39:07 schreef Benarty:
Eh?
[...]

Dat is het ingewikkeld maken.
R RTD = (100 + 0.39083*T - 0.00005775*T^2) in ohm

Pardon?
Een temperatuursensor gebruik je toch zeker om de temperatuur te meten? Bij een Pt100 is deze formule, of een tabel door middel van deze formule verkregen, de enige manier.
Da's niks ingewikkeld, en als je dat niet wilt moet je kant en klaar apparatuur kopen. Da's in ieder geval niet ingewikkeld toch?

Ik wees er al op dat puur rekenend vanuit de temp.coeff. er bij 38 graden al een afwijking van maar liefst 5 hele graden is.

Op 21 april 2007 20:49:10 schreef prowl:
de pt100 een variabele weerstand is die per graadt ongeveer 0.37 Ohm groter word.

Juist, dat is de grove benadering, leuk voor een huiskamerthermometer die toch altijd tussen de 15 en de 22 graden zwabbert ;-)
Helaas is die methode voor een beetje serieuzere meting absoluut onbruikbaar.

[Bericht gewijzigd door GJ_ op ]

Als ik het goed begrijp wil je vrij precies temp. gaan meten en als je het bereik van 0 tot 5 V van de ADC in de AVR gaat gebruiken dan heb je al snel een gebrek aan preciesie.
Ik zag toevallig een heel handige manier om de nauwkeurigheid van de adc te verhogen tot bijv. 16 bit of nog hoger zodat je goed de lichaamstemp. kunt meten met een preciesie van ten minste 0,1 C of beter.
Op de Atmel site staat bij de 8 bit controllers aplication notes nr. 121 waar in beschreven staat hoe je het voorgaande kan bereiken.
suc6

En door aan adc te kiezen met een lagere ingangsspanning stijgt de resolutie ook, natuurlijk.

Let op: als je enkel positieve temperaturen meet verlies je de laatste digit van een adc. Een 10 bitter, blijft dan 9 bit over.

Natuurlijk, de niet lineariteit van de RTD kan in rekening gebracht worden zodat je over het ganse gebied wel degelijk richting +/- 0.1 kunt geraken. Veel hangt af van de stabimliteit van de volt referentie en het vermijden van eigen warmte (vandaar max 1mA erdoor)
Normaal als je een RTD koopt kan je de details van de RTD verkrijgen omtrent non lineariteit. Desnoods achter vragen.
En dat er dan een microcontroller bij te pas komt is evident, rekenwerk nodig of gebruik van een look-up tabel.

Er worden veel fouten gedaan bij het mengen van AGND en DGND
op een bord waar zowel een stuk analoog staat als digitaal.

Versterking: als de adc een versterking (gain) toelaat, let op de specificaties ervan.

Op 21 april 2007 21:54:56 schreef GJ_:
Juist, dat is de grove benadering, leuk voor een huiskamerthermometer die toch altijd tussen de 15 en de 22 graden zwabbert ;-)
Helaas is die methode voor een beetje serieuzere meting absoluut onbruikbaar.

Nu begrijp ik van TS dat het om lichaamstemp gaat? In dat geval heb je een nog kleiner bereik dan de kamertemp. Als je tussen 36 en 40 nauwkeurig kunt meten is het al ruim voldoende. Maar goed, het moet wel nauwkeurig natuurlijk.

Op 22 april 2007 11:13:35 schreef Benarty:
Normaal als je een RTD koopt kan je de details van de RTD verkrijgen omtrent non lineariteit. Desnoods achter vragen.

TS ging toch al uit van een Pt100? dan ligt de lineairiteit vast en heeft ie voldoende aan die "ingewikkelde" formule.

Een nauwkeurigheid van 0,1 graad gaat TS overigens nooit halen, dat gaat alleen met 1/3B class weerstandsthermometers en die zijn "wat" duurder.
Om wel die precisie te benaderen zal er met een evenzo nauwkeurige thermometer geijkt moeten worden en hopen dat de gebruikte sensor stabiel genoeg is.

Op 22 april 2007 11:48:45 schreef flipflop:

Nu begrijp ik van TS dat het om lichaamstemp gaat? In dat geval heb je een nog kleiner bereik dan de kamertemp. Als je tussen 36 en 40 nauwkeurig kunt meten is het al ruim voldoende. Maar goed, het moet wel nauwkeurig natuurlijk.

Klopt, maar de gemiddel;de kamerthermometer is op 1 graad celcius nauwkeurig als je een werkelijk hele goede hebt. Leg er bij de Blokker maar een stel naast elkaar en je zult zomaar verschillen van 2 graden ontdekken bij de goedkopere. Als je dan toch met een sensor in je poepert ligt wil je wel graag dat het ook nuttig is.

[Bericht gewijzigd door GJ_ op ]

Neen, de lineariteit ligt niet helemaal zo rotsjuist.
Als je alle sensortypes vergelijkt scoort RTD wel goed en is er geen uitgebreide signaalconditionering nodig. Ze blijven ook relatief lang stabiel i.v.m. de goedkopere thermokoppels.

Er zit trouwens een lichte knik in en als die net in uw meetgebied zit en je wil .....nauwkeurig meten.... bah, ik meet in elk geval +/-0.1°C van 0 tot 250°C dus ga me niet rechtvaardigen.

[Bericht gewijzigd door Benarty op ]

Onjuist.
En die nauwkeurigheid haal je enkel met een dure Pt100. De tolerantie op een klasse B is bij 100oC +-0,8K
Bij een klasse a is dat ook nog altijd +-0,35K
De nauwkeuriger en dure Pt klassen zijn niet echt officieel vastgelegd maar ook de meest nauwkeurige (1/10DIN-B) heeft nog een tolerantie van +-0,12K.

De door mij gegeven formule is de enige manier om ook maar een beetje in de buurt van de door jou opgegeven nauwkeurigheid te komen. Domweg met een temperatuur coefficient rekenen is erg ongebruikelijk en geeft afwijkingen van ongeveer 10K.

[Bericht gewijzigd door GJ_ op ]

Iets wat nog even bij me opkwam, naast de nauwkeurigheid discussie: TS, denk je ook aan de veiligheid? Als je zo'n sensor gaat "koppelen" aan een persoon, dan moet je schakeling wel goed gescheiden zijn van het net.

Op 22 april 2007 17:47:23 schreef GJ_:

De door mij gegeven formule is de enige manier om ook maar een beetje in de buurt van de door jou opgegeven nauwkeurigheid te komen. Domweg met een temperatuur coefficient rekenen is erg ongebruikelijk en geeft afwijkingen van ongeveer 10K.

Flauwekul, De lineariteitsafwijking over het temperatuurgebied 35-43 graden is 0.002 graden.
Meer dan voldoende voor deze toepassing.
De absolute nauwkeurigheid hangt natuurlijk van de kwaliteit van de sensor af.
Een 10 bits DAC lijkt me ook ruim voldoende om op 0.1 graad resolutie de temperatuur te meten in dit gebied.
Je moet dan natuurlijk wel met een instrumentatieversterker voldoende versterken en een juiste offset geven.

Op 22 april 2007 21:23:02 schreef floppy:
[...]
Flauwekul, De lineariteitsafwijking over het temperatuurgebied 35-43 graden is 0.002 graden.

Fout gerekend: 0,9K
--edit--
Dit is ook een rekenfout. Moet in de buurt van de 0.2 à 0.3K zitten. Morgen zal ik het exact uitrekenen.

[Bericht gewijzigd door GJ_ op ]

Op 22 april 2007 22:10:47 schreef GJ_:
[...]Fout gerekend: 0,9K
--edit--
Dit is ook een rekenfout. Moet in de buurt van de 0.2 à 0.3K zitten. Morgen zal ik het exact uitrekenen.

Voor het traject 35-43 graden kun je de lineaire formule
R=100.0874528 + 0.3863255*T gebruiken dat geeft dan voor de temperatuur:
T=(R-100.0874528)/0.3863255
In een tabel:


T       weerstand        berekende T

35      113.6083063     34.9984372
36      113.995036      35.9994823
37      114.3816503     37.00022843
38      114.768149      38.0006756
39      115.1545323     39.00082379
40      115.5408        40.00067301
41      115.9269523     41.00022326
42      116.312989      41.99947454
43      116.6989103     42.99842685

Ik zie hier maar 0.002 graden afwijking

[ code ]

tabel spaties tussen [ en ] weghalen

af sluiten met [ /code ] ook hier spaties tussen [ en ] weghalen

Die afwijking die jij noemt is godsonmogelijk klein.

Om overigens een dergelijke nauwkeurigheid te bereiken moet het apparaat wel worden geijkt: ook de duurdere Pt's hebben een tolerantie van meer dan +-0,1K, de wat goedkopere +-0,8K.

[Bericht gewijzigd door GJ_ op ]

Ik schrok er even van dat ik mijn topic terug vond met 20 reacties.
Ik heb vanmorgen een vergadering gehouden met de andere projectleden en nog even over de temp sensor gepraat.

De eisen die we aan de temp-meting stellen is dat hij redelijk accuraat moet meten, hiermee bedoel ik een afwijking van rond de 0,2 graden. De meting hoeft niet zeer precies te zijn aangezien een normale lichaamstemperatuur meting al snel tot een graad of 0,5 afwijkt (denk aan de temp-meters voor de oren e.d.)

Ik zie hier veel verschillende meningen en antwoorden over het gebruik van de pt100 en andere sensoren.
Aangezien veel mensen elkaar tegenspreken vind ik het moeilijk hier een duidelijke conclusie uit te trekken.
Hoe acuraat word mijn meting als ik gebruik maak van een pt100 de formule van GJ en de 10-bits ADC van de atmel??

Verder heb ik ook nog wat onderzoek gedaan naar andere temp-metingen, en vooral de uitlezing hiervan. Een medeprojectlid heeft ervaring met een "spanningsdeler"
dus met behulp van twee weerstanden (een vaste en een variabele).
Ik denk dat zelf dat dit goed toepasbaar is voor ons project.
maar het probleem is dat ik zoveel verschillende projecten en oplossingen op het net vind dat ik twijfel heb welke nu eigenlijk de "juiste" is voor mijn toepassing.

Om nog even terug te komen op de reactie van flipflop.
We hebben de opdracht om een bedsidemonitor te simuleren, dus we hoeven ons niet aan alle standaard normen voor een echte bsd te houden en dus ook niet zo goed op de veiligheid te letten. We hebben een excursie gehouden in het IC van het ziekenhuis in heerlenm en hier werden we er ook op gewezen dat het systeem absoluut veilig moest zijn en er geen lekstroom e.d. door de sensoren mocht ontsnappen. Gelukken hoeven we hier dus (nog) geen zorgen over te maken!

Nog even wat voorgeschiedenis
We zijn eerstejaars studenten van de HTS in eindhoven en hebben met onze klas die verdeeld is in 4 projectgroepen allemaal de opdracht gekregen om een bsd te maken met een camerabeveiligingssysteem voor het monitoren van een patient. We hebben in het eerste kwartaal de vooronderzoeken en opstellen van het pva afgesloten en zijn nu toe aan het opstellen bedenken en simuleren van onze bsd (dus met print schakeling en componentlijst!).
De voortgang van ons project gaat goed ookal lopen we hier en daar op problemen die we nog niet kunnen oplossen (zoals deze van de tempsensor).
Ik hoop dat ik in dit topic antwoord op mijn vragen krijg (na natuurlijk zelf ook goed mee te denken en zoeken!) zodat ik mijn project met succes af kan ronden en niet met een half werkende bsd sta die nog kwalitatief slechter is dan de goedkoopste blokker meter.
In ieder geval alvast bedankt voor jullie hulp en meedenken.

Hmm, geen zorgen maken... Betekent dat dat je er nooit een persoon op gaat aansluiten? Als dat wel zo is moet je het net zo goed veilig doen. De kans is wel kleinder dat er iets foutgaat, maar is niet 0.000%. Het zal net die ene keer maar fout gaan.

Op 23 april 2007 07:42:06 schreef GJ_:
Die afwijking die jij noemt is godsonmogelijk klein.

Om overigens een dergelijke nauwkeurigheid te bereiken moet het apparaat wel worden geijkt: ook de duurdere Pt's hebben een tolerantie van meer dan +-0,1K, de wat goedkopere +-0,8K.

Ik zat er zelf flink naast. Over een dergelijkl klein bereik is een afwijking van 0.2K ook wel wat erg veel natuurlijk.

Neemt niet weg dat voor een beetje precisie je de thermometer wel eerst zult moeten ijken: het tweede deel van mn verhaal is niet onderhevig aan zondagavond/maandagochtend rekenslordigheden maar is gewoon opgegeven.

Op 23 april 2007 12:14:01 schreef prowl:
Hoe acuraat word mijn meting als ik gebruik maak van een pt100 de formule van GJ en de 10-bits ADC van de atmel??

Zoals uit het sommetje van floppy al bleek nauwkeurig genoeg. Op een dergelijk klein bereik is de afwijking door lineairiteit nog niet spectaculair, dat komt pas bij hogere of juist hele lage temperaturen.

Ik heb me hier zelf even lelijk zitten misrekenen.
Ik had pas gemerkt dat bij wat tests die we gedaan hebben het berekenen van de temperatuur met de temp.coeff. zondermeer erg fout kan gaan. Onze proefneming speelde zich echter af met een tankwagen vol vloeibare stikstof en een testopstelling die gekoeld werd tot -195oC. De dubbele Pt100's zaten op en datalogger en werden af en toe gecontroleerd met een gecalibreerde multimeter.

Het enige wat je wel zult moeten doen is de meter calibreren omdat een Pt100 van zichzelf al een flinke tolerantie heeft. Alleen de duurdere vallen binnen de door jullie gewenste tolerantie.