Max31855 temperature sensor: rare metingen.

== oude koe... Nieuwe perikelen onderaan... ===

Click voor het hele plaatje.
http://prive.bitwizard.nl/gnuplot-temperature_crop.png

Ik heb een MAX31855 gekocht en daar een K-type temperature probe aan gehangen. De rode lijn is de interne temp in het chipje.... Een beetje hoog, maar ziet er reddelijk uit. De probe-temp lijkt zo'n 7 graden toe te nemen, en dan ineens plok weer omlaag te schieten. De periode is zo'n 44 samples, of ongeveer 4.4 sec. (10 temperatuur samples per seconde. [just checked: het versturen van de data duurt kennelijk 5ms, zodat er maar 9.5 samples per seconde binnenkomen. Soit!]).

Wat ruwe data:

code:

01281A50 01A5 0012.2
01301A40 01A4 0013.0
012C1A40 01A4 0012.3
01341A70 01A7 0013.1
01301A40 01A4 0013.0
01401A60 01A6 0014.0
01381A50 01A5 0013.2
01341A60 01A6 0013.1
01441A50 01A5 0014.1
013C1A40 01A4 0013.3
01401A40 01A4 0014.0
014C1A60 01A6 0014.3
014C1A70 01A7 0014.3
01481A60 01A6 0014.2
014C1A50 01A5 0014.3
01541A60 01A6 0015.1
01541A60 01A6 0015.1
014C1A50 01A5 0014.3
01581A50 01A5 0015.2
01401A50 01A5 0014.0
01601A50 01A5 0016.0
015C1A50 01A5 0015.3
01541A50 01A5 0015.1
01601A50 01A5 0016.0
01601A50 01A5 0016.0
015C1A60 01A6 0015.3
01681A50 01A5 0016.2
016C1A50 01A5 0016.3
01701A40 01A4 0017.0
01681A50 01A5 0016.2
01781A40 01A4 0017.2
01781A50 01A5 0017.2
01781A60 01A6 0017.2
01841A50 01A5 0018.1
01881A50 01A5 0018.2
01841A50 01A5 0018.1
01801A40 01A4 0018.0
01801A50 01A5 0018.0
01841A50 01A5 0018.1
01801A50 01A5 0018.0
01841A50 01A5 0018.1
01841A50 01A5 0018.1
01841A50 01A5 0018.1
01841A50 01A5 0018.1
01841A50 01A5 0018.1
01881A50 01A5 0018.2
01841A50 01A5 0018.1
01801A50 01A5 0018.0
01841A50 01A5 0018.1
01781A50 01A5 0017.2
01841A50 01A5 0018.1
01881A40 01A4 0018.2
01681A50 01A5 0016.2
01841A50 01A5 0018.1
01841A50 01A5 0018.1
01841A50 01A5 0018.1
01841A50 01A5 0018.1
017C1A50 01A5 0017.3
01841A60 01A6 0018.1
01701A50 01A5 0017.0
01681A50 01A5 0016.2
01741A60 01A6 0017.1
01541A50 01A5 0015.1
01781A50 01A5 0017.2
01781A50 01A5 0017.2
017C1A50 01A5 0017.3
01801A50 01A5 0018.0
01801A50 01A5 0018.0
01841A50 01A5 0018.1
01841A50 01A5 0018.1
01841A50 01A5 0018.1
01881A50 01A5 0018.2
01801A50 01A5 0018.0
01841A50 01A5 0018.1
01841A50 01A5 0018.1
017C1A40 01A4 0017.3
01301A40 01A4 0013.0
01341A60 01A6 0013.1
01381A30 01A3 0013.2
012C1A40 01A4 0012.3
01341A40 01A4 0013.1
01381A50 01A5 0013.2
013C1A60 01A6 0013.3
01401A50 01A5 0014.0
013C1A40 01A4 0013.3
01441A40 01A4 0014.1
01441A60 01A6 0014.1
01401A30 01A3 0014.0
014C1A50 01A5 0014.3
01441A70 01A7 0014.1
014C1A50 01A5 0014.3

De eerste is het ruwe 32-bit woord uit de chip. Daarna is de "interne temp". Daar moet je net voor de laatste nibble een punt denken. 1A3 is dus 0x1A graden, dus 26 graden. (plus drie zestiende graad, dus 26.1875)

Om het aflezen makkelijker te maken, heb ik rechts de temp wel met een puntje geprint: de chip heeft twee binare bits achter de comma. Waar dus .3 staat is het formeel .C in echt "hex".

Heeft iemand een idee wat ik verkeerd doe?

(Ik heb bij de temp probe een draadje om de connector gewikkeld, dat gaat naar een female 2p connector, die op z'n beurt op een male 2p header zit die op het printje zit gesoldeerd. Dat mag toch, mits er niet te grote temp verschillen zitten tussen de contactpunten...?)

[update] Zelf opwarming: 1 mA * 3.3V = 3.3mW. 3.3mW * 170 C/W = 0.5 graden C.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Update:
- Connector voor de sensor gemaakt, draadjes korter gemaakt. Resultaat: geen verandering.

- Conform datasheet (Duh!) ontstoorcondensator gemonteerd over VCC/GND. Resultaat: Iets minder ruis op beide temperatuurcurves. Verder geen verandering.

- Andere Thermokoppel aangesloten. Resultaat: Zaagtand is 3 graden celcius ipv 6 graden.....

- tien keer sneller samples nemen.... Resultaat: de zaagtand blijft in de TIJD dezelfde vorm houden. Het hangt niet af van hoe vaak ik hem over SPI uitlees....

Verder niks kunnen bedenken wat ik nog kan proberen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Hugo Welther

Moderator

Even een simpele vraag: Het IC is ook geschikt voor een K-type thermokoppel?
Dit moet dus een MAX31855KASA zijn volgens de datasheet.
De output is 14bits serieel, zit je daar niet (vervormd) tegen aan te kijken?

Het enige dat tussen jou en je doel staat is alles wat jij jezelf verteld dat je het niet kan.

De output is 32bits (of 16, mocht je vinden dat je dan al voldoende info hebt). De bovenste 14 bits is de temperatuur van de probe. In de onderste 16 bits heb je de interne temp en is het "fout" bitje opgesplitst in 3 mogelijke te detecteren oorzaken.

Ja, ik heb een 'KASA versie.

Ik zou denken dat als ik een andere versie had dat de afwijking gewoon evenreding met het verschil met kamertemperatuur is. Dus de K-versie geeft 41 µV/C aan, de N versie 36 µV/C. Dus als de spanning van de probe 410 µV is, dan geeft de K-versie 10 graden boven kamertemp aan (gemeten op het chipje). De N-versie geeft dan 11.4 graden boven kamertemp aan (410/36). Omdat ik nu nog aan het meten ben met de probe op kamertemp, verwacht ik geen verschil met de verschillende versies.

Update: 10µF condensator parallel aan de 100nF ontkoppel gezet. Resultaat is nu dat er geen ruis meer opzit op de interne metingen.
De probe-metingen vliegen nog alle kanten op. De zaagtand van 6 graden is nu soms 50 graden.

Update: 10µF condensator over de temperatuur probe gezet. Nu is de zaagtand tot 3 LSB (0.75 graden) gereduceerd. Da's ineens heel redelijk.

Strak toch?:
http://prive.bitwizard.nl/gnuplot-temperatuur.png

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ik wilde een topic gaan openen, met ongeveer dit subject... Dan maar deze hergebruiken....

Ik had ooit een max 6675 en die heeft jaren goed gewerkt. in verband met de huidige problemen met z'n opvolger de 31855, heb ik even de oude code van AVR naar STM32 geport. Port definities veranderen en klaar.

Dan leest ie zoals hierboven al aangegeven de eerste 16 bits uit. Dat werkte. Jee! Voortgang! Vervolgens heb ik de "16" (uit te lezen bits" in 32 veranderd (met een 16-bit int op de AVR is dat minder eenvoudig). Ook nog redelijke resultaten. Dan werken aan het displayen van de temperatuur en... ineens slaat de chip vast.

Nu krijg ik weer alleen maar 3A088000 als 32-bit woord terug: 928 graden thermokoppel, Dat geloof ik niet. En interne temp ook hartstikke buiten bereik.

Goed.... Dus ineens realiseer ik me: hey, ik ben halverwege deze sessie van STM32-bordje gewisseld. Die andere blijkt op de SPI connector 5V te hebben staan. Dus deze ook op 5V gezet. Andere getallen, maar nog steeds altijd hetzelfde. Datasheet er bij: absolute max: VCC: 4V. Dus die heb ik dan officieel gemold. Nieuwe uit de verpakking...

Dit is de code:

c code:


#define MAX_SO  PB14
#define MAX_SCL PB13
#define MAX_CS  PB12

int max6675_get_temp (void)
{
  unsigned char i;
  int v; 

  set_bit (MAX_CS);
  clr_bit (MAX_SCL);

  make_output (MAX_SCL);
  make_output (MAX_CS);
  make_input (MAX_SO);

  clr_bit (MAX_CS);
  delay_us (1);
  v = 0;
  for (i=0;i<32;i++) {
    v = (v << 1) | get_input (MAX_SO);
    set_bit (MAX_SCL);
    delay_us (1);
    clr_bit (MAX_SCL);
    delay_us (1);
  }
  set_bit (MAX_CS);
  return v;
}

Op de AVR zaten er twee minder "delay_us (1)" calls in.

Dit is met de thermokoppel in een glas thee-water, de "45", oftewel fout-afgelezen: 4.x graad verschil met kamertemp begon me realistisch in de oren te klinken. Zou ie het dan toch doen? Nee: nu in het theewater nog steeds regelmatig 0x45 als meetwaarde en interpretatie 4.x graad is ook verkeerd, het is 4x meer, dat zou ongeveer 17 graden verschil met kamertemp. moeten voorstellen.

Pulsen te kort? Nee met alle overhead duurt een clock pulse rond de 5 microseconde, 2.5us voor de hoge en de lage kant. SPec zet 100ns....

Iemand ideeen?

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Goed. Nu heb ik een verse 31855 van Farnell op een SO8 breakout gesoldeerd en dat in een breadboard gestoken. 100nF over de voeding, 100nF over het thermokoppel (men noemt 10nF, maar die heb ik even niet, temp verandert toch zo snel niet....).

Kamertemp metingen doen het nu goed. Stabiel 25.8 graden en dat wordt netjes wat meer als ik m'n vinger op de chip leg.

Het thermokoppel heb ik gecontroleerd door met de multimeter in "temp" of mV stand te meten. Ziet er goed uit. Ding in een glas warm water, 1 milli volt, 25 graden boven kamertemp en dan zo'n 52 graden op de multimeter. Dat werkt.

Wat ook werkt is "los contactje" bij de thermokoppel. Dan geeft de chip duidelijk in bit 16: "FAULT" aan en in bit 0: "Open circuit!". Klopt helemaal.

Maar de thermokoppel metingen kloppen voor geen meter. Als het uiteinde van de thermokoppel op kamertemp is, geeft ie kleine negatieve getallen aan alsof ie relatief de kamertemp meet. Dat IS ook wel zo, maar volgens mij is het getal wat ik uit de chip krijg "cold junction compensated", dus de absolute temperatuur (in graden C) rekening gehouden met de temperatuur "in de buurt van de chip".

Alles begint een beetje te kloppen als ik er vanuit ga dat ik met de hand de kamertemp er nog bij op moet tellen. In mijn test-bekertje met warm water krijg ik "veel te weinig" positieve getallen, haal ik hem er uit dan voelt ie door verdampend water direct "kouder dan kamertemp" en meet ik negatieve getallen. Raak ik het "business end" van de TC aan met m'n vingers worden de getallen positief en krijg ik getallen die daarbij horen.

Alle bronnen die ik vind (adafruit library, datasheet) doen vermoeden dat ie zelf de interne temp er bij zou moeten tellen. Waarom zou de mijne dat niet doen????

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
buckfast_beekeeper

Golden Member

Wat ik opmaak uit de datasheet is dat de 'koude' temperatuur wordt meegegeven en ook de 'warme'. Lijkt me dan logisch dat je met beiden gaat werken.

Van Lambiek wordt goede geuze gemaakt.

Het ding is een "compatible" opvolger van de MAX6675. Die gaf alleen de eerste 16 bits: De voor de koude junctie gecompenseerde thermokoppel-temperatuur. Precies dezelfde bit-definities. Bij deze mag je dan nog 16 bits doorblijven klokken, waardoor je de "kamertemp" ook nog digitaal kan opvragen. (gewoon omdat de chip dat toch heeft).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ik gooi de handdoek in de ring. Exit MAX31855.

Ik heb een HX711 aangesloten. 470 van E+ naar A+, 470 van A+ naar E- en dan de thermokoppel tussen A+ en A-. Voor zover ik nu inschat krijg ik 10000 counts per graad celcius. Hoewel er veel meer ruis op zit dan dat, makkelijk resolutie tot in de milli-graad. :-) Het blijft lastig in te schatten of variaties in de meting nu veroorzaakt worden door werkelijke temperatuurschommelingen van in de milligraden, of dat het gewoon elektrische ruis is die ergens vandaan komt... Een hand op 5cm afstand heeft ie ECHT door....

Ok. De schaalfactor is NOG groter. 65000 per graad ongeveer. M'n glas warm water koelt zo'n 0.02 graad per 2 seconde af.

Update: De HX711 doet precies wat ie moet doen voor een loadcell: maakt een enigszins stabiele spanning als "excitatiespanning maar gebruikt DAT als referentie om de ADC conversie te doen. Maar als die 5% hoger of lager is als de kamertemp in de zomer of winter 5 graden anders is... soit! De ADC gebruikt dezelfde referentie, dus zal dezelfde load-cell-meting laten zien. Maar de thermokoppel maakt een absolute spanning, die niet afhangt van de grillen van de chip....
Laatste poging met de max. Gewoon in 1x zinnige resultaten. Ik was van thermokoppel gewisseld tijdens het HX711 experiment. Deze doet het beter zullen we maar zeggen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Update: Nu met de nieuwe opstelling met max31855 de eerste reflow gedaan. brposman vroeg wat voor oven ik had. Deels omdat hij de gewenste steilheid van de opwarmcurves niet haalde met wat hij geprobeerd had. Ik ook niet.

x as is tijd in seconden.

Resultaten bekeken: ziet er goed uit. Alles netjes gereflowed. (Nu "kaal" de TC temp gebruikt, in de oude AVR code zat een rare "vermenigvuldig de temperatuur met 1.1"...) Ik ben blij dat ie het weer doet. (De AVR is deels gesneuveld: z'n USB deed het niet meer).

De PWM frequentie is met de upgrade van 0.1 naar 1Hz gegaan. Verder zijn nu de instellingen voor het profiel instelbaar geworden. Kan je instellen en worden dan (op verzoek) weggeschreven in de flash.

[Bericht gewijzigd door rew op woensdag 21 augustus 2019 13:58:27 (16%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
bprosman

Golden Member

Dank, ik zal volgende week ook weer eens spelen. Heb ik (aan de foto's) goed gezien dat jij een conventioneel verwarmings element hebt ? De oventjes waar ik mee speelden zijn IR.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Hallo
bij de max6674 + een k koppel had ik ooit iets dergelijks, en toen opgelost door de negatieve voeding niet meer aan de TC te hangen. Nooit echt begrepen wat er toen aan de hand was. Het ging toen wel over een extreem dun thermo koppel ( minder dan haar dikte)

zie topic "K thermokoppel +max 6674 spooky gedrag"

mvg
jan

Ik heb ook zo'n setje liggen met een M31855K er op.
Je hebt me nu wel nieuwsgierig gemaakt dus ik zal ook eens gaan testen. Mijn stm32 devkit ligt niet thuis dus het zal nog even duren.

Dank voor de functie.

reading can seriously damage your ignorance

Tip: Die condensator over het thermokoppel is niet optioneel.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Bedankt voor de tip, anders was ik waarschijnlijk pas na heel lang prutsen in de datasheet gaan kijken. (Zoals Murphy's al voorspelde)

Noise Considerations
Because of the small signal levels involved, thermocouple
temperature measurement is susceptible to powersupply
coupled noise. The effects of power-supply noise can be
minimized by placing a 0.1μF ceramic bypass capacitor
close to the VCC pin of the device and to GND.

The input amplifier is a low-noise amplifier designed
to enable high-precision input sensing. Keep the ther-
mocouple and connecting wires away from electrical
noise sources. It is strongly recommended to add a
10nF ceramic surface-mount differential capacitor, placed
across the T+ and T- pins, in order to filter noise on the
thermocouple lines.

reading can seriously damage your ignorance

Die chinese breakouts hebben van nature geen condensator (die 10nF) op het thermokoppel. De adafruit breakout en maxim demonstration boards hebben dan ook nog ferriet kraaltjes in serie met de twee draden naar het thermokoppel. Ik heb vandaag mijn versie van de breakout besteld. Hopelijk maandag printjes hier.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ik had geen 10nF liggen, heb er 100n op gezet.

Ik heb de code hieronder aangepast.

code:


#define MAX_SO  PB14
#define MAX_SCL PB13
#define MAX_CS  PB12

void setup() { 
    pinMode( MAX_SCL, OUTPUT );
    pinMode( MAX_CS,  OUTPUT );
    pinMode( MAX_SO,  INPUT );
    Serial.begin( 115200 );
}

void loop() {
    char text[128];
    delay_us( 1000000 );
    uint32_t v = max31855_get_temp();
    sprintf( text, "temp: %ld.%ld\r\n", v/4, v%4*25 );
    Serial.print( text );
}

uint32_t max31855_get_temp(void) {
    uint32_t v = 0; 
    digitalWrite( MAX_CS, HIGH );
    digitalWrite( MAX_SCL, LOW );
    digitalWrite( MAX_CS, LOW );
    delay_us (1);
    for( unsigned char i=0; i<32; i++ ) {
        v = (v << 1) | digitalRead(MAX_SO);
        digitalWrite( MAX_SCL, HIGH );
        delay_us( 1 );
        digitalWrite( MAX_SCL, LOW );
        delay_us( 1 );
    }
    digitalWrite( MAX_CS, HIGH );
    if( v & 0x80000000 ) {
        v = 0xFFFFC000 | ( ( v >> 18 ) & 0x00003FFFF ); // Negative value, drop the lower 18 bits and explicitly extend sign bits.
    } else {
        v >>= 18; // Positive value, just drop the lower 18 bits.
    }
    return v;
}

resultaat:
19:38:56.018 -> temp: 396.50
19:38:57.014 -> temp: 396.75
19:38:58.042 -> temp: 396.25
19:38:59.038 -> temp: 397.50
19:39:00.034 -> temp: 397.50
19:39:01.030 -> temp: 397.50
19:39:02.026 -> temp: 397.50
19:39:03.054 -> temp: 397.50
19:39:04.050 -> temp: 397.75
19:39:05.046 -> temp: 397.75
19:39:06.042 -> temp: 398.0
19:39:07.038 -> temp: 398.0
19:39:08.034 -> temp: 397.75
19:39:09.063 -> temp: 397.50
19:39:10.060 -> temp: 397.75
19:39:11.055 -> temp: 397.50
19:39:12.051 -> temp: 397.25
19:39:13.046 -> temp: 397.50
19:39:14.076 -> temp: 397.50
19:39:15.071 -> temp: 397.75
19:39:16.067 -> temp: 398.0
19:39:17.063 -> temp: 397.75
19:39:18.059 -> temp: 397.0
19:39:19.088 -> temp: 397.50
19:39:20.083 -> temp: 397.50
19:39:21.079 -> temp: 397.50
19:39:22.074 -> temp: 397.50
19:39:23.070 -> temp: 397.25
19:39:24.099 -> temp: 397.75
19:39:25.094 -> temp: 398.0
19:39:26.090 -> temp: 397.75
19:39:27.085 -> temp: 397.25
19:39:28.081 -> temp: 397.50
19:39:29.110 -> temp: 396.50
19:39:30.106 -> temp: 397.75
19:39:31.102 -> temp: 397.75
19:39:32.099 -> temp: 397.75
19:39:33.095 -> temp: 397.50
19:39:34.090 -> temp: 397.0
19:39:35.120 -> temp: 397.25
19:39:36.116 -> temp: 397.75
19:39:37.113 -> temp: 397.25

Ik heb de indruk dat er een verkeerd thermokoppel is aangesloten, zo warm is het niet in mijn woonkamer.

Reactie op hieronder:
Ik heb 18 posities geschoven en de decimalen verwerkt in de code hierboven

[Bericht gewijzigd door hennep op vrijdag 30 augustus 2019 19:42:30 (60%)

reading can seriously damage your ignorance

code:

 
  v = max_6675_get_temp();
  temp = v >> 20;

Dit is wat IK "in prodcutie" nu gebruik. Beetje kort door de bocht: ik gooi zomaar 2 bitjes aan data weg.

Ik heb hetzelfde gedaan: "10nF: waar zou die zijn? 100nF ligt voor het oprapen -> doediemaar. "

Groetje van Zurich airport.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Het kan nog korter door de bocht.

code:


uint32_t max31855_get_temp(void) {
    uint32_t v = 0; 
    digitalWrite( MAX_CS, HIGH );
    digitalWrite( MAX_SCL, LOW );
    digitalWrite( MAX_CS, LOW );
    delay_us (1);
    for( unsigned char i=0; i<12; i++ ) {
        v = (v << 1) | digitalRead(MAX_SO);
        digitalWrite( MAX_SCL, HIGH );
        delay_us( 1 );
        digitalWrite( MAX_SCL, LOW );
        delay_us( 1 );
    }
    digitalWrite( MAX_CS, HIGH );
    return v;
}

Je hoeft die extra bitjes niet te lezen, 12 bits is genoeg, het CS signaal reset de MAX weer. De volgende lezing begint weer bij het hoogste bit. Zo spaar je ook nog eens 40 us aan delays.
Het heeft ook weinig zin om de laagste 2 bits te lezen, die blijven geen seconde stabiel, maar de datasheet geeft ook op dat het ding 2 graden nauwkeurig is.

Met mijn thermokoppel krijg ik een meetwaarde 20x hoger dan verwacht. Zojuist kokend water gemeten, ook 20x te hoog. Ik vermoed dat ik het verkeerde type heb ontvangen.

reading can seriously damage your ignorance

Het lijkt me eerder een "4 bits te veel verschoven" plus een 25% afwijking of zoiets.

Het "thermokoppel effect" is gewoon klein en als er een thermokoppel zou zijn die 20x meer effect zou hebben dan zou iedereen die gebruiken omdat dan de ADC veel eenvoudiger wordt.

De spanning van de thermokoppel kan je gewoon meten met een multimeter. Ongeveer een mv. voor 25 graden verschil met kamertemperatuur. Een glas heet kraanwater levert zoiets voor tien minuten zonder veel problemen. Maar als je kokend water wil doen kan dat natuurlijk ook.

Edit: Voor arduino (Atmega328) had ik vroeger in deze routine 1 van die "delay" dingen weggelaten. Ik had gemeten dat de

c code:

v = (v << 1) | digitalRead(MAX_SO); 

makkelijk 1 microseconde duurde.

De laatste delay_us (1); kan dus weg.

[Bericht gewijzigd door rew op zondag 1 september 2019 11:52:45 (19%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Mijn multimeter heeft een K-type thermokoppel ingang. Die geeft inderdaad gewoon 21 graden aan.
Een van de delays weglaten lijkt me trouwens geen optie met een Arduino Maple. (STM32F103C op 72MHz)

Ik zal de datasheet nog maar eens gaan uitpluizen, de MAX31855K lijkt toch echt voor een K-type te zijn.

reading can seriously damage your ignorance

21 graden klinkt als "niets aangesloten".

Zowel de max als de multimeter doen: "cold junction compensation". Dus nul volt op de ingang betekent "kamertemperatuur". Ik kwam zojuist een thermometer tegen die zei dat het hier 19.8 was, dus dan kan het bij jou zomaar 21 zijn. Een paar dagen geleden was "21" onwaarschijnlijk laag geweest. Of "Bofferd, jij hebt airco".

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

De berekening klopt wel

Ik heb de binaire weergave er even bij gezet:
14:35:57.836 -> temp: 359.00 00010110011100001000000000000000
14:35:58.832 -> temp: 359.25 00010110011101001000000000000000
14:35:59.828 -> temp: 359.25 00010110011101001000000000000000
14:36:00.824 -> temp: 359.25 00010110011101001000000000000000
14:36:01.820 -> temp: 358.75 00010110011011001000000000000000
14:36:02.850 -> temp: 359.25 00010110011101001000000000000000
14:36:03.847 -> temp: 359.00 00010110011100001000000000000000
14:36:04.843 -> temp: 358.75 00010110011011001000000000000000
14:36:05.840 -> temp: 359.25 00010110011101001000000000000000

De laatste waarde
00010110011101001000000000000000

0.25
1
2
4
32
64
256
===
359.25

Ik kom op hetzelfde resultaat. Blijkbaar mankeert er iets aan die chip. De interne temperatuur klopt ook niet, allemaal nullen met een sign bit ervoor. Ik ga een nieuwe bestellen

Als ik het thermokoppel in een borrelende waterkoker zet dan geeft de multimeter 98 graden aan. Jouw aanname dat de omgevingstemperatuur niet wordt gecompenseerd klopt dus niet. Misschien een verschil tussen de 31855 en de 6675, de laatste meet geen interne temperatuur.

En nee, ik heb geen airco. Er hangt, als het warm is, gewoon wit verduisteringsgordijn buiten voor de ramen en deuren die niet door het zonnescherm worden afgedekt.

reading can seriously damage your ignorance

Hij meet "nul graden kamertemperatuur". Dat geloof ik niet. (0.00, met 4 bits achter de comma!).

Daarnaast heb je een heel nette kolom "allemaal 1" in de buurt van het LSB. Ik ga dan gokken dat dit het "FAULT!" bitje is.

Op 1 september 2019 15:01:59 schreef hennep:
Als ik het thermokoppel in een borrelende waterkoker zet dan geeft de multimeter 98 graden aan. Jouw aanname dat de omgevingstemperatuur niet wordt gecompenseerd klopt dus niet.

Nee. Dan heb je verkeerd begrepen wat ik probeerde te zeggen..... Wat ik bedoel is dat als je met de multimeter gewoon de spanning meet, zal je (100-20) * 41 uV meten.

Ik heb dus in deze 2019 thermokoppel-sessie ook een tijd tegen "rare problemen" aan zitten kijken, die ik uiteindelijk met goede thermokoppel verbindingen en een nieuwe farnell-Max31855 heb opgelost. Of de andere goedkopere max31855 ook iets doen, dat weet ik niet, want ik ben weer druk verder met andere dingen.....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/