#include <math.h> // Подключаем библиотеку для работы с математическими
#include <Servo.h> // Подключаем библиотеку для работы с сервоприводом
const int ledPin = 7;
const int relayPin = 8;
const int sensorPin = A0;
const float BETA = 3950; // Бета-коэффициент термистора
Servo myServo; // Создаем объект для работы с сервоприводом
void setup()
{
Serial.begin(9600); // Запуск серийного монитора
pinMode(ledPin, OUTPUT); // Светодиод на выход
pinMode(relayPin, OUTPUT); // Реле на выход
myServo.attach(9); // Подключаем сервопривод к пину 9
}
void loop()
{
int analogValue = analogRead(sensorPin); // Считываем данные с
float celsius = 1 / (log(1 / (1023.0 / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15; // Формула для расчета температуры
// Вывод данных в серийный монитор с указанием единиц измерения
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.println(" °C");
// Управление светодиодом в зависимости от температуры
if (celsius > 25)
{
digitalWrite(ledPin, HIGH); // Включить светодиод
}
else
{
digitalWrite(ledPin, LOW); // Выключить светодиод
}
// Управление реле и сервоприводом
if (celsius > 30)
{
digitalWrite(relayPin, HIGH); // Включить реле
myServo.write(0); // Повернуть сервопривод на 90 градусов
}
else
{
digitalWrite(relayPin, LOW); // Выключить реле
myServo.write(90); // Вернуть сервопривод в начальное положение (0
}
delay(1000); // Задержка 1 секунда для плавного считывания данных
}