nana

Dependencies:   mbed

main.cpp

Committer:
jujuonthebeat
Date:
2018-05-18
Revision:
0:5755bf39c144

File content as of revision 0:5755bf39c144:

#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;
            }
                
            
        }
    }