Pametna_kuca
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Thu Jul 28 2022 12:36:46 by
1.7.2