oui

Dependencies:   mbed

main.cpp

Committer:
Monzername
Date:
2018-12-20
Revision:
0:5347a4015509

File content as of revision 0:5347a4015509:

#include "mbed.h"
                                                                                                                                                                      
DigitalIn fdc(D2);
DigitalIn jack(D3);
PwmOut moteur1(D6);
PwmOut moteur2(D8);
AnalogIn capteur1(A1);
AnalogIn capteur2(A2);

int main() 
{
    moteur1.period_us(100);
    moteur2.period_us(100);
    int etat=0, varJack, varFDC;
    while(1) 
    {
        varJack=jack.read();
        varFDC=fdc.read();
        switch(etat)
        {
                 case 0 : if ( varJack == 1 ) /* Il n'y a plus le jack */
                          {
                              etat = 1 ;
                              break;   
                          } 
                 case 1 : if ( varFDC == 0 )
                          {
                              etat = 2 ;
                              break;
                          }
                 case 2 : if ( varJack == 0 )
                          {
                             etat = 0 ;
                             break;
                          }
                          
        }
                 
        switch(etat)
        {
            case 0 : 
                    moteur1.pulsewidth_us(0); 
                    moteur2.pulsewidth_us(0);  // moteurs à l'arrêt
                    //printf("Jack dehors");
                    //printf("etat 0\n\r");
                    break;
            case 1 :if ( capteur1.read() > 0.6 && capteur2.read() > 0.6 )
                    {
                        moteur1.pulsewidth_us(25);
                        moteur2.pulsewidth_us(25);  // le robot roule 
                        //printf("avance\n\r");
                    }
                    if ( capteur1.read() < 0.6 && capteur2.read() > 0.6 )
                    {
                        moteur1.pulsewidth_us(25);
                        moteur2.pulsewidth_us(10);  // moteur 1 ralenti
                        //printf("tourne gauche\n\r");
                        break;  
                    }
                    if ( capteur1.read() > 0.6 && capteur2.read() < 0.6 )
                    {
                        moteur1.pulsewidth_us(10);
                        moteur2.pulsewidth_us(25);  // moteur 2 ralenti
                       // printf("tourne droite\n\r");
                        break;  
                    }
                    if ( capteur1.read() < 0.6 && capteur2.read() < 0.6 )
                    {
                        moteur1.pulsewidth_us(25);
                        moteur2.pulsewidth_us(25);  // le robot roule 
                        //printf("avance\n\r"); 
                        break;   
                    }
                    break;
            case 2 : 
                    moteur1.pulsewidth_us(0); 
                    moteur2.pulsewidth_us(0);  // moteurs à l'arrêt
                  //  printf("etat 2\n\r");
                    break;
        }
        
        
    }
}