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:

    LoRaWAN Packet Recorder Setup

    Packet Recorder (Linux)

    • Video
    • DE/EN

    Der Packet Recorder zeichnet alle LoRaWAN Uplink Telegramme von einem Gateway auf. Dieser Artikel beschreibt die Installation dieses Dienstes unter Linux

    Weiterlesen
    STM32 Nucleo 64 Arduino IDE Installation

    STM Boards im Arduino IDE

    • Video

    STM Boards programmieren mit dem Arduino IDE - Alle Infos zur Einrichtung und Installation der Boards, Treiber und Bibliotheken

    Weiterlesen

    Social Media

    YouTube

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden