Тема 4.3: Термочувствительное сервопереключение
Термочувствительное сервопереключение (регулирование температуры в теплице)
Чувствительное к температуре и освещению сервопереключение
Компоненты (минимум):
Термодатчик и/или фоторезистор,
серводвигатель,ВЕЛ
Создайте диаграмму и напишите программу...
В зависимости от температуры перемещайте серводвигатель.
22 градуса переводят сервопривод в положение 0.
35 градусов переместит сервопривод на 180.
сделать движение сервопривода максимально плавным
!!!
Также можно сделать автоматическое освещение в теплице с помощью фоторезистора и светодиода.
Датчики могут быть встроены в коробку.
#include <Servo.h>
// Присваиваем пины
const int temperaturePin = 0;
const int red = 2;
const int blue = 3;
Servo servo1;
void setup() {
servo1.attach(9);//присваеваем пин сервоприводу
Serial.begin(9600);
pinMode(red, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop() {
digitalWrite(red, HIGH);
digitalWrite(blue, LOW);
float voltage, degreesC, degreesF;
voltage = getVoltage(temperaturePin);
degreesC = (voltage - 0.5) * 100.0;
degreesF = degreesC * (9.0 / 5.0) + 32.0;
Serial.print("Voltage: ");
Serial.print(voltage);
Serial.print(" deg C: ");
Serial.print(degreesC);
Serial.print(" deg F: ");
Serial.println(degreesF);
if (degreesC >= 25) {// при 25 градусах и выше поварачиваем на 180 градусов и переключаем светодиод
digitalWrite(blue, HIGH);
digitalWrite(red, LOW);
servo1.write(180);
delay(3000);
} else {
// возвращаем в исходную позицию
servo1.write(-180);
delay(3000);
}
}
float getVoltage(int pin) {
return (analogRead(pin) * 0.004882814);
}


https://drive.google.com/file/d/1faJJiZD_-pf3X-IxMhycn1Wd8UuDUFj9/view?usp=sharing