Mein erstes arduino Projekt:
Nano clone AZ-Delivery mit Max6675 und Typ K Sensor für Abgastempmessung.
Ich bekomme falsche/keine Werte. Keine Wackelkontakte.
Der Typ k Sensor ist richtig an +/- angeschlossen. Sensor ist i.O.
An Handmessgerät funktioniert er.
Diverse Pinbelegungen nach diversen Projektbeschreibungen aus dem Netz probiert.
Benutze folgende library/sketch:
// this example is public domain. enjoy!
// https://learn.adafruit.com/thermocouple/
#include "max6675.h"
int thermoDO = 8;
int thermoCS = 9;
int thermoCLK = 10;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
void setup() {
Serial.begin(9600);
Serial.println("MAX6675 test");
// wait for MAX chip to stabilize
delay(2000);
}
void loop() {
// basic readout test, just print the current temp
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
// For the MAX6675 to update, you must delay AT LEAST 250ms between reads!
delay(1000);
}
Monitoring Werte:
F =32.00
C = 0.00
Wo liegt der Fehler?
Bitte nur sachliche Hinweise.
Für alles andere bin schon zu alt.
Danke im Voraus.
32°F sind 0°C - soweit alles richtig. Das ist auch kein Wunder, die Library liest immer Celsius und rechnet dann um.
Das einzig bedenkliche aus meiner Sicht: Wenn der Kommentar mit den 250ms Pause zwischen zwei Messungen stimmt, sollte diese Zeit auch zwischen den Celsius- und Fahrenheit-Messungen liegen.
Begründung: Fahrenheit ist in der Adafruit-MAX6675-Library so implementiert:
Danke für die Antworten.
Habe mich an einer Stelle definitv nicht korrekt ausgedrückt:
Es müsste Zimmertemp bzw auch Tempänderung bei Erwärmung angezeigt werden.
Wenn wieder Bastelzeit ist werde ich " <max6675.h> " probieren
"Probleme mit dem Interface" habe ich auch gedacht da nichts rauskommt ausser "Standardwerte" 0C 32F oder auch 273K. Je nach verwendertem Sketch in dem auch Kelvin angezeigt wird.
Habe 2 neue Max6675 und 2 Nanos probiert.
Alle Kombis gleiches Resultat.
Nach meinem Post habe ich eine Kabelverbindung +VCC oder -Gnd gelöst.
Dann sind die Monitoringwerte auf max Werte hoch: 1024C und 1825 F
Sketch neu hochgeladen und diesen Pol weggelassen. Weiterhin 1024C und 1825 F
Leider weiss ich nicht mehr ob VCC oder Gnd.
Vielleicht hilft diese Info noch weiter.
Es funzt jetzt vom Feinsten. Meine Lösung:
OEM Nano, MAX 31855, Pinbelegung richtige Pinbelegung: MAXDO7, MAXCS6, MAXCLK5
Pinbelegung herauszufinden war die Lösung.
Siehe Sketch unten.
Danke für die Mithilfe. Vorhergehende Fehler zu suchen ist für mich nicht weiter zielführend.
#include <SPI.h> #include "Adafruit_MAX31855.h"
// Default connection is using software SPI, but comment and uncomment one of
// the two examples below to switch between software SPI and hardware SPI:
// Example creating a thermocouple instance with software SPI on any three
// digital IO pins. #define MAXDO 7 #define MAXCS 6 #define MAXCLK 5
// initialize the Thermocouple
Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO);
// Example creating a thermocouple instance with hardware SPI
// on a given CS pin.
//#define MAXCS 10
//Adafruit_MAX31855 thermocouple(MAXCS);
void setup() {
Serial.begin(9600);
while (!Serial) delay(1); // wait for Serial on Leonardo/Zero, etc
Serial.println("MAX31855 test");
// wait for MAX chip to stabilize
delay(500);
Serial.print("Initializing sensor...");
if (!thermocouple.begin()) {
Serial.println("ERROR.");
while (1) delay(10);
}
Serial.println("DONE.");
}
void loop() {
// basic readout test, just print the current temp
double c = thermocouple.readCelsius();
if (isnan(c)) {
Serial.println("Something wrong with thermocouple!");
} else {
Serial.print("C = ");
Serial.println(c);
}