// Programma per la misura dello spazio e del tempo di un carrello // in discesa lungo un piano inclinato int trig = 9; // il pin 9 di Arduino collegato al Trigger // del sensore int eco = 10; // il pin 10 di Arduino è collegato all'Eco // del sensore void setup() { pinMode(trig, OUTPUT); // al pin 9 Arduino invia una corrente di uscita pinMode(eco, INPUT); // al pin 10 Arduino riceve la risposta dal sensore digitalWrite(trig, LOW); // disponi il pin 9 a tensione nulla. Serial.begin(9600); Serial.println ("t(s), s(cm)"); // intestazione della tabella con tempo in secondi e // spazio percorso in centimetri //delay (1000); //aspetta un po' prima di far partire il LOOP } void loop() { digitalWrite(trig, HIGH); //produce un impulso di trigger che deve essere lungo almeno 10usec delayMicroseconds (10); digitalWrite(trig, LOW); //abbassa la tensione al minimo sul pin trigger // mette in ascolto l'eco mediante la funzione pulseIn unsigned long durata = pulseIn(eco, HIGH); //tale funzione non fa altro che contare // il tempo nel quale il pin specificato come primo parametro (eco) // si trova nello stato specificato dal secondo parametro (HIGH) // il sensore come risposta manda un segnale HIGH sul pin // eco direttamento proporzionale alla durata in usec // delle onde sonore float distanza = 0.03438 * durata / 2; // la velocita' delle ondensonore e' variabile con la temperatura. // A 20°C essa e' 343,8 m/s unsigned long tempo = micros (); //riporta il tempo dall'inizio dell'esperimento Serial.println (distanza); //distanza in cm delay(10); }