Close menu
Close menu

Tunnistaudu

Kirjaudu

Etkö ole vielä jäsen?

Liity jäseneksi

Ultraäänisensori HC-SR04

Ultraäänisensori SRF_04

Ultraäänisensori SRF-04 on halpa ja helppokäyttöinen etäisyysmittalaite. Sen käyttö Arduinolla on vaivatonta. Tarvitaan GND, 5V ja lisäksi liipaisu- (TRIG) ja kaiku- (ECHO) piuhat, yhteensä siis neljä. Kytkentä näkyy kuvassa.

ultraaanikoe.png

SRF04 toimii seuraavasti: Liipaisupinniin toimitetaan noin 10 μs pitkä liipaisupulssi, jonka jälkeen SRF04 suorittaa kaikuluotauksen ja palauttaa etäisyystiedon kaikupinnistä. Etäisyystieto on koodattuna kaikupulssin pituuteen: Kun pulssin pituus mikrosekunteina jaetaan luvulla 58, saadaan etäisyys senttimetreinä. Voidaan siis käyttää kokonaislukumuuttujaa, koska ei ole mielekästä pyrkiä suurempaan kuin yhden senttimetrin tarkkuuteen (Datalehti).

Arduinossa kirjoitetaan kellonaika millisekunteina ja etäisyystieto sarjaväylälle tabulaattorimerkillä erotettuna, jolloin voidaan käyttää kokonaislukumuuttujia ja saatu informaatio voidaan suoraan näppäinkomennoilla kopioida sarjaväylän näyttöruudulta taulukkolaskenta ohjelmaan, jossa sitten voidaan tehdä graafi ja etsiä halutut paikan, nopeuden ja kiihtyvyyden arvot.

Arduino -koodi ei ole kirjoitettu parhaan koodaustavan mukaan vaan mahdollisimman tiiviiksi, jotta se olisi helppo kopioida ja näyttää projektorilla kokonaisuudessaan. Arduinon yleisesittely löytyy Kyösti Blinnikkan erinomaisesta julkaisusta ”Ohjelmointia Arduinolla”. Tässä keskitytään vain mittauksen kannalta keskeiseen.

long duration, cm; // muuttujat johon talletetaan aika ja matka

void setup() {
Serial.begin(9600); // initialisoidaan sarjaliikenne
pinMode(6, OUTPUT); // ja triggauspinni
pinMode(7, INPUT); // ja kaikupinni
}

void loop() {
digitalWrite(6, LOW);
delayMicroseconds(2);
digitalWrite(6, HIGH);
delayMicroseconds(10);
digitalWrite(6, LOW);
duration = pulseIn(7, HIGH); // luetaan pulssi
cm = duration/58; // muunnetaan pulssipituus matkaksi
Serial.print(millis()); // tulostetaan sarjaväylälle aika
Serial.print("t"); // tulostetaan sarjaväylälle tab
Serial.println(cm); // tulostetaan sarjaväylälle etäisyys
delay(500); // pidetään puolen sekunnin tauko
}

Koodin alussa näkyy alustusosio, keskiosassa muodostetaan liipaisupulssi, sitten vastaanotetaan kaikupulssi, lasketaan etäisyys ja kirjoitetaan aikatiedon kanssa sarjaväylälle. Näin saadaan sarjaväyläikkunaan näkyviin kokonaislukudataa, joka voidaan sitten copy-paste-toiminnolla viedä jatkokäsittelyyn.

Sarjaväyläkkunassa kannattaa panna automaattinen vieritys pois päältä kopioinnin helpottamiseksi.

Harjoitustyössä on saatu hyviä tuloksia esimerkiksi vierittämällä lentopalloa kallistettua pulpettia pitkin. Protolevy on helppo kiinnittää statiivin kouraan.

Kannattaa muistaa että kaiku on mahdollista saada luotettavasti vain suhteellisen suuresta, tasaisesta ja kovasta pinnasta.

Linkkejä välineisiin:

* Hyppylankoja
* Arduino Nano
* Protolevy
* Ultraäänisensori