Katse 4

Ülesanne 4.1 Katse Temperatuuri andur

Töö kirjeldus:

Katse temperatuuri mõõtmiseks temperatuurianduri abil.

Komponendid:

Arduino UNO
Arendusplaat
Temperatuurianduri TMP
Juhtmed 4tk

Ühendus skeem:

Programm:

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.
}

Foto:

Mõõdab temperatuuri Celsius ja Fahrenheit ning näitab pinge

Ülesanne 4.2. Katse Servo kasutamine

Töö kirjeldus:

Mootori pööramine 180, 90 ja 0 kraadi nurgale

Komponendid:

Arduino Uno
Arendusplaat
Mootor Servo
Juhtmed 8tk

Ühendus skeem:

Programm:

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

Foto:

Servo mootor pöörab 180, 90, 0 kraadi nurgale

Ülesanne 4 Temperatuuritundlik servolülitus

Töö kirjeldus:

Automatiseerida kasvuhoone

Komponendid:

Arduino Uno
Arendusplaat
Servo mootor
Termoandur
Fototakisti
LED diood
Takisti 220 Om
Takisti 10 K Om
Kondensaator 100 µF 25V
Juhtmed 17 tk

Ühendus skeem:

https://www.tinkercad.com/things/cgQjorg8zKo-temperatuuritundlik-servolulitus/editel?sharecode=i3nJD7pISJh9vu1LFNczuvHylfAj9uz4OK6VbPIPN74

Seletus:

Servo mootor keerab 180 kraadile kui temperatuur suurem või võrdleb 35, Servo mootor keerab 0 kraadile kui temperatuur on vähem või võrdleb 22. LED diood põleb kui on pime, ehk kui fototakisti loeb väärtuse suurem kui 100.

Programm:

#include <Servo.h>
//määrame kõik olevad objektid
Servo servo;
int servoPin = 9;
int ledPin = 8;
int photoresistorPin = A1;
int temperaturePin = A0;

void setup() 
{
  servo.attach(servoPin);
  pinMode(ledPin, OUTPUT);
  pinMode(photoresistorPin, INPUT);
  pinMode(temperaturePin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // Loe temperatuuri väärtust temperatuuriandurist
  int temperature = analogRead(temperaturePin);
  float celsius = map(temperature, 0, 1023, -40, 250);

  // Pöörame servo vastavalt temperatuurile
  if (celsius <= 22) {
    servo.write(0); // Pöörame servo 0 kraadile
  } else if (celsius >= 35) {
    servo.write(180); // Pöörame servo 180 kraadile
  }

  // Loeme väärtust fototakistilt
  int photoresistorValue = analogRead(photoresistorPin);

  // Määrame heledus fototakisti väärtuse alusel
  if (photoresistorValue > 100) {
    digitalWrite(ledPin, HIGH); // LED ON
  } else {
    digitalWrite(ledPin, LOW); // LED OFF
  }

  // Prindime temperatuuri ja heleduse väärtused serial monitorile
  Serial.print("Temperature: ");
  Serial.print(celsius);
  Serial.print("C");

  Serial.print("  Brightness: ");
  Serial.println(photoresistorValue);

  delay(1000); //Uuendamise väärtuse ootame 1s
}

Video:

https://drive.google.com/drive/folders/1QIIOFeZJeWjZsU1fwYtt2furDs4VmduP

Kus võib seda kasutada:

Termoandur:

hüdraulikaplokkide
suure jõudlusega kütusejaotuskõlarite koostises
gaasiautomaatide filtrid

Servo mootor:

võlli pöörlemisega juhitavatele seadmetele — nagu avamis- ja sulgemisventiilid
lülitid