
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.
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.
main.cpp@0:77fdaad43917, 2021-02-22 (annotated)
- Committer:
- lbuha
- Date:
- Mon Feb 22 02:01:29 2021 +0000
- Revision:
- 0:77fdaad43917
.;
Who changed what in which revision?
User | Revision | Line number | New 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 |