wefewf

Dependencies:   mbed

Revision:
0:31bfb8d89abd
Child:
1:5be01136a518
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Feb 08 13:38:35 2019 +0000
@@ -0,0 +1,197 @@
+#include "mbed.h"
+ 
+Serial pc(USBTX,USBRX);
+ 
+ 
+ 
+AnalogIn s11(p17);
+AnalogIn s12(p18);
+AnalogIn s13(p19);
+AnalogIn s14(p20);
+ 
+DigitalIn resetb(p16);
+ 
+BusOut led(p25, p26, p27, p28);
+ 
+DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
+ 
+DigitalOut door1(p21), door2(p22), door3(p23), door4(p24);
+DigitalOut door5(p25), door6(p26), door7(p27), door8(p28);
+ 
+
+ 
+float ain1;
+float ain2;
+float ain3;
+float ain4;
+float value;
+int who; 
+ 
+void alarm(float value, int who);
+void sloyfe1();
+void sloyfe2();
+void sloyfe3();
+void sloyfe4();
+void blink();
+void printV();
+ 
+ 
+Ticker ticker1;
+Ticker slf1;
+Ticker slf2;
+Ticker slf3;
+Ticker slf4; 
+Ticker blinkON;
+ 
+int main ()
+{
+    led1 = 1;
+    ticker1.attach(&printV, 0.7);
+    slf1.attach(&sloyfe1, 0.7);
+    slf2.attach(&sloyfe2, 0.7);
+    slf3.attach(&sloyfe3, 0.7);
+    slf4.attach(&sloyfe4, 0.7);
+    
+    while (1)
+    {    
+        
+        if (resetb == 1)
+        {
+            led1 = led2 = led3 = led4 = 0;
+            led = 0;
+            blinkON.detach();
+        }
+        
+        
+        
+        
+    }
+}
+ 
+ 
+void printV()
+{
+    //pc.printf ("ain1 = %f\n\r", s11 * 3.3);
+    //pc.printf ("ain2 = %f\n\r", s12 * 3.3);
+    //pc.printf ("%f\n\r", s13 * 3.3);
+    //pc.printf ("%f\n\r", s14 * 3.3);
+    
+}
+
+void sloyfe1()
+{ 
+    ain1 = (s11 * 3.3);
+    
+    if (ain1 > 2.33 && ain1 < 2.28)          //Vanlig state 
+    {
+        pc.printf("OK");
+        led = 0;
+        led1 = 0;
+        led2 = 0;
+        led3 = 0;
+        led4 = 0;
+    }
+    else
+    {
+        alarm(ain2, 2);
+    }
+}
+
+void sloyfe2()
+{ 
+     ain2 = (s12 * 3.3);
+    
+    if (ain2 > 2.33 && ain2 < 2.28)          //Vanlig state 
+    {
+        pc.printf("OK");
+    }
+    else
+    {
+        alarm(ain2, 2);
+    }
+}
+
+void sloyfe3()
+{ 
+     ain3 = (s13 * 3.3);
+    
+    if (ain3 > 2.33 && ain3 < 2.28)          //Vanlig state 
+    {
+        pc.printf("OK");
+    }
+    else
+    {
+       alarm(ain3, 4); 
+    }
+}
+
+void sloyfe4()
+{ 
+     ain4 = (s14 * 3.3);
+    
+    if (ain4 > 2.33 && ain4 < 2.28)          //Vanlig state 
+    {
+        pc.printf("OK");
+    }
+    else
+    {
+        alarm(ain4, 8);
+    }
+}
+ 
+void alarm(float value, int who)
+{
+    if (value > 0.483 && value < 0.474)   //Dør 1 og dør 2 åpen
+    {    
+       pc.printf("Both doors are open in s%d\n\r", who);
+       led = who;
+       led3 = 1;
+       led4 = 1;
+       
+    }
+        
+    else if (value > 0.879 && value < 0.862)   //Dør 1 åpen
+    {
+        pc.printf("Door 1 is open in s%d\n\r", who);
+        led = who;
+        led3 = 1;
+        
+    }
+        
+    else if (value > 0.736 && value < 0.721)   //Dør 2 åpen
+    {
+        pc.printf("Door 2 is open in s%d\n\r", who);
+        led = who;
+        led4 = 1;
+        
+    }
+        
+    else if (value > 2.92 && value < 2.86)    //Dør 1 kortsluttet
+    {
+        pc.printf("Short Circuit at Door 1 in s%d\n\r", who);
+        led = who;
+        led3 = 1;
+        
+    }
+        
+    else if (value > 2.58 && value < 2.53)    //Dør 2 kortsluttet
+    {
+        pc.printf("Short Circuit at Door 2 in s%d\n\r", who);
+        led = who;
+        led4 = 1;
+        
+        
+    }
+        
+    else                                    //Something wrong in wing 1
+    {
+        pc.printf("verdi stemmer ikke %f", ain1);
+        blinkON.attach(&blink, 0.1);
+        
+    } 
+}
+
+void blink()
+{
+    led1 = !led1;
+}