Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Температурен Сензор

Ардуиното може да прима аналогни сигнали од аналогни сензори (на пример да


мери температура или светлина) кои со ADC конверторот се претвораат во
дигитални величини. Влезните аналогни пинови А0-А5 враќаат вредности помеѓу
0-1023, што одговара на опсег од 0 до 5 волти.
Ќе користиме температурен сензор за да измериме колку е топла вашата кожа.
Оваа компонента на излез дава како се менува напонот во зависност од
температурата што ја мери. Има 3 пина: напојување, маса и третиот кој дава
променлив напон. Во скечот за овој проект, се чита излезот на сензорот кој се
користи за вклучување или исклучување на диодата, во зависност од доведената
топлина. Постојат различни модели на температурни сензори. Овој модел, ТМР36
е прикладен бидејќи дава како правопропорционално се менува напонот во
зависност од температурата во степени Целзиусови.
Во Ардуиното има алатка наречена serial monitor која која ни овозможува да ги
видиме состојбите на сензорите и да сфатиме што се случува во колото.
За овој проект прво треба да ја проверите температрата на просторијата.
Можете да ги именувате диодите: ако светне 1 диода, значи дека сте ладни како
змија, ако светнат 2 диоди, Вие сте топол и пријателски настроен, а ако светнат
сите 3, вие сте премногу жежок за да се држите во раце!

 Именуваме 2 константи. Една од типот на целобројни, за да знаеме дека


сензорот е на пинот А0. Втората од децимален тип(float) која ја покажува
температурата на просторијата. За секое зголемување на температурата од
2 степени, диодата треба да свети.
 Во поставувањето(setup) вие ќе користите нова команда Serial.begin( ). Ова
отвора врска помеѓу Ардуиното и компјутерот, па вие ќе можете да ги
видите вредностите од аналогниот влез на вашиот компјутерски екран.

 Аргументот 9600 е брзината со која Ардуиното ќе комуницира, 9600 битови


во секунда. Вие ќе го користите Ардуино IDE серискиот монитор ( serial
monitor ) за да ги видите информациите кои сте ги одбрале да ги испратите
од вашиот микроконтролер. Кога ќе го отворите IDE серискиот монитор
потврдете дека baud rate е 9600.
Serial.begin (9600); // отвори сериска порта
 Во for циклусот поставуваме некои пинови за излезни. Наместо како досега,
за секоја диода да пишуваме pinMode(brNApin, OUTPUT); ние користиме
for() циклус за побрзо да ги поставиме. Овој трик посебно се користи ако
имате поголем број на слични нешта кои се повторуваат во програмата.
Овој for() циклус ги прави пиновите од 2 до 4 излезни, последователно. А
потоа на сите диоди носи ниско напонско ниво.

 Во loop ( ), вие ќе користите локална променлива наречена sensorVal за да


ги зачува читањата од вашиот сензор. За да ја добиете вредноста од
сензорот, ја повикувате аnalogRead ( ) што има еден аргумент: од кој пин
треба да се чита напонот. Вредноста, која е помеѓу 0 и 1023, е претстава за
напонот на пинот.
void loop ( ) {
intsensorVal = analogRead ( sensorPin );
 Функцијата Serial.print ( ) испраќа информација од Ардуиното до поврзаниот
компјутер. Вие можете да ја видите оваа информација на вашиот сериски
монитор. Ако на Serial.print ( ) и дадете аргумент во наводници, таа ќе го
испечати текстот што сте го напишале. Ако и дадете променлива како
аргумент, ќе ја испечати вредноста на таа променлива.
Serial.print (“Sensor Value: “ );
Serial.print (sensorVal);
 Со мала математика, возможно е да се открие кој е вистинскиот напон на
пинот. Напонот ќе има вредност помеѓу 0 и 5 волти, и тој ќе има
фракционен дел ( на пример, може да биде 2,5 волти ), па вие ќе морате да
го сочувате во float. Креирајте променлива наречена voltage за да го зачува
овој број. Поделете sensorVal со 1024.0 и помножете со 5.0. Новиот број го
претставува напонот на пинот.
float voltage = ( sensorVal/1024.0) * 5.0;
 Serial.println ( ). Оваа команда ќе креира нова линија во серискиот монитор
откако ќе испрати вредност. Ова помага работите да бидат полесни за
читање кога тие се отпечатени.
Serial.print (“ , Volts: “);
Serial.print( voltage );
Serial.print (“ , degrees C: “ ); // претвори го напонот во температурни степени
float temperature = ( voltage - .5 ) * 100;
Serial.println( temperature );
 Со вистинската температура, вие можете да поставите if ( )… else исказ за
да ги вклучи ( осветли ) LED диодите. Користејќи ја основната температура
како почетна точка, вие ќе вклучувате една LED диода за секои 2 степени
на зголемување на температурата над основната температура.
If ( temperature<baseLineTemp ) {
digitalWrite ( 2, LOW );
digitalWrite ( 3, LOW );
digitalWrite ( 4, LOW );
 && операторот значи “ and “ ( и ) во логичка смисла. Вие можете да
проверите за повеќе состојби. “ако температурата е 2 степени поголема од
основната, и е помала од 4 степени над основната “, ќе свети една диода.
} else if ( temperature>= baseLineTemp+2 && temperature < baseLineTemp+4
){
digitalWrite ( 2, HIGH );
digitalWrite ( 3, LOW);
digitalWrite ( 4, LOW );
} else if( temperature>= baseLineTemp+4&& temperature < baseLineTemp+6 )
{ ако температурата е за 4 до 6 степени поголема од основната, ќе светат 2
диоди.
digitalWrite ( 2, HIGH );
digitalWrite ( 3, HIGH );
digitalWrite ( 4, LOW );
} else if ( temperature>= baseLineTemp+6 ) { ако температурата е за повеќе
од 6 степени поголема од основната, ќе светат 3 диоди.
digitalWrite ( 2, HIGH );
digitalWrite ( 3, HIGH );
digitalWrite ( 4, HIGH );
}
delay (1);
}
 Аналогно-Дигиталниот конвертор може да чита толку брзо, па вие треба да
ставите мало задоцнување на самиот крај од loop ( ). Ако читате од него
многу често, вашите вредности ќе се појавуваат непредвидливо.

You might also like