#include <Servo.h>
Servo SERVO_01;
#define LED_PIN 6
#define SERVO_PIN 11
#define NTC_PIN A1
#define POT_PIN A0
int POT_VALUE = 0;
int SERVO_VALUE = 0;
int NTC_VALUE = 0;
const float BETA = 3950;
int CELSIUS;
bool LED_ST = false;
bool WARN = false;
unsigned long TIME_MS, TIME_1000_MS;
void setup() {
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT);
millis();
SERVO_01.attach(11);
}
void Read_Analog()
{
POT_VALUE = analogRead(POT_PIN);
NTC_VALUE = analogRead(NTC_PIN);
POT_VALUE = map(POT_VALUE, 0,1024,0,180);
POT_VALUE = min(POT_VALUE,180);
POT_VALUE = max(POT_VALUE,0);
}
void Write_Digital()
{
if (WARN)
{
LED_ST = !LED_ST;
digitalWrite(LED_PIN,LED_ST);
}
else
{
digitalWrite(LED_PIN,0);
}
}
void Ntc_Control()
{
CELSIUS = 1 / (log(1 / (1023. / NTC_VALUE - 1)) / BETA + 1.0 / 298.15) - 273.15;
if (CELSIUS > 60)
{
WARN = true;
Serial.print("SICAKLIK UYARI");
Serial.print(" ");
}
else
{
WARN = false;
}
if(!WARN)
{
Serial.print(CELSIUS);
Serial.print(" ");
}
}
void Servo_Control()
{
if(!WARN)
{
SERVO_01.write(POT_VALUE);
}
}
void loop() {
TIME_MS = millis();
Read_Analog();
Servo_Control();
if (TIME_MS - TIME_1000_MS > 1000)
{
TIME_1000_MS = TIME_MS;
Ntc_Control();
Write_Digital();
}
}