Katse 4.

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 // 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 = 0; position -= 1)
{
servo1.write(position); // positsiooni muutmine (Переместиться на следующую позицию)
delay(20);
}
}

Temperatuuritundlik servolülitus(Kasvuhoone temperatuuri reguleegimine)

Komponendid:

  • Arduino Uno
  • Arendusplaat
  • Juhtmed (12)
  • Servo mootor
  • Termoandur
  • Fototakisti
  • LED
  • Takistik (2)

https://www.tinkercad.com/things/e4tfykoI8Pz

// C++ code
//

const int temperaturePin = 0;
int sensorVAL = 1;
int ledPin = 12;
int lightLevel, high = 0, low = 1023;
#include
Servo servo1;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
servo1.attach(13);
}

void loop()
{

lightLevel = analogRead(sensorVAL);
analogWrite(ledPin, lightLevel);

float voltage, degreesC, degreesF;
int position;
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(1000);

if (degreesC = 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);
}
}
}

float getVoltage(int pin)
{
return (analogRead(pin) * 0.004882814);
}

void light()
{
lightLevel = analogRead(sensorVAL);
lightLevel = map(lightLevel, 300, 800, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
analogWrite(ledPin, lightLevel);
Serial.print(lightLevel);
Serial.println("");
}

https://drive.google.com/file/d/1YeQYrDFs5SZDUHSBrfTCB8uB27zEiLmU/view?usp=sharing

Tööpõhimõte:

Kasvuhoone fototakisti, temperatuurianduri ja mootoriga.  Kui temperatuur tõuseb, hakkab servomootor pöörlema ​​vastupidises suunas, kui valgust on vähe, põleb tuli, kui seda on palju, siis ei põle.

Uued funktsioonid:

#include  <Servo.h> — Library

See raamatukogu võimaldab Arduino tahvlil juhtida RC (hobi) servomootoreid. Servotel on integreeritud käigud ja võll, mida saab täpselt juhtida. Standardsed servod võimaldavad võlli paigutada erinevate nurkade all, tavaliselt vahemikus 0 kuni 180 kraadi. Pideva pöörlemise servod võimaldavad reguleerida võlli pöörlemist erinevatele kiirustele.

.write() — Funktsioon.

See funktsioon kirjutab välisseadmelt andmeid vastusena kontrolleri seadme päringule või seab kontrollerilt välisseadmele edastamiseks baite järjekorda (beginTransmission() ja endTransmission() kõnede vahepeal).

kasutamisvõimalused tavaelus.

Temperatuuriandureid kasutatakse peaaegu kõigis tööstusharudes, tootmises, kommunaalteenustes ja põllumajanduses ning majapidamiste tehnovõrkudes.  Kõikjal, kus on vaja kontrollida ja hoida teatud temperatuurivahemikku.

 Temperatuuriandurid pakuvad:

 Keemilise protsessi juhtimine

 Seadistatud kütterežiimi säilitamine soovitud temperatuurivahemikus

 Temperatuurinäitajate reguleerimine ja jälgimine tehnovõrkude ja transpordivahendite teatud struktuuriüksustes

 Kontrollige toiduainete, teravilja ja segasööda ladustamist ja töötlemist

 Temperatuuri mõõtmine ruumi üksikutes piirkondades kindlaksmääratud vahemikus

 Kaugjuhtimis- ja seiresüsteemide ühendamine tootmis- ja kommunaalprotsesside automatiseerimiseks koos võimalusega juhtida ühest keskusest

 Seadmete nõuetekohaseks ja tõhusaks tööks vajaliku temperatuurivahemiku säilitamine

 Voolutemperatuuri näitude mõõtmine veevarustusvõrkudes, kütteabonendis ja põhisides