nana

Dependencies:   mbed

Revision:
0:5755bf39c144
diff -r 000000000000 -r 5755bf39c144 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri May 18 14:04:05 2018 +0000
@@ -0,0 +1,152 @@
+#include "mbed.h"
+#include "coffre.h"
+
+
+
+
+// VARIABLE *****************
+
+extern PwmOut servo;
+extern BusIn digicode;
+DigitalOut led1(p17);
+DigitalOut led2(p18);
+Timer t1;
+Timer t2;
+Timer t3;
+int code[4]={2,1,0,3};
+int etat =0;
+int   N_precedent;
+int N; 
+Serial pc (USBTX,USBRX);
+
+
+
+
+// CODE ************
+
+
+int main()
+{
+    servo.period(0.02);
+    while(1) 
+    {
+        N_precedent=N;
+        t3.start();
+        if(t3.read()>0.1)
+        {
+            N=lireval();
+            t3.reset();
+            t3.stop();
+        }
+        
+        switch(etat)
+        {
+            case 0:
+                fermer();
+                
+                if ( N_precedent==-3 and N == code[0] ) 
+                {
+                    etat=1;
+                    pc.printf("ok1\n\r");
+                }
+                if(N_precedent == -3 and N!=code[0] and N!=-3) 
+                {
+                    etat=5;
+                    t1.reset();
+                    t1.start();
+                    
+                }
+                break;
+            case 1 : 
+                
+                
+                if ( N_precedent==-3 and N == code[1])
+                {
+                    etat=2;
+                    pc.printf("ok2\n\r");
+                }
+                
+                if(N_precedent == -3 and N!=code[1] and N!=-3)
+                {
+                    etat=5;
+                    t1.reset();
+                    t1.start();
+                }
+                break;
+            case 2 :  
+                
+                if( N_precedent==-3 and N == code[2])
+                {
+                    etat=3;
+                    pc.printf("ok3\n\r");
+                }
+                if(N_precedent == -3 and N!=code[2] and N!=-3)
+                {
+                    etat=5;
+                    t1.reset();
+                    t1.start();
+                }
+                break;
+            case 3 : 
+                if ( N_precedent==-3 and N == code[3])
+                {
+                    etat=4;
+                    pc.printf("bravo c bon msieur\n\r");
+                    ouvrir();
+                    wait(5);
+                    t2.reset();
+                    t2.start();
+                }
+                if(N_precedent == -3 and N!=code[3] and N!=-3)
+                {
+                    etat=5;
+                    t1.reset();
+                    t1.start();
+                }
+                break;
+                    
+            case 4:
+                
+            
+          
+                if(t2.read()>5)
+                {
+                    etat=0;
+                }
+                break;
+            case 5:
+                if (t1.read()>1)
+                {
+                    pc.printf("c faux msieur\n\r");
+                    etat=0;
+                }
+                break;
+            
+            }
+        switch(etat)
+        {
+           case 0:
+                led1.write(1);
+                led2.write(0);
+                break;
+                
+            case 1:
+                led1.write(0);
+                led2.write(0);
+                break;
+                
+            case 2:
+                led1.write(0);
+                led2.write(0);
+                break;
+            case 3:
+                break;
+            case 4:
+                led1.write(0);
+                led2.write(1);
+                break;
+            }
+                
+            
+        }
+    }