tässä projektissa aion esitellä sinulle HC-SR04 Ultraääni-anturi. Se toimii lähettämällä lähettimestä ääniaaltoja, jotka sitten kimpoavat esineestä ja palaavat vastaanottimeen. Voit määrittää, kuinka kaukana jokin on siihen mennessä, kun ääniaallot pääsevät takaisin sensoriin. Mennään suoraan asiaan!,

Liitännät

kytkennät on hyvin yksinkertainen:

  • VCC 5V
  • GND GND
  • Trig pin 9
  • Echo pin 10

Voit itse liittää Trig ja Echo kumpi nastat haluat, 9 ja 10 ovat vain ne, joita käytän.

Kaavio (Vuonna Tinkercad oli vain Ping))) anturi, joten minun piti muokata, että)

Koodi

Ensin meidän määritellä pins-että Trig-ja Echo ovat kytketty.,

const int trigPin = 9; const int echoPin = 10;

Sitten me julistamme 2 kellukkeet, kesto ja etäisyys, joka järjestää pituus ääniaalto ja kuinka kaukana kohde on.

float duration, distance; 

Seuraava, asetukset, me julistamme, että Trig pin-lähtö, Kaiku pin tulona, ja aloita Sarjaportti viestintä.

void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(9600); } 

Nyt, silmukka, mitä voimme tehdä, on ensin asettaa trigPin alhainen 2 mikrosekuntia vain varmista, että pin-koodi matala ensin., Sitten, me asettaa sen korkea 10 mikrosekuntia, joka lähettää 8 sykli sonic räjähtää lähettimestä, joka sitten pomppii objektin ja osuu vastaanottimeen(Joka on kytketty Echo-Pin).

Kun ääniaallot osuma-vastaanotin, se kääntyy Echo-pin korkea kuitenkin pitkät aallot olivat matkalla. Sen saamiseksi Voimme käyttää kätevää Arduino-toimintoa nimeltä pulseIn (). Se kestää 2 argumentteja, pin kuuntelet (meidän tapauksessamme, Echo pin), ja tila(korkea tai matala)., Mitä toiminto tekee, on, odottaa pin mennä kumpi valtion laitat, alkaa ajoitus, ja sitten pysähtyy ajoitus, kun se siirtyy toiseen tilaan. Meidän tapauksessamme laittaisimme korkealle, koska haluamme aloittaa ajoituksen, kun Echo pin menee korkealle. Säilytämme ajan kestomuuttujassa. (Se palaa aika mikrosekunteina)

duration = pulseIn(echoPin, HIGH); 

Nyt, että meillä on aikaa, voimme käyttää yhtälöä nopeus = etäisyys/aika, mutta teemme sen aika x nopeus = matka, koska meillä on nopeus. Mikä nopeus meillä on? Äänen nopeus, tietenkin!, Äänen nopeus on noin 340 metriä sekunnissa, mutta koska pulseIn () – funktio palauttaa ajan mikrosekunteina, meidän täytyy olla nopeus mikrosekuntia myös, joka on helppo saada. Nopea Google-haku ”äänen nopeus cm / s” sanovat, että se on .0343 C / µS. Voisit laskea, mutta sen etsiminen on helpompaa. Noilla tiedoilla voimme laskea etäisyyden! Kerro vain kesto .0343 ja sitten jakaa sen 2(Koska ääniaallot matkustaa kohteeseen JA takaisin). Säilytämme sen etäisyysmuuttujassa.,

distance = (duration*.0343)/2; 

loput on vain tulostaa tulokset Serial Monitor.

 Serial.print("Distance: "); Serial.println(distance); delay(100); } 

Kannen kuva: Sparkfun