4.1 Katse Temperatuuri andur
Использовал:
1 – температурный датчик
5-проводов
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
Использовал:
1 – серводвигатель
5-проводов
// C++ code
//
// Множество библиотек доступных для применений, можно найти на 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;
servo1.write(90); //pööramise nurk =90
delay(1000);
servo1.write(180); //pööramise nurk =180
delay(1000);
servo1.write(0); //pööramise nurk =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:
for(position = 180; position >= 0; position -= 1)
{
servo1.write(position); // positsiooni muutmine
delay(20);
}
}

Ülesanne 4 Temperatuuritundlik servolülitus(Kasvuhoone temperatuuri reguleegimine)
Использовал:
- 1 – резистр 220 Ом
- 1 – резистр 10 кОм
- 1 – LED лампочка
- 1 – фоторезистр
- 1 – температурный датчик
- 1 – серводвигатель
- 15 – проводов
Процесс работы теплицы
- При включеном свете на фоторезисторе led-лампочка не горит
- При выключином свете на фоторезисторе led-лампочка горит
- При 30 градусах по цельсию серво двигатель поворачивается на 180
- При меньшем количестве градусов поварачивается на 0

#include <Servo.h>
const int led = 12;
const int sensorPin = 1;
int lightLevel, high = 0, low = 1023;
const int temperaturePin = 0;
Servo servo1;
void setup()
{
pinMode(led, OUTPUT);
servo1.attach(13);
Serial.begin(9600);
}
void loop()
{
lightLevel = analogRead(sensorPin);
analogWrite(led, lightLevel);
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);
if (degreesC >= 35)
{
servo1.write(180);
delay(1000);
}
else
{
servo1.write(0);
delay(1000);
}
delay(2000);
}
float getVoltage(int pin)
{
return (analogRead(pin) * 0.004882814);
}
Демонстрация “Теплицы”
Возможности применения
- Автоматическое открытие окон в парнике при определенном уровне температуры
- Открытие окон по нажатию кнопки
- Открытие дверей по нажатию кнопки
- И тому подобное
Если по отдельности:
Использование серводвигателя:
- Для промышленых роботов
- Авиамоделирование
- Станки
- Багажник
- Железные дороги
Использование температурного датчика:
- Микроволновка
- Кондиционеры
- Термометр
- Духовка
Новые коды:
getVoltage() функция, возвращающая значение напряжения 0 … 5,
#include <Servo.h>– так мы сообщаем IDE Arduino о необходимости использования библиотеки Servo.h (для подключения дополнительной библиотеки).
manualTune():Эта функция используется для установки минимальной и максимальной силы света. Она обновляет значения минимальной и максимальной яркости во время выполнения программы.
servo1.write(): Эта функция используется для установки угла поворота сервопривода. В коде она вызывается для поворота сервопривода на определенный угол в зависимости от значения температуры.