schnelle Ventilsteuerung


Google-Suche auf MEINE-SCHALTUNG.de :





Dauerkalender


Temperaturmessung mit PT100


Temperatursensor

Temperatursensor PT100


In der folgenden Schaltung soll mithilfe des temperaturabhängigen Widerstandes PT100 Temperatur im Bereich von 0°C bis 100°C gemessen werden. Die Temperatursensoren PT100 und PT1000 sind in der Industrie sehr verbreitet. Sie werden aus Platin hergestellt und im Temperaturbereich −200 °C bis 850 °C eingesetzt. Die Sensoren weisen weitgehend eine lineare Kennlinie auf und erlauben präzise Temperatur Messungen. In dem Versuch kommt der Platinfühler PT100 Model H2-012010 der Fa. Fühlerdirekt zum Einsatz. Anhand der beigefügten Werte-Tabelle kann ersehen werden, dass die Temperaturänderungen des Fühlers in Abhängigkeit von der Temperatur nahezu linear verlaufen:

PT100 Temperaturverlauf

PT100 Temperaturverlauf

Als Meßsignal dient der Spannungsabfall an dem PT100 Fühler. Um den Einfluss der Eigenerwärmung durch den Strom zu begrenzen, wird der Fühler von einer Konstantstromquelle mit Strom versorgt. Dabei ist zu beachten, dass der Strom den Wert von 1 mA möglichst nicht überschreitet. Als Stromquelle verwenden wir in dem Versuch den einstellbaren Spannungsregler LM317, der als Stromregler verdrahtet wird. Die Maßnahme ist sinnvoll. Der Widerstand des Fühlers ist sehr gering und liegt in unserem Messbereich bei 100 bis 140 Ohm. Bei einem Strom von 1mA entsteht hier eine Spannungsdifferenz von gerade 40 mV. Der Wert ist äußerst klein und kann schnell durch Eigenerwärmung verfälscht werden. Die Einstellung des LM317 auf den gewünschten Strom ist sehr leicht und wird mit nur einem Widerstand realisiert (R1). Die Berechnungen des Widerstandes kann man mit E-Rechner schnell erledigen:

E-Rechner: LM317 (Stromregler)


LM317

LM317


Damit Arduino an seinem analogen Eingang mit dem Meßsignal etwas anfangen kann, muss es verstärkt werden. Die Aufgabe übernimmt der Operationsverstärker (OPV) TL071CP. Die Operationsverstärker können auch sehr schwache Signale sehr stark verstärken. In unserem Fall wollen wir den maximalen Spannungsabfall am PT100 von 40 mV auf 5 V erweitern. Damit beträgt der Verstärkungsfaktor (V=Ua/Ue=5 / 0,04) 125. Um eine gewünschte Verstärkung an einem OPV zu erreichen, werden zwei Widerstände benötigt (hier R2 und R3). Die Berechnung der Widerstände kann ebenfalls der E-Rechner übernehmen:

E-Rechner: OPV (nicht invertierend)


TL071CP

TL071CP

TL071CP - Pinbelegung


Es bleibt nur noch das Problem der Offset-Spannung. Bei der Temperatur von 0 °C beträgt der Widerstand des Fühlers 100 Ohm. Im Punkt A (Messsignal) messen wir jetzt (U=I*R=100*0,001) 0,1 V. Wenn wir hier nichts unternehmen, bekommen wir an dem Ausgang des OPV eine Spannung im Wert von 12,5 V (Ua = 125 * 0,1V). Das wäre eine Katastrophe. Es gilt jetzt, diese Spannung auf 0 V zu reduzieren.
Hierzu nutzen wir zwei weitere Anschlüsse (Pin 1 und 5) des Operationsverstärkers. Mit weiteren Widerständen lässt sich diese Spannung beseitigen.
Damit das möglich ist, wird der Bereich der Spannungsversorgung des OPV erweitert. Mit einem DC/DC-Wandler drehen wir die Versorgungsspannung in Minus-Bereich und versorgen damit den Baustein. Der OPV wird jetzt mit einer Spannung -9 V bis +9 V versorgt. Anschließend werden drei Widerstände R4, R5 und R6 zusammen mit dem Potenziometer P1 an die Anschlüsse Pin 1 und 5 des OPV angeschlossen.

Bei der Inbetriebnahme wird an die Anschlüsse A und B ein 100 Ohm Widerstand angeschlossen. Mit dem Potenziometer P1 kann dann die Offset-Spannung genullt werden. Sobald dies erreicht ist, kann der Widerstand gegen PT100 getauscht und der Ausgang des OPV an den analogen Eingang des Arduino angeschlossen werden. Die Spannungsdifferenz von 0 bis 40 mV wird verstärkt und an Arduino weitergeleitet. Der Rest der Aufgabe, die Anzeige der Messwerte, muss jetzt Arduino übernehmen.

AM1S-1212SZ

DC/DC-Wandler AM1S-1212SZ

Kurznotiert - DC/DC-Wandler AM1S-1212SZ


Anzeige

Die Messwerte werden auf einem 2x16 Display angezeigt. Das Display wird dank des Treibers FC-113 über den I2C-Bus angesteuert. Für die Spannungsversorgung des Displays sorgt der Festspannungsregler L78L05, der konstant 5 VDC liefert.

LCD 16x2


Arduino Nano

Arduino Nano

Arduino (Einführung in die Programmierung)
Arduino - Versuche

Schaltplan

Schaltplan



Testschaltung

Testschaltung



Das Programm
(Der Sketch)


Die Aufgabe des Programms ist es, den aktuellen Wert am analogen Eingang auszulesen, daraus den aktuellen Widerstand des Fühlers zu bestimmen und anschließend die aktuelle Temperatur zu ermitteln.
Da die ausgelesenen Werte am analogen Eingang etwas hin und her springen, wird aus den letzten 20 Werten ein Mittelwert gebildet. Dadurch wird die Anzeige deutlich beruhigt.
Im zweiten Schritt wird der aktuelle Widerstand des PT100 Sensors ermittelt. Dabei gehen wir davon aus, dass wir 5 V am analogen Eingang des Arduino bei 140 Ohm erreichen.
Durch PT100 fließt ein Strom von ca. 1 mA. Daraus ergibt sich ein Spannungsabfall von U = 40 Ohm * 0,001 A = 0,04 V. Diese Spannung wird um den Faktor 125 verstärkt. Das ergibt am Ausgang des Verstärkers eine Spannung im Wert von U = 0,04 V * 125 = 5 V. Bei den Berechnungen werden nur die 40 Ohm berücksichtigt. Den Einfluss von restlichen 100 Ohm haben wir durch Offset-Manipulationen beseitigt. Somit gilt:

R = (Eingangswert * 40 / 1023) + 100.

Während der praktischen Tests ergab sich eine Messabweichung von einigen Prozenten. Um zufriedenstellende Ergebnisse zu bekommen, müssen diese Abweichungen korrigiert werden. Hier wird also zusätzlich ein Korrekturfaktor eingeführt.

Die Berechnung der Temperatur ergibt sich aus der Formel:

Formel

Formel

Konstanten

Konstanten


Anschließend werden die Werte auf dem Display angezeigt.

// ----------------------------------------------------------
// Temperaturmessung mit PT100
// mit LM317, DC/DC-Wandler, Operationsvertärker
// Arduino Nano, IDE 1.8.13
// ----------------------------------------------------------

#include <LiquidCrystal_I2C.h>                             // Display Bibliothek 
LiquidCrystal_I2C lcd(0x27,16,2);                          // Display 16x2, Adresse 0x27

float MFeld [20];                                          // Tabelle für Mittelwert

void setup() {
    lcd.init();                                            // Display initialisieren 
    lcd.backlight();                                       // Hintergrundbeleuchtung
}


void loop() {
    lcd.clear();
                                                           // Wert auslesen 
    float A_Wert = analogRead(A0);
                                                           // Mittelwert festlegen 
    float Mittelwert = 0;
    for (int i = 19; i > 0; i--) {
      MFeld [i] = MFeld [i-1];
      Mittelwert = Mittelwert + MFeld [i]; }
    MFeld [0] = A_Wert;
    Mittelwert = (Mittelwert + MFeld[0]) / 20;
                                                           // Widerstand berechnen                                    
    float R = Mittelwert * 40 / 1023;
    float Korrektur = R * 0.1;                             // Korrektur in %
    R = R - Korrektur + 100; 
                                                           // Widerstand ausgeben
    lcd.setCursor(1, 0);                                   // Start Anzeige R
    lcd.print("R = ");
    String Text = String(R);
    lcd.setCursor(5, 0);                                   
    lcd.print(Text + " Ohm");
                                                           // Temperatur
    float a = -0.00005775;                                 // = 100 * -5.775E-07
    float b = 0.39083;                                     // = 100 * 3.9083E-03
    float c = 100 - R;
    float D = sq(b) - (4 * a * c);
    float T = (-b + sqrt(D)) / (2 * a);

    lcd.setCursor(1, 1);                                   // Start Anzeige T
    lcd.print("T = ");
    Text = String(T);
    lcd.setCursor(5, 1);                                   
    lcd.print(Text + " *C");    
    
    delay(1000);
}
// ***************************************************************************************        
   

Kurzvideo


Temperatur


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz