Quelltext für die Ausgabe der Temperatur über den Servomotor
Die Erklärung des Quelltexts ist auf der nächsten Seite. Der Quelltext für die Ausgabe der Temperatur über den Servomotor:
#include <OneWire.h>
#include <DallasTemperature.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
//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);
}
void loop()
{
//Temperatur in °C erfassen
temperatureSensor.requestTemperatures();
float tC = temperatureSensor.getTempCByIndex(0);
//Ansteuerung des Servomotors
int servoPos = map(tC, maxTemp, minTemp, 4, 33); //min und max wurden vertauscht, damit die Richtung des Zeigers passt
ledcWrite(channel, servoPos);
delay(500);
}
Zuletzt geändert: Dienstag, 8. September 2020, 17:40