Temperatuur sensor omrekenen naar graden Celsius

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Temperatuur sensor omrekenen naar graden Celsius

Berichtdoor DeDraak » 14 Aug 2016, 20:08

Hallo allemaal,

Ik heb een ikea food thermometer en die wil ik op mijn arduino gaan aansluiten.
De sensor heb ik aangesloten op analoge input "0"

bij 14 graden heb ik een analoge waarde van 998
Bij 34 graden heb ik een analoge waarde van 958

In dit geval zou hij dus de temperatuur weer moeten geven tussen 14 en 34 graden.

Nu heb ik hetvolgende geprobeerd om die waarde dus naar celsius om te zetten;

map (val, 998, 958, 14, 34);

Maar dit werkt niet..
Kan iemand mij hier mee helpen hoe ik het beste dit om kan zetten?

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Temperatuur sensor omrekenen naar graden Celsius

Berichtdoor Koepel » 14 Aug 2016, 20:22

Dit lijkt me iets voor een offset en een gain.

Analoge waarde 40 minder is 20 graden meer. Dus de gain is -0.5
De analoge waarde met een gain van -0.5 is rawADC * -0.5, en dat is hetzelfde als -rawADC / 2 (let op het min-teken).
Van 14 graden naar nul zou dus 28 stappen omhoog zijn. Dus nul graden is 998+28 = 1026.

Code: Alles selecteren
  int rawADC = analogRead( A0);
  int temperature = (1026 - rawADC) / 2;


Er zal vast wel een formule voor bestaan, om met twee punten een lineare functie te maken, maar ik heb het nu beredeneerd.
...Inmiddels gevonden, het heet een "Equation of a linear function through two points". Je kunt het zelfs online laten uitrekenen.
Laatst gewijzigd door Koepel op 14 Aug 2016, 20:28, in totaal 1 keer gewijzigd.

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Temperatuur sensor omrekenen naar graden Celsius

Berichtdoor DeDraak » 14 Aug 2016, 20:26

Het is een Et-73 food probe thermometer en daar zijn verschillende bestaande sketches voor maar ik wil het simpeler doen en dat ik hem zelf ook begrijp.

Wat je zegt denk ik ook, die 14 en 34 had ik zo op tafel voor handen met meten. Ik zal eens van 0 graden en 250 meten wat de waardes dan zijn.

Maar die map moet ook kunnen toch?

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Temperatuur sensor omrekenen naar graden Celsius

Berichtdoor Koepel » 14 Aug 2016, 20:42

Ja, die map werkt ook buiten de grenzen. Ik heb de map() even geprobeerd en het werkt.

Code: Alles selecteren
void setup()
{
  Serial.begin(9600);
  Serial.println( "--------------------");

  for( int i = 0; i<1024; i+=2)
  {
    int j = map( i, 998, 958, 14, 34);
    if( i<1000)
      Serial.print( " ");
    if( i<100)
      Serial.print( " ");
    if( i<10)
      Serial.print( " ");
    Serial.print( i);
    Serial.print( ",");
    if( j<1000)
      Serial.print( " ");
    if( j<100)
      Serial.print( " ");
    if( j<10)
      Serial.print( " ");
    Serial.print( j);
    Serial.println();
  }

  Serial.println( "--------------------");
}

void loop()
{
}


Maar die temperatuurmeter is niet lineair. Dus heb je toch echt een wat meer ingewikkelde formule nodig, ook al begrijp je zelf die formule niet.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Temperatuur sensor omrekenen naar graden Celsius

Berichtdoor shooter » 15 Aug 2016, 11:40

ja map zou zeker moeten kunnen, echter de sensor is zeker niet lineair en hoe heb je hem aangesloten?
kijk maar naar het voorbeeld van koepel.
de formule klopt echter niet want 0 graden is niet te meten.
dus een iets hogere weerstand is nodig.
probeer uit te komen in de buurt van 500 bij 25 graden, dan heb je speling aan beide kanten.
als blijkt dat het niet lineair is dan kun je een omrekenformule of een array gebruiken.
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Temperatuur sensor omrekenen naar graden Celsius

Berichtdoor Koepel » 15 Aug 2016, 12:42

Is de ET-73 alleen maar een NTC ?
Dan is dit de beste tutorial : https://learn.adafruit.com/thermistor/using-a-thermistor
De derde (onderste) sketch laat zien hoe de temperatuur berekend kan worden.

Je hebt ook een goede voltage reference nodig. Als de 5V wordt gebruikt, en je gebruikt alleen een USB kabel, dan is de 5V misschien tussen de 4.6 en 5.0V in, en iedere afwijking zorgt voor een flinke wijziging in het uiteindelijke resultaat. Met een externe adapter krijg je dan wel een stabiele temperatuur te zien.

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Temperatuur sensor omrekenen naar graden Celsius

Berichtdoor DeDraak » 15 Aug 2016, 14:02

Die ET-73 is gewoon een NTC inderdaad.

Die link ga ik eens rustig nalezen, als het gelukt is dan laat ik dat uiteraard weten..

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Temperatuur sensor omrekenen naar graden Celsius

Berichtdoor Koepel » 15 Aug 2016, 17:49

Oeps, sorry :oops: Met een NTC en een weerstand maakt het niet uit als de 5V varieert. Je heb dus helemaal geen externe adapter voor de Arduino nodig voor een beter resultaat.

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Temperatuur sensor omrekenen naar graden Celsius

Berichtdoor DeDraak » 15 Aug 2016, 19:50

ik krijg het nog niet voor elkaar, heb net de sensor ook even gemeten bij ongeveer 24 graden. De multimeter gaf 240KOhm aan..

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Temperatuur sensor omrekenen naar graden Celsius

Berichtdoor Koepel » 15 Aug 2016, 20:03

Dat klopt vrij aardig.

De meeste NTCs zijn 10k (bij 25 graden), maar de ET-73 is een 200k NTC !

Ik vond een link naar een datasheet hier : http://tvwbb.com/showthread.php?22136-LinkMeter-v2-Homebrew-BBQ-Controller-Part-1&p=63250&viewfull=1#post63250

Bij zulke hoge waarden zit je met ruis. Dus een kleine condensator van 1nF or 10nF van de analog pin naar ground kan helpen. En een paar samples nemen voor het gemiddelde helpt ook.

ET-73: het bereik is -50 tot 250 graden. De 100 graden zit middenin. De beste temperatuur voor het vlees is misschien ook zo'n 100 graden. Dus rond de 100 graden is het belangrijkste gedeelte, dus daar willen we de hoogste nauwkeurigheid. Dan kiezen we de weerstand dezelfde waarde als de ET-73 bij 100 graden, zodat het resultaat in het midden (2.5V) komt. De ET-73 is 18k bij 100 graden. Dus ik zou 15k of 18k of 22k nemen voor de weerstand naar 5V.

Volgende

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 13 gasten