Crea un Rilevatore di Prossimità con Arduino

Collegare un sensore di prossimità ad Arduino per calcolare la distanza da un oggetto

Esistono diversi circuiti integrati che assolvono questo compito ma le tecnologie utilizzate sono sostanzialmente due: infrarossi ed ultrasuoni.La mia scelta è caduta sul Sonic SRF05 che impiega la seconda tecnologia: dal datasheet e dai vari post che ho visto in giro, sembrava quello più affidabile, più economico e più semplice da impiegare.

Il componente SRF05 si presenta così:

SRF05

Il funzionamento è semplice, avviene inviando un impulso ad ultrasuoni (frequenza attorno ai 40Khz), attendendo che l’impulso ritorni dopo aver colpito un oggetto. Misurando il tempo impiegato fra il momento in cui l’impulso è stato emesso e quello in cui questo ritorna, viene calcolata la distanza fra il sensore e l’oggetto. Le distanze misurabili vanno dai 3 cm ai 4 metri. Interfacciare il sensore ad Arduino è veramente molto semplice, ci sono solo 4 connettori di cui preoccuparsi: alimentazione, massa, trigger ed echo.L’alimentazione richiesta è pari a 5V, esattamente la tensione emessa da Arduino, per cui per alimentarlo è sufficiente collegarlo al controllore senza l’ausilio di alimentazioni esterne.

Schema di assemblaggio

SchemaSRF05

Colleghiamo il connettore ‘echo’ al Pin 3 del controllore, quello trigger al Pin 2 e, in fine, i due Pin di alimentazione (+5V e GND).Fatti i dovuti collegamenti hardware passiamo alla parte software, useremo questo algoritmo per la lettura della misura: dopo aver inizializzato le variabili e i PIN del controllore, eseguiamo 10 letture consecutive, ne calcoliamo le media e prendiamo quella come valore della distanza in cm. La porzione di codice:  digitalWrite(initPin, HIGH);  delayMicroseconds(10);  digitalWrite(initPin, LOW);  pulseTime = pulseIn(echoPin, HIGH);  distance = pulseTime/58; manda un impulso per 10us aspetta e si mette in ascolto aspettando l’eco di risposta. Attraverso la primitiva pulseIn(), calcola il tempo fra l’emissione del segnale e la ricezione dell’impulso di risposta. La distanza in cm si ottiene dividendo per 58 questo valore.La seconda parte del codice, esegue 10 letture consecutive, le mette in un array. Calcola la media delle letture e stampa questo valore sulla seriale.

Codice per la gestione del progetto

Total Views Views Today

Nessun commento ancora

Leave a reply