oki

Dependencies:   mbed

Fork of ProjetInfo2_Multi by julien bitoun

Revision:
4:23e955d622f9
Parent:
2:ae058dfdebac
--- a/main.cpp	Fri Jun 01 11:36:44 2018 +0000
+++ b/main.cpp	Tue Jun 12 14:45:54 2018 +0000
@@ -1,6 +1,7 @@
 #include "mbed.h"
 #include "coffre.h"
 #include "music.h"
+#include "TextLCD.h"
 
 
 #define O 0.0193
@@ -10,20 +11,24 @@
 
 // VARIABLE *****************
 
-
+extern TextLCD LCD ;
 extern BusIn digicode;
 DigitalOut led1(p20);
 DigitalOut led2(p18);
 Timer t1;
 Timer t2;
-Timer t3;
-int code[4]={2,1,0,3};
-int etat =0;
-int   N_precedent;
-int N;
+extern int u;
+extern Timer t3;
+extern int code[4];
+extern int etat =0;
+extern int   N_precedent;
+extern int N;
 int juste;
 int count;
-Serial pc (USBTX,USBRX);
+ extern Serial pc;
+extern Serial bluetooth;
+extern char chara;
+DigitalIn bp (p30);
 
 
 
@@ -33,27 +38,42 @@
 
 int main()
 {
+    bp.mode(PullUp);
     
     while(1) 
     {
         N_precedent=N;
         t3.start();
-        if(t3.read()>0.01)
+        if (bluetooth.readable())
+        {
+            chara=bluetooth.getc();
+            N=chara-'0';
+        }
+        else
         {
-            N=lireval();
-            t3.reset();
-            t3.stop();
+            N=-3;
         }
-        
+        if (N==10)
+        {
+            N=-2;
+        }        
         switch(etat)
         {
             case 0:
+            LCD.cls();
+            LCD.printf("code :");
                 if (count>=3)
                 {
                     
                     led2.write(1);
+                    LCD.cls();
+                    LCD.printf("appel");
+                    LCD.locate(0,1);
+                    LCD.printf("police");
                     music();
-                    //wait(3);
+                    
+                    wait(3);
+                    LCD.cls();
                     count=0;
                 }
                 
@@ -69,6 +89,11 @@
                     t1.start();
                     
                 }
+                if (N_precedent==-3 and bp.read()==0)
+                {
+                    changement_code(code);
+                    u=0;
+                }
                 pc.printf("etat =0\n\r");
                 break;
             case 1 : 
@@ -109,7 +134,7 @@
                     pc.printf("bravo c bon msieur\n\r");
                     juste=1;
                     
-                    //wait(0.5);
+                    wait(0.5);
                     t2.reset();
                     t2.start();
                 }
@@ -123,9 +148,9 @@
                     
             case 4:
                 
-            
+                
                 pc.printf("etat =4\n\r");
-                if(t2.read()>2)
+                if(t2.read()>0.5)
                 {
                     etat=0;
                 }
@@ -136,6 +161,9 @@
                     count++;
                     pc.printf(" count = %d \n\r",count);
                     pc.printf("c faux msieur\n\r");
+                    LCD.cls();
+            LCD.printf("code faux");
+                    //music();
                     etat=0;
                     
                 }
@@ -147,25 +175,35 @@
         switch(etat)
         {
            case 0:
-                //led1.write(1);
-                led2.write(0);
                 break;
                 
             case 1:
-                led1.write(0);
-                led2.write(0);
+                LCD.locate(0,1);
+                LCD.printf("*");
                 break;
                 
             case 2:
-                led1.write(0);
-                led2.write(0);
+                LCD.locate(1,1);
+                LCD.printf("*");
                 break;
             case 3:
+                LCD.locate(2,1);
+                LCD.printf("*");
                 break;
             case 4:
-                led1.write(0);
-                //led2.write(1);
+                LCD.cls();
+                LCD.printf("code");
+                LCD.locate(0,1);
+                LCD.printf("BON");
                 servo();
+                //wait(1);
+                LCD.cls();               
+                 break;
+            case 5:
+                LCD.cls();
+                LCD.printf("code");
+                LCD.locate(0,1);
+                LCD.printf("faux");
                 break;
             }