4.1 Katse Temperatuuri andur
Датчики измерения температуры – это устройства, которые измеряют текущую температуру и отмечают разницу между требуемой и существующей температурой.


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.
}
4.2. Katse Servo kasutamine
Серводвигатель – это специальный электродвигатель с отрицательной обратной связью, который предназначен для применения в станках с ЧПУ


#include <Servo.h>
Servo servo1;
void setup()
{
servo1.attach(9);
}
void loop()
{
int position;
servo1.write(90);
delay(1000);
servo1.write(180);
delay(1000);
servo1.write(0);
delay(1000);
{
servo1.write(position); // positsiooni muutmine
delay(20);
}
{
servo1.write(position); // positsiooni muutmine
delay(20);
}
}
Ülesanne 4 Temperatuuritundlik servolülitus
В моем проекте серводвигатель двигается на 180 градусов в том случае, если на датчике измерения температуры больше 25 градусов и обратно в случае меньше 22. Так же когда на датчике температура от 25 градусов горит зеленый светодиод.
Применение в жизни: можно применять для регулирования температуры в различных местах, самое примитивное: закрытие или открытие окна с помощью серво в зависимости и для регулировки температуры
Я использовал: 9 проводов, 1 LED, 1 резистор 220v, 1 датчик TMP36, 1 cерводвигатель
ссылки:
https://drive.google.com/file/d/1k1mAfkMZ_S4xS9_Fp_DMshUMyBpWWHNd/view?usp=sharing
https://drive.google.com/file/d/1KaasfR3ocbWfWdcNQjqBDoz8KswJIiJY/view?usp=sharing

#include <Servo.h>
Servo servo1;
const int temperaturePin = A0;
const int ledPin = 8;
void setup() {
servo1.attach(9);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
float voltage, degreesC;
voltage = getVoltage(temperaturePin);
degreesC = (voltage - 0.5) * 100.0;
Serial.print("Temperature: ");
Serial.println(degreesC);
if (degreesC >= 25) {
servo1.write(180);
digitalWrite(ledPin, HIGH);
} else if (degreesC <= 22) {
servo1.write(0);
digitalWrite(ledPin, LOW);
}
delay(1000);
}
float getVoltage(int pin) {
return (analogRead(pin) * (5.0 / 1023.0));
}