Temperatuuti andur
Katse temperatuuri mõõtmiseks temperatuurianduri abil.
Saadud tulemused kirjutame iga sekundi tagant Serial Monitori.

Code:
const int temperaturePin = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
float voltage, degreesC, degreesF;
// kasutame analogRead(), mis tagastab sisendi väärtused vahemikul 0 ... 1023.
// koostasime getVoltage() funktsioon, mis tagastab pingeväärtus 0 ... 5,
voltage = getVoltage(temperaturePin);
degreesC = (voltage - 0.5) * 100.0;
// degreesC = voltage * 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);
//Ekraanil ilmub järgmine tekst: "voltage: 0.73 deg C: 22.75 deg F: 72.96"
delay(1000); // ootame 1 sek
}
float getVoltage(int pin)
{
return (analogRead(pin) * 0.004882814);
// teisendame pinge vahemikust 0,0 ... 5,0 V, vahemikku 0 до 1023.
}
Servo mootori ühendamine
Kasutusel on 180 kraadi pöörav servo mootor.

Code:
#include <Servo.h> // teavitame Arduino IDE-d, et kasutame mootorite juhtimiseks mõeldud Servo.h teeki
Servo mootor;
void setup()
{
mootor.attach(9);
}
void loop()
{
int asend;
mootor.write(90);
delay(1000);
mootor.write(180);
delay(1000);
mootor.write(0);
delay(1000);
for(asend = 0; asend < 180; asend += 2)
{
mootor.write(asend);
delay(20);
}
for(asend = 180; asend >= 0; asend -= 1)
{
mootor.write(asend);
delay(20);
}
}
Ülesanne 4 Temperatuuritundlik servolülitus
Задача проекта: Автоматизированная теплица
Цель:
Создайте автоматизированную миниатюрную теплицу, реагирующую на температуру и освещенность окружающей среды.
Система должна быть способна приводить в действие серводвигатель в зависимости от изменения температуры и включать или выключать освещение в зависимости от интенсивности света с помощью фотопроводника.
Этот проект позволит связать реальные условия окружающей среды с электроникой и смоделировать автоматизированный уход за растениями в небольшой теплице.
Необходимые компоненты:
Датчик температуры (например, LM35, DHT11 или TMP36).
Фотопроводящий резистор (LDR - светозависимый резистор).
Серводвигатель (маленький, например SG90).
Светодиод (для имитации света или дополнительной подсветки).
Arduino Uno
Резисторы (для LDR и светодиода)
Проводка и макетная плата
Коробка или элемент поверхности для установки датчиков и компонентов
Источник питания (USB, аккумулятор или перезаряжаемая батарея)

Code:
#include <Servo.h>
const int tempPin = A1;
const int ldrPin = A0;
const int ledPin = 8;
const int servoPin = 9;
Servo windowServo;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
windowServo.attach(servoPin);
}
void loop() {
int tempValue = analogRead(tempPin);
float voltage = tempValue * (5.0 / 1023.0);
float temperature = voltage * 100.0;
int angle = map(temperature, 20, 30, 0, 80);
angle = constrain(angle, -20, 80);
windowServo.write(angle);
int ldrValue = analogRead(ldrPin);
int threshold = 500;
if (ldrValue < threshold) {
digitalWrite(ledPin, HIGH); // Темно
} else {
digitalWrite(ledPin, LOW); // Светло
}
Serial.print("Temperatur: ");
Serial.print(temperature);
Serial.print(" °C | Level: ");
Serial.print(angle);
Serial.print(" | Filgt: ");
Serial.println(ldrValue);
delay(500);
}
Video:
