Pametna_kuca

Dependencies:   pcinput TextLCD

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /* mikrupravljači
00002  * projektni zadatak
00003  */
00004 
00005 #include "mbed.h"
00006 #include "TextLCD.h"
00007 #include "pcinput.h"
00008 #include "blinkalo.h"
00009 
00010 PwmOut PWM1(PC_8);
00011 Timer debounce;
00012 InterruptIn gumb(PC_10);
00013 DigitalOut ledica2(PC_9);
00014 Serial bt(PA_9, PA_10); // TX, RX za bluetooth
00015 void toggle(void);
00016 void ventila(void);
00017 void ledic(void);
00018 TextLCD lcd(PA_0,PA_1,PA_4,PB_0,PC_1,PC_0); //rs, e, d0, d1, d2, d3
00019 Ticker flipper1;
00020 DigitalOut ledica1(PB_8);
00021 DigitalOut zarulja1(PC_2);
00022 DigitalOut zarulja2(PC_3);
00023 void zadatak1(void);
00024 int prva(int k, int x); // inicijalizacija funkcije prva
00025 int druga(int l, int x); // inicijalizacija funkcije druga
00026 
00027 blinkalo cctv(PB_8);
00028 
00029 void flip1()
00030 {
00031     ledica1 = !ledica1;
00032 }
00033 
00034 int main()
00035 {
00036     // inicijalizacija
00037     debounce.start();
00038     gumb.rise(&toggle);
00039     bt.baud(9600);
00040     inicijalizacija(); // ispis prvog reda na LCD
00041     float f;
00042     int i=1;
00043     int k=1;
00044     int l=1;
00045     
00046 
00047     gumb.mode(PullUp);
00048     PWM1.period(0.01);
00049     PWM1=0.25;
00050     f=0.5;
00051     lcd.locate(0,0);
00052     lcd.printf("Vrijednost pwm:");
00053     flipper1.attach(&flip1, 0.2);
00054     cctv.blink(2); 
00055     while (1) {
00056         char c;
00057 
00058         if (pc.readable()){
00059             c = KeyInput();  //vuče iz pcinput.cpp
00060             pc.printf("Vrijednost PWM-a: %f\n\r",1-f);
00061             i=c;
00062         }
00063         f=((i-48)/10.0);
00064         PWM1=f;
00065         
00066         
00067         lcd.locate(0,1);
00068         lcd.printf("%.2f ", f);
00069         if (bt.readable()) {
00070             char x = bt.getc();
00071             pc.printf("Bluetooth citljiv %i\n\r", bt.readable());
00072             k=prva(k,x);
00073             l=druga(l,x);
00074         }
00075        
00076     }
00077 }
00078 
00079 void toggle()  //za deboune i mijenjanje stanja bitnog trošila
00080 {
00081 if (debounce.read_ms()>= 150)
00082     ledica2=!ledica2;
00083     debounce.reset();
00084 }
00085 
00086 int prva(int k, int x)   // funkcija 'prva' za bt
00087 {
00088     if ( x == 'a') {
00089         k +=1;
00090     }
00091     pc.printf("Prva zarulja %i\n\r",k);
00092     if (k % 2 == 0 && k != 0) {
00093 
00094         zarulja1 = 1;
00095         bt.printf("Upaljena zarulja\n");
00096         bt.printf("led1 ON\n");
00097 
00098     }
00099     if (k % 2 == 1 && k != 1) {
00100         zarulja1 = 0;
00101         bt.printf("Ugasena zarulja\n");
00102         bt.printf("led1 OFF\n");
00103         k=1;
00104     }
00105 return k;
00106 }
00107 
00108 int druga(int l, int x)   // funkcija 'druga'
00109 {
00110     if ( x == 'b') {
00111         l +=1;
00112     }
00113     pc.printf("Druga zarulja %i\n\r",l);
00114     if (l % 2 == 0 && l != 0) {
00115 
00116         zarulja2 = 1;
00117         bt.printf("Upaljena zarulja 2\n");
00118         bt.printf("led2 ON\n");
00119         pc.printf("led2 ON\n");
00120 
00121     }
00122     if (l % 2 == 1 && l !=1 ) {
00123         zarulja2 = 0;
00124         bt.printf("Ugasena zarulja 2\n");
00125         bt.printf("led2 OFF\n");
00126         l=1;
00127     }
00128 return l;
00129 }