// библиотеку возьмем стандартную, для серво, тут точность нужна
#include <Servo.h>
// пин разрешения
#define Agree_pin 0
Servo servo1;
void setup() {
// put your setup code here, to run once:
// Инициализируются входы - для запрета/разрешения, серво и
// датчика температуры
pinMode(Agree_pin, INPUT_PULLUP);
pinMode(A0, INPUT);
servo1.attach(3);
}
void loop() {
// put your main code here, to run repeatedly:
// считаем значение и преобразуем в температуру (как в примере)
int an_Value = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / an_Value - 1)) / 3950 + 1.0 / 298.15) - 273.15;
// пересчитаем в угол отклонения серво - (-24..+80) в (0..90)
int Posit = ((float)(24 + celsius) / 104.0)*90.0;
// если запрет стоит - обнулим угол
int Agreem = digitalRead(Agree_pin);
if (Agreem == 1)
{
Posit = 0;
}
// посылаем значение в серво
servo1.write(Posit);
delay(100);
}