Stellen Sie ein EFM8-basiertes System zur Überwachung und Analyse von Thermoelementmessungen her

All About Micrium Licensing (Juli 2019).

$config[ads_text] not found
Anonim

Stellen Sie ein EFM8-basiertes System zur Überwachung und Analyse von Thermoelementmessungen her


Mit dieser Mikrocontroller-zu-PC-Schnittstelle können Sie bequem eine Temperatur überwachen und visualisieren, wie sich die Temperatur im Laufe der Zeit ändert.

Benötigte Hardware / Software

  • SLSTK2000A EFM8-Evaluierungsboard
  • Simplicity Studio integrierte Entwicklungsumgebung
  • Scilab
  • PmodTC1 Thermoelementmodul (K-Typ Thermoelement enthalten)
  • 5 Stecker-Stecker-Überbrückungskabel

Artikel, die Hintergrundinformationen liefern

  • Wenn Sie mit dem EFM8-Mikrocontroller oder der Silicon Labs-Entwicklungsumgebung noch nicht vertraut sind, werfen Sie einen Blick auf die EFM8-Serie von Silicon Laboratories und / oder eine Einführung in die Projektentwicklung mit einem EFM8-Mikrocontroller
  • Dieser Artikel stellt Scilab vor
  • Zwei frühere Artikel enthalten Informationen zur Einbindung der USB-Kommunikation in ein EFM8-Projekt: Kommunikation mit einem EFM8-Mikrocontroller über USB- und EFM8-Sound-Synthesizer: Wiedergabe von Melodien über USB

Profilieren Ihres Toasterofens

In diesem Projekt werden wir ein System zur Überwachung und Aufzeichnung von Thermoelement-Temperaturmessungen entwickeln. Sie können dieses System sicherlich für jede Art von Temperaturmessung verwenden, die Sie ausführen möchten, aber ich habe eine spezielle Anwendung im Sinn: den Reflow-Toaster. Sie können sich bewusst sein, dass es durchaus möglich ist, oberflächenmontierte Teile auf einer Leiterplatte zu löten, indem Sie einen herkömmlichen Toaster für das Reflow-Löten in Betrieb nehmen. Wenn Sie jemals die Kosten für den Versand von zwei oder drei Platinen für die professionelle Montage in Betracht gezogen haben, wissen Sie, wie wichtig diese kostengünstige Do-it-yourself-Alternative ist.

Eine der Schwierigkeiten mit dem Ansatz des Toasterofens ist jedoch die Temperatursteuerung. Erstens gibt es keine Garantie dafür, dass die Temperatureinstellung des Ofens ausreichend genau ist (sie war schließlich für die Zubereitung von Speisen ausgelegt, nicht für die Leiterplattenmontage). Zweitens ist optimales Reflow-Löten nicht nur eine einzige Temperatur. Folgendes berücksichtigen:

Thermoelemente werden nach den Materialien klassifiziert, aus denen sie bestehen. Die in diesem Projekt verwendete Sorte, nämlich der K-Typ, ist ein allgemein übliches Thermoelement mit guter Genauigkeit und einem großen Temperaturbereich.

Der PmodTC1

In diesem Projekt werden wir Daten von unserem Thermoelement mit Hilfe des PmodTC1-Moduls sammeln, das wenig mehr als eine Breakout-Platine für den "Kaltstellenkompensierten Thermoelement-zu-Digital-Wandler MAX31855" ist. Wie der Name schon sagt, ist dieser IC direkt mit dem Thermoelement verbunden und gibt die gemessene Temperatur als Binärzahl aus.

Was wir hier haben, ist eine 14-Bit Zweierkomplementnummer. Die oberen 12 Bits können als eine normale 12-Bit-Zahl mit Vorzeichen interpretiert werden, die direkt der Temperatur in Celsius entspricht. (Beachten Sie, dass das Scilab-Skript derzeit nur für die Verarbeitung positiver Zahlen vorgesehen ist.) Die 2 niedrigsten Bits berücksichtigen die Auflösung des MAX31855 von 0, 25 ° C: Binär "00" für diese beiden Bits entspricht Null im Dezimalteil der Temperatur; "01" entspricht 0, 25; "10" entspricht 0, 50; und "11" entspricht 0, 75. Vergessen Sie auch nicht, dass der SPI-Bus des EFM8 in Einheiten von Bytes und nicht in Bits arbeitet. Die zwei Bytes, die wir vom SPI-FIFO lesen, bilden eine 16-Bit-Zahl; die oberen 14 Bits sind die Temperaturdaten und die unteren zwei Bits können ignoriert werden. Der folgende Code zeigt, wie wir diese Daten in eine Drei-Byte-Nachricht konvertieren, die an Scilab gesendet wird:

 SI_INTERRUPT (SPI0_ISR, SPI0_IRQn) { unsigned int RawTempData; //clear interrupt flag SPI0FCN1 &= ~SPI0FCN1_RFRQ__BMASK; RawTempData = SPI0DAT; RawTempData = (RawTempData <> 12); TempDataTx(1) = LOWBYTE(RawTempData >> 4); switch((RawTempData & (BIT3|BIT2)) >> 2) { case 0: TempDataTx(2) = 0; break; case 1: TempDataTx(2) = 25; break; case 2: TempDataTx(2) = 50; break; case 3: TempDataTx(2) = 75; break; } TEMP_DATA_READY = TRUE; } 

Code herunterladen

Wir erhalten das High-Byte, indem wir die 16-Bit-Nummer 12 Bits nach rechts verschieben, und wir erhalten das Low-Byte, indem wir 4 Bits nach rechts verschieben. Wir konvertieren dann die verbleibenden zwei Bits in eine Ganzzahl, die den Dezimalteil repräsentiert, und Scilab teilt diese ganze Zahl einfach durch 100 und addiert das Ergebnis zum nicht-dezimalen Teil.

Das System in Aktion

Die erste Kurve ist einfach eine Messung der Innenlufttemperatur. Beachten Sie die geringfügigen Abweichungen.

Dieses Diagramm zeigt das Temperaturprofil für einen Standardofen, der auf 350 ° F eingestellt ist:

Beachten Sie die große Diskrepanz in der Endtemperatur. Vermutlich ist dies sowohl auf die Ungenauigkeit des Temperatursensors des Ofens als auch auf den Unterschied in der Position zwischen unserem Thermoelement und dem Sensor des Ofens zurückzuführen.

Selbst wenn Sie noch nicht bereit sind für den Reflowprozess von Toastern, könnte dieses System immer noch nützlich sein, um die Temperatur während des Lötens mit einer Heißluftpistole zu überwachen und fein einzustellen. Dieses Video (mit 8-facher Normalgeschwindigkeit) zeigt Temperaturschwankungen, die aufgezeichnet wurden, während ein Thermoelement, das zwischen einem IC-Stift und der PCB-Oberfläche eingeklemmt war, durch eine auf die Mitte seines Temperaturbereichs eingestellte Heißluft-Lötpistole aufgeheizt wurde; Die Heißluftpistole wird nach etwa 130 Sekunden entfernt.

Gib diesem Projekt einen Versuch für dich selbst! Holen Sie sich die Stückliste.