Mali senzor temperature koji očitava temperaturu okoline pomoću LM35 senzora, ispisuje ju na 16x2 LCD displej te serijski na računalo. LED dioda blica ovisno o temperaturi(veća temperatura=brže blicanje) te tipkalom upravljamo osvjetljenjem LCDa.

Dependencies:   LM35 TextLCD

Mali senzor temperature koji očitava temperaturu okoline pomoću LM35 senzora, ispisuje ju na 16x2 LCD displej te serijski na računalo. LED dioda blica ovisno o temperaturi(veća temperatura=brže blicanje) te tipkalom upravljamo osvjetljenjem LCDa. https://os.mbed.com/media/uploads/lbuha/senzor_temperature.jpg

Committer:
lbuha
Date:
Mon Feb 22 02:01:29 2021 +0000
Revision:
0:77fdaad43917
.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lbuha 0:77fdaad43917 1 //libraryji
lbuha 0:77fdaad43917 2 #include "mbed.h"
lbuha 0:77fdaad43917 3 #include "LM35.h"
lbuha 0:77fdaad43917 4 #include "TextLCD.h"
lbuha 0:77fdaad43917 5
lbuha 0:77fdaad43917 6
lbuha 0:77fdaad43917 7 InterruptIn button(USER_BUTTON); //okidač interrupt rutine
lbuha 0:77fdaad43917 8 Timer debounce; //timer za istitravanje tastera
lbuha 0:77fdaad43917 9 TextLCD lcd (PC_8, PB_8, PC_6, PC_5, PA_12, PA_11); //pinovi LCDa
lbuha 0:77fdaad43917 10 Ticker ledtemp; //Ticker za blicanje ledice
lbuha 0:77fdaad43917 11 Timer timer1; //timer korišten u mainu
lbuha 0:77fdaad43917 12 DigitalOut led1(PA_10); //ledica
lbuha 0:77fdaad43917 13 Serial pc(USBTX, USBRX); //serijska komunikacija s računalom
lbuha 0:77fdaad43917 14 LM35 senzor(PC_0); //senzor temperature
lbuha 0:77fdaad43917 15 float temperatura2; //inicijalizacija varijable
lbuha 0:77fdaad43917 16 void interrupt (void); //inicijalizacija funkcije
lbuha 0:77fdaad43917 17 DigitalOut svjetlo(PB_5); //osvjetljenje LCDa
lbuha 0:77fdaad43917 18
lbuha 0:77fdaad43917 19 //interupt funkcija
lbuha 0:77fdaad43917 20 void interrupt()
lbuha 0:77fdaad43917 21 {
lbuha 0:77fdaad43917 22 if (debounce.read_ms()>200) {
lbuha 0:77fdaad43917 23
lbuha 0:77fdaad43917 24 svjetlo=!svjetlo;
lbuha 0:77fdaad43917 25 }
lbuha 0:77fdaad43917 26
lbuha 0:77fdaad43917 27 }
lbuha 0:77fdaad43917 28
lbuha 0:77fdaad43917 29 //funkcija za blicanje ledica, tj. mijenjanje stanja ledice
lbuha 0:77fdaad43917 30 void ledica()
lbuha 0:77fdaad43917 31 {
lbuha 0:77fdaad43917 32 led1=!led1;
lbuha 0:77fdaad43917 33
lbuha 0:77fdaad43917 34 }
lbuha 0:77fdaad43917 35
lbuha 0:77fdaad43917 36
lbuha 0:77fdaad43917 37 //funkcija za određivanje frekvencije tickera, tj.frekvencije blicanja ledice
lbuha 0:77fdaad43917 38 void vizualizacija()
lbuha 0:77fdaad43917 39 {
lbuha 0:77fdaad43917 40
lbuha 0:77fdaad43917 41 if (temperatura2 > 15 && temperatura2 < 20)
lbuha 0:77fdaad43917 42 ledtemp.attach(&ledica, 0.5);
lbuha 0:77fdaad43917 43 else if (temperatura2> 20 && temperatura2 < 25)
lbuha 0:77fdaad43917 44 ledtemp.attach(&ledica, 0.25);
lbuha 0:77fdaad43917 45 else if (temperatura2 > 25)
lbuha 0:77fdaad43917 46 ledtemp.attach(&ledica, 0.15);
lbuha 0:77fdaad43917 47 else led1=0;
lbuha 0:77fdaad43917 48
lbuha 0:77fdaad43917 49
lbuha 0:77fdaad43917 50 }
lbuha 0:77fdaad43917 51
lbuha 0:77fdaad43917 52 //glavna funkcija
lbuha 0:77fdaad43917 53 int main()
lbuha 0:77fdaad43917 54 {
lbuha 0:77fdaad43917 55 debounce.start();
lbuha 0:77fdaad43917 56 timer1.start();
lbuha 0:77fdaad43917 57 button.rise(&interrupt);
lbuha 0:77fdaad43917 58 while(1) {
lbuha 0:77fdaad43917 59 if(timer1.read_ms()>=1000) {
lbuha 0:77fdaad43917 60 temperatura2 = senzor.mjerenje();
lbuha 0:77fdaad43917 61 lcd.cls ();
lbuha 0:77fdaad43917 62 lcd.printf("Temperatura je:", temperatura2);
lbuha 0:77fdaad43917 63 lcd.locate (0,1);
lbuha 0:77fdaad43917 64 lcd.printf("%.2f C", temperatura2);
lbuha 0:77fdaad43917 65 vizualizacija();
lbuha 0:77fdaad43917 66 timer1.reset();
lbuha 0:77fdaad43917 67 }
lbuha 0:77fdaad43917 68
lbuha 0:77fdaad43917 69
lbuha 0:77fdaad43917 70 }
lbuha 0:77fdaad43917 71 }
lbuha 0:77fdaad43917 72
lbuha 0:77fdaad43917 73