// il pin 9 di ARduino e' connesso al pin di trigger del sensore // il pin 10 di Arduino al pin di eco del sensore int trig = 9; int eco = 10; void setup() { // assegna ai pin il modo di funzionamento pinMode(trig, OUTPUT); pinMode(eco, INPUT); digitalWrite (trig, LOW); Serial.begin(9600); } void loop() { // produce un impulso di trigger che dev'essere lungo almeno // 10 usec. digitalWrite (trig, HIGH); delayMicroseconds (10); digitalWrite (trig, LOW); // misura la posizione all'istante t1 double x1 = 357.*0.5*1.e-6*pulseIn (eco, HIGH); unsigned long t1=micros(); // attende 200 ms delay(200); // produce un nuovo impulso di trigger digitalWrite (trig, HIGH); delayMicroseconds (10); digitalWrite (trig, LOW); // misura nuovamente la posizione all'istante t2 double x2 = 357.*0.5*1.e-6*pulseIn (eco, HIGH); unsigned long t2=micros(); // calcola la velocita' float v= 1.e6*fabs(x2-x1)/(t2-t1); // scrive i dati sul Serial Monitor Serial.print((t1+t2)/2.e6); Serial.print(", "); Serial.println (v); delay(200); }