Ü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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #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:

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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #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