In questo progetto vi presenterò il sensore ad ultrasuoni HC-SR04. Funziona inviando onde sonore dal trasmettitore, che poi rimbalzano fuori di un oggetto e poi tornare al ricevitore. È possibile determinare quanto lontano qualcosa è per il tempo necessario per le onde sonore per tornare al sensore. Andiamo dritti al punto!,
Connessioni
Le connessioni sono molto semplici:
- VCC a 5V
- GND a GND
- Trig al pin 9
- Echo al pin 10
Puoi effettivamente collegare Trig ed Echo a qualsiasi pin tu voglia, 9 e 10 sono solo quelli che sto usando.
Codice
per Prima cosa definire il pin che Trig e l’Eco sono connessi.,
const int trigPin = 9; const int echoPin = 10;
Quindi dichiariamo 2 galleggianti, durata e distanza, che manterranno la lunghezza dell’onda sonora e quanto lontano è l’oggetto.
float duration, distance;
Successivamente, nel setup, dichiariamo il pin Trig come uscita, il pin Echo come ingresso e iniziamo le comunicazioni seriali.
void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(9600); }
Ora, nel ciclo, quello che facciamo è prima impostare il trigPin basso per 2 microsecondi solo per assicurarsi che il pin in basso prima., Quindi, lo impostiamo in alto per 10 microsecondi, che invia una raffica sonora di 8 cicli dal trasmettitore, che poi rimbalza su un oggetto e colpisce il ricevitore(che è collegato al Pin dell’Eco).
Quando le onde sonore colpiscono il ricevitore, si trasforma il pin Eco alto per quanto a lungo le onde erano in viaggio per. Per ottenere ciò, possiamo usare una comoda funzione Arduino chiamata pulseIn (). Ci vogliono 2 argomenti, il pin che stai ascoltando(Nel nostro caso, il pin dell’Eco) e uno stato (ALTO o BASSO)., Ciò che fa la funzione è attendere che il pin vada a qualsiasi stato inserito, inizi a cronometrare e quindi interrompa i tempi quando passa all’altro stato. Nel nostro caso ci metteremmo in ALTO poiché vogliamo iniziare a cronometrare quando il pin dell’Eco va in alto. Memorizzeremo il tempo nella variabile durata. (Restituisce il tempo in microsecondi)
duration = pulseIn(echoPin, HIGH);
Ora che abbiamo il tempo, possiamo usare l’equazione velocità = distanza / tempo, ma lo faremo tempo x velocità = distanza perché abbiamo la velocità. Che velocità abbiamo? La velocità del suono, ovviamente!, La velocità del suono è di circa 340 metri al secondo, ma poiché la funzione pulseIn() restituisce il tempo in microsecondi, avremo bisogno di avere anche una velocità in microsecondi, che è facile da ottenere. Una rapida ricerca su Google per “velocità del suono in centimetri per microsecondo” dirà che lo è .0343 c / µS. Si potrebbe fare la matematica, ma la ricerca è più facile. Comunque, con queste informazioni, possiamo calcolare la distanza! Basta moltiplicare la durata per .0343 e poi dividerlo per 2 (Perché le onde sonore viaggiano verso l’oggetto E viceversa). Lo memorizzeremo nella variabile di distanza.,
distance = (duration*.0343)/2;
Il resto sta semplicemente stampando i risultati sul monitor seriale.
Serial.print("Distance: "); Serial.println(distance); delay(100); }
Immagine di copertina di: Sparkfun
Lascia un commento