4.1
Katse Temperatuuri andur

const int temperaturePin = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
float voltage, degreesC, degreesF;
// Сначала мы измерим напряжение на аналоговом входе. Обычно для этого мы
// использовали функцию analogRead(), которая возвращает число от 0 до 1023.
// Здесь же мы написали специальную функцию, о ней чуть дальше, под
// названием getVoltage(), которая возвращает напряжение (от 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);
// Вывод информации будет иметь вид подобно следующему:
// "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);
// Это уравнение преобразует значение напряжения от 0,0 до 5,0 В., полученное с помощью функции analogRead() с аналогового порта, в значения от 0 до 1023.
}
4.2
Katse Servo kasutamine

// Множество библиотек доступных для применений, можно найти на http://arduino.cc/en/Reference/Libraries,
#include <Servo.h> // nii teavitame Arduino IDE-t vajadusest kasutada Servo.h teeki (подключаем дополнительную библиотеку)
// Как только вы "подключаете" библиотеку, так сразу получаете доступ к этим функциям. Вы можете найти список функций в библиотеке
// сервопривода в: http://arduino.cc/en/Reference/Servo. Большинство библиотек доступно из меню "Файл / примеры".
Servo servo1; // Peame looma servo objekti nimega servo1 (объект управления сервоприводом)
void setup()
{
// Сейчас мы прикрепим (attach) объект servo1 к цифровому пину 9. Если вы собираетесь управлять более чем одним
// сервоприводом, Вы должны прикрепить каждый новый объект серво к своему, отдельному порту, причем это порт должен быть цифровым.
servo1.attach(9); //ütleme Arduinole, et infosuhtlus servo-objektiga servo käib läbi klemmi number 9. Tegu on digitaal-klemmiga--PWM digitaalne osa! Kontrollime, kas skeemil kasutame sama klemmi.
}
void loop()
{
int position;
// Для управления сервоприводом, вы указываете ему угол на который он должен переместиться. Сервоприводы не могут повернуться на 360
// градусов, но вы можете указать ему, чтобы он поворачивался в определенную позицию от 0 до 180 градусов.
servo1.write(90); //pööramise nurk =90 (Говорим серве повернуться на позицию 90 градусов, т.е устанавливаем в среднее положение)
delay(1000);
servo1.write(180); //pööramise nurk =180 (180 градусов, т.е устанавливаем в крайнее правое положение.)
delay(1000);
servo1.write(0); //pööramise nurk =0 (0 градусов, т.е устанавливаем в крайнее левое положение.)
delay(1000);
// servo positsiooni muutmine väike kiirusega pärisuunas (Изменение позиции на более низкой скорости):
for(position = 0; position < 180; position += 2)
{
servo1.write(position); // positsiooni muutmine ( Перемещаемся на следующую позицию)
delay(20);
}
// servo positsiooni muutmine väike kiirusega vastupäeva ("Говорим" сервоприводу повернуться на позицию 0 градусов, с шагом в 1 градус):
for(position = 180; position >= 0; position -= 1)
{
servo1.write(position); // positsiooni muutmine (Переместиться на следующую позицию)
delay(20);
}
}
Temperatuuritundlik servolülitus(Kasvuhoone temperatuuri reguleegimine)
Töö kirjeldus:
Potentsiomeetriga sisse-välja lülituv öölamp. Kui see on sisse lülitatud, reageerib see valgusele: kui tume on sisse lülitatud, kui valgus on välja lülitatud.
Komponendid:
Arudino Uno
Takisti (2)(330 Om ja 10kOm)
Juhtmed (12)
1 LEDi
1 Temperatuuri andur
1 Servo
https://www.tinkercad.com/things/lbSSe58JFUl?sharecode=zSEHGaBdm-YBpTi1M7jkxHs6LMSIXoY2MVooYR_VQ2o

Tööpõhimõte:
Servomootor pöörleb sõltuvalt temperatuurist. Kui see on väiksem või võrdne 22-ga, pöörleb see vasakpoolsesse asendisse, kui suurem või võrdne 23-ga, siis pöörleb see paremasse asendisse.
Kui on pime, süttib tuli ja servomootor lakkab töötamast.
Kuidas seda kasutada saab?
Seda saab kasutada kasvuhoonetes ja toatemperatuuri andurina.
Programm:
const int temperaturePin = 0;
int sensorRes = 1;
int ledPin = 4;
int lightLevel, high = 0, low = 1023;
#include <Servo.h>
Servo servo1;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
servo1.attach(9);
}
void loop()
{
lightLevel = analogRead(sensorRes);
analogWrite(ledPin, lightLevel);
int position;
float voltage, degreesC, degreesF;
voltage = getVoltage(temperaturePin);
degreesC = (voltage - 0.5) * 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);
delay(700);
if (degreesC <= 22)
{
light();
for(position = 180; position >= 0; position -= 1)
{
servo1.write(position);
delay(50);
}
}
else if (degreesC >= 23)
{
light();
for(position = 0; position < 180; position += 2)
{
servo1.write(position);
delay(50);
}
}
}
void light()
{
lightLevel = analogRead(sensorRes);
lightLevel = map(lightLevel, 300, 800, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
analogWrite(ledPin, lightLevel);
Serial.print(lightLevel);
Serial.println("");
}
float getVoltage(int pin)
{
return (analogRead(pin) * 0.004882814);
}