Forum: Mikrocontroller und Digitale Elektronik Problem beim Auslesen eines MAX31855K


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Karl j. Z. (Firma: privat) (kalli53)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen.

Ich versuche seit Tagen mit einem Arduino Nano und einem MAX31855K 
Temperaturen zu messen. Der Fühler ist ebenfalls ein K-Typ. An meinem 
Multimeter zeigt er die richtige Temperatur an.

Der Sketch ist der Beispiel-Sketch von Adafruit.
1
/*************************************************** 
2
  This is an example for the Adafruit Thermocouple Sensor w/MAX31855K
3
4
  Designed specifically to work with the Adafruit Thermocouple Sensor
5
  ----> https://www.adafruit.com/products/269
6
7
  These displays use SPI to communicate, 3 pins are required to  
8
  interface
9
  Adafruit invests time and resources providing this open source code, 
10
  please support Adafruit and open-source hardware by purchasing 
11
  products from Adafruit!
12
13
  Written by Limor Fried/Ladyada for Adafruit Industries.  
14
  BSD license, all text above must be included in any redistribution
15
 ****************************************************/
16
17
#include <SPI.h>
18
#include "Adafruit_MAX31855.h"
19
20
// Default connection is using software SPI, but comment and uncomment one of
21
// the two examples below to switch between software SPI and hardware SPI:
22
23
// Example creating a thermocouple instance with software SPI on any three
24
// digital IO pins.
25
#define MAXDO   3
26
#define MAXCS   4
27
#define MAXCLK  5
28
29
// initialize the Thermocouple
30
Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO);
31
32
// Example creating a thermocouple instance with hardware SPI
33
// on a given CS pin.
34
//#define MAXCS   10
35
//Adafruit_MAX31855 thermocouple(MAXCS);
36
37
void setup() {
38
  while (!Serial); // wait for Serial on Leonardo/Zero, etc
39
  
40
  Serial.begin(9600);
41
  
42
  Serial.println("MAX31855 test");
43
  // wait for MAX chip to stabilize
44
  delay(500);
45
}
46
47
void loop() {
48
  // basic readout test, just print the current temp
49
   Serial.print("Internal Temp = ");
50
   Serial.println(thermocouple.readInternal());
51
52
   double c = thermocouple.readCelsius();
53
   if (isnan(c)) {
54
     Serial.println("Something wrong with thermocouple!");
55
   } else {
56
     Serial.print("C = "); 
57
     Serial.println(c);
58
   }
59
   //Serial.print("F = ");
60
   //Serial.println(thermocouple.readFarenheit());
61
 
62
   delay(1000);
63
}

Als Ergebnis kommt dies dabei rum:
Internal Temp = -56.00
C = -931.75
Internal Temp = 97.00
C = -64.00
Internal Temp = -62.00
C = -505.75
Internal Temp = -80.00
C = -387.75
Internal Temp = -96.00
C = -124.75
Internal Temp = -100.00
C = -1087.25
Internal Temp = 32.00
C = -1262.25
Internal Temp = 0.00
C = -1146.25
Internal Temp = 0.00
C = -1166.50
Internal Temp = -58.00
C = -1063.25
Internal Temp = -64.00
C = -1043.75

Im Anhang sind der Schaltplan und ein paar Bilder.

Kann mir da einer helfen?

Kalli

: Bearbeitet durch User
von Mick (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Schliesse mal einen 100nF an -(Red) und +(Yellow). (Wir hatten mal ein 
ähnliches Problem. Das ist aber schon sehr lange her, darum weiss ich 
nicht mehr genau, was die Ursache war.)

von Karl j. Z. (Firma: privat) (kalli53)


Bewertung
0 lesenswert
nicht lesenswert
Danke.
Leider bringt das keine Änderung.
Ich habe drei dieser Platinen und keine bringt ein anderes Ergebnis.

Kalli

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Karl j. Z. (Firma: privat) (kalli53)


Bewertung
0 lesenswert
nicht lesenswert
Problem gelöst!
Ich hab ein neues Modul (incl. Pegelanpassung) bei RoboterBausatz.de 
bestellt und schon ist die Welt in Ordnung.
Ob es an der günstigen Importware lag?????

Kalli

von Christopher J. (christopher_j23)


Bewertung
0 lesenswert
nicht lesenswert
Die max31855 haben am Thermoelement die mittlere Brückenspannung von 
2,5V anliegen. Da muss man schon ein bisschen aufpassen wo man das Teil 
anlegt, inkl. der eigenen Finger (ESD). Meist ist auf den Breakoutboards 
keinerlei Schutz verbaut, egal wo die herkommen und das Teil vom 
Roboterbausatzshop ist zu 99,99% genauso aus Fernost importiert wie dein 
vorheriges Teil.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.