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.
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