
Wenn Sie eine Temperatur messen möchten (insbesondere die Oberflächentemperatur eines Objekts), können Sie beispielsweise ein in ein Digitalmultimeter (DMM) integriertes Thermoelement verwenden, aber der größte Nachteil ist, dass Sie das DMM nicht zur Messung von Spannung bzw. Strom verwenden können.
Um das DMM für andere Zwecke zu nutzen, aber dennoch die Oberflächentemperatur zu messen, habe ich ein Thermometer mit dem MAX31855 Board gebaut.
In der obigen Abbildung ist das Thermoelement über Krokodilklemmen angeschlossen, aber das Thermoelement sollte direkt an die Klemmleiste angeschlossen werden. Die kleine weiße Platine ist ein DC-DC-Boost-Modul (5 V). Der AVR befindet sich unter der 7-Segment-LED-Platine. Für die Herstellung dieser Thermometer werden SMD-Bauteile für Transistoren, Widerstände usw. verwendet. (Sie sind auf diesem Bild nicht zu sehen, weil sie sich auf der Rückseite der Platine befinden.)
Kompilieren
Die Verwendung von Siebensegment-Anzeigen, der USART-Ausgang und die
Temperaturkompensation können jeweils aktiviert bzw. deaktiviert
werden.
In der Voreinstellung sind sie alle aktiviert, aber wenn Sie sie nicht
brauchen, kommentieren Sie die entsprechenden Zeilen in
Makefile.settings aus.
Weitere Informationen zur Temperaturkompensation finden Sie unter Korrektur der Temperaturdaten von MAX31855.
Die an das MAX31855 Board angeschlossenen Pins von AVR können in
max31855-config.h geändert werden.
Die Pins von AVR für den Anschluss an die 7-Segment-Platine sind fest vorgegeben. Es ist möglich, andere Pins zu verwenden, indem der Quellcode geändert wird, aber die derzeitige Implementierung geht von den folgenden Annahmen aus, so dass die Verwendung anderer Pins eine größere Änderung des Quellcodes erfordern würde.
-
8 Pins eines Porttyps (z. B.
PB0 bis PB7
oderPC0 bis PC7
) werden zum Ein- und Ausschalten der Segmente verwendet, und -
0- bis 3-Pins eines Porttyps (z. B. PC0 bis PC3) für die Ziffernauswahl.
Dieses Programm verwendet meine
pAVRlib und die
Bibliothek für Thermoelemente basierend auf der NIST ITS-90 Datenbank.
Da es sich um Git-Submodule handelt, können Sie sie entweder mit
--recursive klonen, wie unten gezeigt, oder ein normales git clone und
dann git submodule update -i durchführen.
Hier sind die genauen Schritte:
-
git clone --recursivehttps://github.com/TPKato/max31855ctrl -
editieren Sie
max31855-config.h -
editieren Sie
Makefile.settings(insbesondere den Gerätenamen und die Einstellungen des Brenners) -
make -
make flash
Wenn Sie die Temperaturkompensation nicht verwenden, können Sie sie auch mit
avra bauen.
In diesem Fall führen Sie anstelle des obigen make das folgende aus.
make -f Makefile.avra
make flash(Sie können in make flash mit oder ohne -f Makefile.avra
verwenden.)
Verwendung
Wenn Sie dieses Programm mit USE_USART kompilieren (Default),
erhalten Sie detaillierte Informationen über die serielle
Schnittstelle.
Wenn ein Fehler auftritt, wird der folgende Fehlercode angezeigt:
- 0
-
Für die Temperaturkompensation wurde ein Wert außerhalb des Bereichs angegeben, was zu einer NAN (not a number) führte.
- 1–7
-
Entspricht den 3 LSB-Bits des MAX31855:
- D2
-
SCV Fault (Thermoelement ist mit V$_\text{CC}$ kurzgeschlossen)
- D1
-
SCG Fault (Thermoelement ist mit GND kurzgeschlossen)
- D0
-
OC Fault (Thermoelement ist offen (keine Verbindung))
Repository
License
-
MIT License
References
-
Maxim Integrated, Cold-Junction Compensated Thermocouple-to-Digital Converter Data Sheet, 2015.
