Ход работы
- Изучили материал
- Сделали схему и задали значения переменных и вывод пинов
#include <Servo.h> //подключение библиотеки
const int temperaturePin = 0;
const int sensorPin = 1;
float voltage, degreesC;
Servo servo1; //переменная(объект) типа данных Servo
int lightLevel;
int yellowPin = 5;
int yellowPin2 = 3;
int position = 90;
void setup()
{
servo1.attach(9); //прикрепление пина 9 (сервопривода) к переменной
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(3, OUTPUT);
}
3. Написали вспомогательные функции и функции для сбора информации
float getVoltage(int pin) //получает вольтаж
{
return (analogRead(pin) * 0.004882814);
}
float tmp_stat() //собирает статистику с температурного датчика
{
voltage = getVoltage(temperaturePin); //используется функция написанная выше
degreesC = (voltage - 0.5) * 100.0; //по формуле рассчитывается температура в градусах Цельсия
return voltage, degreesC; //возвращает вольтаж и температуру
}
void manualTune() //функцию для переноса значений
{
lightLevel = analogRead(sensorPin);
lightLevel = map(lightLevel, 300, 800, 1, 2);
}
4. Написали основные функции
void servo_code() //функция для движения сервопривода
{
if (degreesC > 35) //конструкция if. Если градусов >/< n, то
{
for (position; position != 181; position++) //цикл для движения сервопривода в позицию 180
{
servo1.write(position);
delay(25);
}
}
else if (degreesC < 22) //иначе
{
for (position; position != -1; position--) //в позицию 0
{
servo1.write(position);
delay(25);
}
}
else if (degreesC > 22 && degreesC < 35)//иначе в позицию 90
{
servo1.write(90);
}
}
void output_value() //функция, которая выводит информацию на монитор
{
Serial.print("Voltage: ");
Serial.print(voltage);
Serial.print("; deg C: ");
Serial.print(degreesC);
Serial.println("");
Serial.print("Light_lvl: ");
Serial.print(lightLevel);
Serial.println("");
delay(1000);
}
5. Вставили их в основной цикл
void loop()
{
manualTune();
tmp_stat();
servo_code();
output_value();
if (lightLevel == 2) //конструкция if для вкл/выкл светодиодов
{
digitalWrite(yellowPin, HIGH);
digitalWrite(yellowPin2, HIGH);
}
else if (lightLevel == 1)
{
digitalWrite(yellowPin, LOW);
digitalWrite(yellowPin2, LOW);
}
}
Как работает парник
- Собирается информация с датчика
- Отталкиваясь от n℃ температуры сервопривод принимает определенную позицию
- Выводится информация на монитор
- Далее работает конструкция if:
Если темно, то включаются светодиоды.
Если светло, то выключаются светодиоды.
Ссылка на проект
https://www.tinkercad.com/things/c5Ty21RfBTF-parnik/editel?sharecode=WipiQlcfuWvdCGz9djkektikoiKrtAe34MQ1WrauImg
Компоненты
- Фоторезистор – 1
- LED лампа – 2
- Резистор 220 Ом – 2
- Резистор 10 кОм – 1
- Термодатчик – 1
- Сервопривод – 1


Cхема подключения компонентов к плате

Возможности применения в жизни
Сервопривод можно применить для:
- В различных роботах
- Для автоматизации
Термодатчик можно применить для:
- Измерения температуры в приборе
- Измерения температуры на каких-то объектах
