mercoledì 27 luglio 2016

HY-SRF05

Collegamento: 




Codice C:


#include stdio.h
#include sys/time.h
#include wiringPi.h
#include unistd.h

#define TR 0
#define EC 1

#define TIPO_T  struct timeval
 
     
int main(void){
  
    if(wiringPiSetup() == -1){ //when initialize wiring failed,print messageto screen
        printf("setup wiringPi failed !");
        return 1;
    }

    int i;
    float dis;
    long elap;
               
    pinMode(TR, OUTPUT);
    pinMode(EC, INPUT);
  
    TIPO_T tstart, tend;
       
    while (1){
        i=gettimeofday(&tstart, NULL);
       
        digitalWrite(TR, LOW);  
        usleep(5000);
        digitalWrite(TR, HIGH);                  
        usleep(1000);
        digitalWrite(TR, LOW);                  
        i=gettimeofday(&tstart, NULL);
        printf("Stato Ing:  %d \n",digitalRead(EC));
               
        while (digitalRead(EC)==0){
            i=gettimeofday(&tstart, NULL);
            //printf("loop 1 \n");
        }
       
        while (digitalRead(EC)==1){
            i=gettimeofday(&tend, NULL);
            //printf("loop 2 \n");
        }                  
       
        elap=tend.tv_usec-tstart.tv_usec;
       
        dis = elap * 343;

        dis = dis / 20000;  
           
        printf(" Distanza di: %.1f cm\n",dis);
       
        delay(500);
       
       
    }
    return 0;
}

Nessun commento:

Posta un commento