Praktika 4 Temperatuuri andur, Servo mootor

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