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