Events

:

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    YouTube

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden

    Der Technik-Blog

    Arduino PT100 Temperature Sensor Converter

    PT100 Arduino Sketch (LCD)

    Alex @ AEQ-WEB

    Beispielcode vom Projekt PT100 Temperatur messen mit dem Arduino. Dieser Beispielcode gibt die gemessenen Temperaturwerte im Serial Monitor und auf einem 16x2 I2C LC-Display aus.

    Werbung:

    //More information about this project can be find here: https://www.aeq-web.com/pt100-temperature-sensor-arduino-r-u-converter/
    #include <SoftwareSerial.h>
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    LiquidCrystal_I2C lcd(0x27, 16, 2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
    
    const int pt100Pin = A0;  // Define PT100 input pin
    const float offset = -0.00; // Offset (depending on the line resistance)
    
    // Define known points (voltage & temperature)
    const float voltages[] = { 0.079, 0.56, 1.04, 1.99, 2.95 };    // Voltages in Volts
    const float temperatures[] = { 0, 25.0, 50.0, 100.0, 150.0 };  // Temperatures in Celsius
    
    const int numPoints = sizeof(voltages) / sizeof(voltages[0]);
    
    // Linear interpolation
    float interpolate(float x, float x0, float x1, float y0, float y1) {
      return y0 + (y1 - y0) * (x - x0) / (x1 - x0);
    }
    
    // Calculate temperature from voltage
    float calculateTemperature(float voltage) {
    
      // Set to 0°C if voltage is higher than max. known point
      if (voltage > voltages[numPoints - 1]) {
        return 999;
      }
    
      // Find limits for interpolation
      int i = 0;
      while (voltage > voltages[i + 1] && i < numPoints - 1) {
        i++;
      }
    
      // Interpolate between limits
      return interpolate(voltage, voltages[i], voltages[i + 1], temperatures[i], temperatures[i + 1]);
    }
    
    void setup() {
      Serial.begin(9600);
      lcd.init();
      // Print a message to the LCD.
      lcd.backlight();
      lcd.setCursor(2, 0);
      lcd.print("PT100 Tester");
      lcd.setCursor(0, 1);
      lcd.print("WWW.AEQ-WEB.COM");
      delay(5000);
      lcd.clear();
    }
    
    void loop() {
    
      int sensorValue = analogRead(pt100Pin);
      float voltage = sensorValue * (5.0 / 1023.0);
      float temperature = calculateTemperature(voltage)+offset;
    
      lcd.clear();
      Serial.print("Voltage: ");
      Serial.print(voltage, 3);
      Serial.print("V, Temperature: ");
      Serial.print(temperature, 1);
      Serial.println("°C");
    
    
      lcd.setCursor(0, 0);
      lcd.print("Temp: ");
      lcd.print(temperature, 1);
      lcd.print(" *C");
      lcd.setCursor(0, 1);
      lcd.print("Volt: ");
      lcd.print(voltage, 3);
      lcd.print(" V");
    
      delay(1000);
    }
    


    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    LHT65 TTN V3 Webhook PHP Webapp

    LHT65 TTN Webapp

    • DE/EN

    The Things Network kümmert sich lediglich um den Transport von LoRaWAN-Paketen, jedoch nicht um die Speicherung. Hier geht es um die Entwicklung einer Webapp.

    Weiterlesen
    Arduino PT100 Temperature Sensor Converter

    PT100 Arduino Sketch

    • Video
    • DE/EN

    Beispielcode für den PT100 Temperatursensor an einem Arduino

    Weiterlesen

    Social Media

    YouTube

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden