Inhaltsverzeichnis:
Video: DIY-Temperatursensor mit einer Diode - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Da eine der Tatsachen bei PN-Übergängen ist, dass sich ihr Durchlassspannungsabfall entsprechend dem Durchgangsstrom und auch der Sperrschichttemperatur ändert, werden wir dies verwenden, um einen einfachen, billigen Temperatursensor herzustellen.
Dieses Setup wird häufig in vielen integrierten Schaltkreisen verwendet, um die interne Temperatur und viele Temperatursensoren zu messen, wie der berühmte LM35, der auf dieser Eigenschaft basiert.
Einfach der Durchlassspannungsabfall einer Diode (bei der es sich um einen einzelnen PN-Übergang handelt) ändert sich, wenn sich die Menge des durch sie fließenden Stroms ändert, auch wenn sich die Diodentemperatur ändert, ändert sich der Spannungsabfall (wenn die Temperatur steigt, Abfall um einen Wert von (1,0 Millivolt bis 2,0 Millivolt für Siliziumdioden und 2,5 Millivolt für Germaniumdioden) verringert.
Wenn Sie also einen konstanten Strom durch die Diode leiten, sollte der Durchlassspannungsabfall jetzt nur noch von der Diodentemperatur abhängen. Wir müssen jetzt nur noch die Durchlassspannung der Diode messen, einige einfache Gleichungen anwenden und voilà hier ist Ihr Temperatursensor !!!
Lieferungen
1 - 1n4007 Diode #12 - 1 Kohm Widerstand #13 - Arduino Board
Schritt 1: Schaltplan
Wie Sie im Schaltplan sehen können, ist es sehr einfach. Durch die Reihenschaltung der Diode mit einem Strombegrenzungswiderstand und einer stabilen Spannungsquelle können wir eine grobe Konstantstromquelle erhalten, sodass die gemessene Spannung an der Diode nur aufgrund der Temperaturänderung variiert. Stellen Sie sicher, dass der Widerstandswert nicht ist zu niedrig, dass viel Strom durch die Diode fließt und eine merkliche Selbsterwärmung in der Diode verursacht, auch kein sehr hoher Widerstand, so dass der Strom nicht ausreicht, um eine lineare Beziehung zwischen der Durchlassspannung und der Temperatur aufrechtzuerhalten.
ein 1 Kilo Ohm Widerstand mit 5V Versorgung sollte einen 4 Milliampere Diodenstrom ergeben, was für diesen Zweck ausreichend ist. I(Diode) = VCC / (Rseries + Rdiode)
Schritt 2: Codierung
Wir müssen bedenken, dass es einige Werte gibt, die im Code optimiert werden müssen, um bessere Ergebnisse zu erzielen, wie zum Beispiel:
1 - VCC_Voltage: Da der Wert analogRead () von der VCC des ATmega-Chips abhängt, müssen wir ihn nach der Messung auf der Arduino-Platine zur Gleichung hinzufügen.
2 - V_OLD_0_C: der Durchlassspannungsabfall der verwendeten Diode bei einem Strom von 4 mA und einer Temperatur von 0 Celsius
3 - Temperature_Coefficient: der Temperaturgradient Ihrer Diode (besser aus dem Datenblatt zu entnehmen) oder Sie können ihn mit dieser Gleichung messen: Vnew - Vold = K (Tnew - Told)
wo:
Vnew = neu gemessene Abfallspannung nach dem Aufheizen der Diode
Vold = gemessene Spannungsabfall bei einer gewissen Raumtemperatur
Tnew = die Temperatur, auf die die Diode erhitzt wurde
Gesagt = die alte Raumtemperatur, bei der Vold gemessen wurde
K = Temperature_Coefficient (ein negativer Wert, der zwischen -1,0 und -2,5 Millivolt variiert) Schließlich können Sie jetzt den Code hochladen und Ihre Temperaturergebnisse abrufen.
#define Sens_Pin A0 //PA0 für STM32F103C8-Platine
doppeltes V_OLD_0_C = 690,0; //690 mV Durchlassspannung bei 0 Celsius bei 4 mA Prüfstrom
doppelt V_NEW = 0; // Neue Durchlassspannung bei Raumtemperatur bei 4 mA Prüfstrom doppelte Temperatur = 0,0; // Raum berechnete Temperatur double Temperature_Coefficient = -1,6; // -1,6 mV Änderung pro Grad Celsius (-2,5 für Germaniumdioden), besser aus dem Diodendatenblatt Double VCC_Voltage = 5010.0; // Spannung an der 5V-Schiene des Arduino in Millivolt (erforderlich für bessere Genauigkeit) (3300.0 für stm32)
Leere Einrichtung () {
// Geben Sie Ihren Setup-Code hier ein, um ihn einmal auszuführen: pinMode(Sens_Pin, INPUT); Serial.begin (9600); }
Leere Schleife () {
// Geben Sie Ihren Hauptcode hier ein, um ihn wiederholt auszuführen: V_NEW = analogRead (Sens_Pin) * VCC_Voltage/1024.0; // durch 4,0 teilen, wenn Sie einen 12-Bit-ADC verwenden Temperatur = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);
Serial.print ("Temp = ");
Serial.print (Temperatur); Serial.println("C");
Verzögerung (500);
}
Schritt 3: Bessere Werte erzielen
Ich denke, es ist ratsam, bei diesem Projekt ein vertrauenswürdiges Temperaturmessgerät an Ihrer Seite zu haben.
Sie können sehen, dass die Messwerte einen merklichen Fehler aufweisen, der 3 oder 4 Grad Celsius erreichen kann, woher kommt dieser Fehler?
1 - Möglicherweise müssen Sie die im vorherigen Schritt erwähnten Variablen anpassen
2 - Die ADC-Auflösung des Arduino ist niedriger als das, was wir brauchen, um die kleine Spannungsdifferenz zu erkennen
3 - Die Spannungsreferenz des Arduino (5V) ist zu hoch für diese kleine Spannungsänderung an der Diode
Wenn Sie dieses Setup also als Temperatursensor verwenden möchten, sollten Sie sich bewusst sein, dass es zwar billig und praktisch ist, aber nicht genau ist, aber es kann Ihnen eine sehr gute Vorstellung von der Temperatur Ihres Systems geben, entweder es ist auf einem PCB oder montiert auf laufendem Motor etc…
Dieses anweisbare soll die geringstmögliche Anzahl von Komponenten verwenden Aber wenn Sie die genauesten Ergebnisse aus dieser Idee erzielen möchten, können Sie einige Änderungen vornehmen:
1 - fügen Sie einige Verstärkungen und Filterstufen mit Operationsverstärkern wie in diesem Link hinzu2 - verwenden Sie einen niedrigeren internen analogen Referenzcontroller als die STM32F103C8-Boards mit 3,3 Volt analoger Referenzspannung (siehe Punkt 4)3 - verwenden Sie die interne analoge 1,1 V-Referenz in der Arduino, aber beachten Sie, dass Sie nicht mehr als 1,1 Volt an einen der analogen Arduino-Pins anschließen können.
Sie können diese Zeile in der Setup-Funktion hinzufügen:
analogReferenz (INTERN);
4 - Verwenden Sie einen Mikrocontroller mit einem höher auflösenden ADC als STM32F103C8 mit einer 12-Bit-ADC-Auflösung. Kurz gesagt, dieses arduino-basierte Setup kann einen guten Überblick über die Temperatur Ihres Systems geben, aber nicht so genaue Ergebnisse (ca. 4,88 mV / Messwert)
das STM32F103C8-Setup würde Ihnen ein ziemlich genaues Ergebnis liefern, da es einen höheren 12-Bit-ADC und einen niedrigeren analogen 3,3-V-Referenzwert (ca. 0,8 mV/Messwert) hat.
Das war's !!:D
Empfohlen:
DIY Circuit Activity Board mit Büroklammern - HERSTELLER - STEM: 3 Schritte (mit Bildern)
DIY Circuit Activity Board mit Büroklammern | HERSTELLER | STEM: Mit diesem Projekt können Sie den Weg des elektrischen Stroms ändern, um durch verschiedene Sensoren zu laufen. Mit diesem Design können Sie zwischen dem Aufleuchten einer blauen LED oder dem Aktivieren eines Summers wechseln. Sie haben auch die Wahl, einen lichtabhängigen Widerstand mit
Erstellen und Einfügen einer Tabelle und Hinzufügen zusätzlicher Spalten und/oder Zeilen zu dieser Tabelle in Microsoft Office Word 2007 – wikiHow
Erstellen und Einfügen einer Tabelle und Hinzufügen zusätzlicher Spalten und/oder Zeilen zu dieser Tabelle in Microsoft Office Word 2007: Hatten Sie schon einmal viele Daten, mit denen Sie arbeiten, und dachten Sie sich … dieser Daten besser und verständlicher aussehen?" Wenn ja, dann könnte eine Tabelle in Microsoft Office Word 2007 Ihre Antwort sein
So leiten Sie ein USB-Modem zu einer virtuellen VMware ESXi-Maschine um – wikiHow
So leiten Sie ein USB-Modem zu einer virtuellen VMware ESXi-Maschine um: Hallo zusammen! Heute erkläre ich Ihnen, wie Sie ein USB-Modem auf eine virtuelle VMware ESXi-Maschine umleiten. Auf die gleiche Weise können Sie einen Speicherstick und einige andere USB-Geräte umleiten. Diese altbewährte VMware-Funktion hat ihre Vor- und Nachteile, daher haben wir
Exportieren einer SVG-Datei in Fusion 360: 5 Schritte (mit Bildern)
Exportieren einer SVG-Datei in Fusion 360: Ein Freund hat kürzlich einen neuen Laserschneider gekauft und mich gefragt, wie man mit Fusion 360 SVG-Dateien exportiert. Ich schlug vor, stattdessen einfach DXF-Dateien zu exportieren, aber es stellte sich heraus, dass die von ihm gekaufte Lasermarke nur SVG-Dateien akzeptiert. Das war das gleiche Problem wie ich
So installieren Sie ein SSL-Zertifikat auf einer WordPress-Website: 5 Schritte
So installieren Sie das SSL-Zertifikat auf der WordPress-Website: Wir werden eine Anleitung zur Installation des SSL-Zertifikats auf der WordPress-Website teilen. Aber bevor Sie das Zertifikat installieren, müssen Sie einen günstigen SSL-Zertifikatanbieter wie das Comodo SSL-Zertifikat finden