Robot fou

Dependencies:   SRF05 mbed

func.cpp

Committer:
Mattei
Date:
2018-06-01
Revision:
0:8b7645cd8a39

File content as of revision 0:8b7645cd8a39:

#include "mbed.h"
#include "func.h"
#include "time.h"

int etat=0;

float distance=32;
int vitrand1=(rand()%60)+20;
int vitrand2=(rand()%60)+20;
int cligne=rand()%15;
int td12=0;


void vite(void){
    MotD.pulsewidth_us(vitrand1);
    MotG.pulsewidth_us(vitrand2);
    vitrand1=(rand()%50)+30;
    vitrand2=(rand()%50)+30;
}

void attend(void){
    if(vitrand1>vitrand2){
        wait(40*1/vitrand1);
    }
    else wait(40*1/vitrand2);
}

void clignote(void){
    cligne=rand()%15;
    leds.write(cligne);
}

void fou(void){
    distance=srf.read();
    switch(etat){
            case 0 : if(distance > 45){ etat = 1; }; break;
            case 1 : if(distance < 45){ etat = 0; }; break;
        }
        
    switch(etat){
            case 0 : t2.detach();
                     td12=0;
                     SensG.write(1);
                     SensD.write(0);
                     MotD.pulsewidth_us(50);
                     MotG.pulsewidth_us(50);
                     attend();
                     break;
            case 1 : if(td12==0){SensD.write(0); SensG.write(0); t2.attach(&vite,0.5); td12=1;} break;
        }
       /* printf("sensrand = %d\n\r",sensrand);
        printf("vitrand = %d\n\r",vitrand);
        */
        
        printf("Tension Batterie:%g\n\r",(Vbat.read()*13300*3.3)/3300);
        //wait(1);
        wait_ms(30);
}