Ü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;
}