Ülesanne 4 Temperatuuritundlik servolülitus(Kasvuhoone temperatuuri reguleegimine)

Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (11tk)
temperatuuriandur (1tk)
Micro Servo (1tk)

Tööprotsess:

Ühendage Micro Servo, temperatuuriandur ja juhtmed plaadiga.

Temperatuuri muutumisel pöörleb servomootor 180 kraadi

Skeem:

Programm:

include

Servo servo1;
const int servo_pin = 9;
const int temperaturePin = A0;
int targetPosition = 90; // Начальное положение серводвигателя

void setup() {
servo1.attach(servo_pin);
Serial.begin(9600);
targetPosition = 0;
delay(3000);
targetPosition = 180;
}

void loop() {
float temperature = getTemperature(temperaturePin);

if (temperature <= 24) { targetPosition = 0; // Если температура <= 24 градусов, устанавливаем положение 0 } else if (temperature >= 28) {
targetPosition = 180; // Если температура >= 28 градусов, устанавливаем положение 180
}


for (int pos = servo1.read(); pos != targetPosition; pos += (targetPosition > pos ? 1 : -1)) {
servo1.write(pos);
delay(10); // Задержка для плавности движения
}

Serial.print(“Temperatuur: “);
Serial.print(temperature);
Serial.print(” Celsiuse kraadid, servomootori asend: “);
Serial.println(targetPosition);

delay(1000); // Задержка
}

float getTemperature(int pin) {
int rawValue = analogRead(pin);
float voltage = rawValue * 0.004882814;
float degreesC = (voltage – 0.5) * 100.0;
return degreesC;
}