Auf der nächsten Seite wird der Quelltext ausführlich erklärt. Der Quelltext für die Ausgabe der Temperatur über das digitale Display:

#include <OneWire.h>
#include <DallasTemperature.h>
#include <TM1637Display.h>

//Daten-Pin für den Temperatursensor festlegen
#define temperatureSensorPIN 32

//Konstanten für die Ausgabe der Temperatur über den Servomotor
#define freq 50
#define resolution 8
#define channel 1
#define servoPin 13
#define minTemp 15        //minimale Temperatur vom DS18B20: -55°C
#define maxTemp 35      //maximale Temperatur vom DS18B20: +125°C

//Daten- und Taktpin des Displays festlegen und Initialisierung des Displays
#define CLK 23
#define DIO 25
TM1637Display display(CLK, DIO);

//Temperatursensor initialisieren
OneWire temperatureSensorWire(temperatureSensorPIN);
DallasTemperature temperatureSensor(&temperatureSensorWire);

void setup() 
{
  //Temperatursensor starten
  temperatureSensor.begin();

  //Servo initialisieren
  ledcSetup(channel, freq, resolution);
  ledcAttachPin(servoPin, channel);
  ledcWrite(channel, 20);

  //Helligkeit des Displays einstellen
  display.setBrightness(0x0f);
}

void loop() 
{
  //Temperatur in °C erfassen
  temperatureSensor.requestTemperatures();
  float tC = temperatureSensor.getTempCByIndex(0);

  //Ansteuerung des Servomotors
  int servoPos = map(tC, minTemp, maxTemp, 4, 33);
  ledcWrite(channel, servoPos);

  //Temperatur in °C mit einer Nachkommastelle auf dem Display anzeigen
  display.showNumberDec(tC * 10);
  //Temperatur in °C ohne Nachkommastelle auf dem Display anzeigen
  //display.showNumberDec(tC * 1);
  delay(500);
}
Last modified: Friday, 24 July 2020, 12:17 PM