ArduinoUltrasonic Sensor
De HC-SR24 is een ultrasoon track sensor. Ultrasoon klinkt heel mooi en flashy, maar daar merk je niets van. Sterker genoeg er gaan geen LEDjes branden en er zijn geen geluidjes. De resultaten zijn echter wel weer handig om afstanden te meten.
ArduinoStuur en ontvang
Op het bordje zit een zender (Transmitter), deze stuurt heel snel 8x achter elkaar 40KHz ultrasoon golfjes (geluidgolven). En gaat dan staan te kijken wat er terug komt.
De verzonden golven verplaatsen zich van de zender af, totdat ze ergens tegenop botsen, dan kaatsen ze weer terug. De ontvanger (Receiver) ziet dan dat er golven binnenkomen en zal de teller laten stoppen.
Op het bordje zitten 2 grote zilverkleurige cilinders, ernaast staat een T voor de Transmitter en een R voor de Receiver.

ArduinoActies
De snelheid van het ultrasone golfje is 29,1 millicentimeter per second. Dat is de snelheid door de lucht. Wat we allemaal gaan doen:
- Versturen
- Signaal heen versturen ------>
- Botsen
- Signaal komt terug gestuiterd <------
- Ontvangen
- Tijdsmeting stoppen
Dat lijkt heel veel werk. Gelukkig gaat het signaal heel snel en zijn ook de componenten snel, dus het gaat allemaal vliegensvlug.
ArduinoRekenvoorbeeld
Een voorbeeldberekening waarbij het totale signaal 4 seconden onderweg is. We gaan straks een Arduino functie gebruiken die de duur terug geeft in milliseconden. Dus hier in het voorbeeld ga ik meteen uit van milliseonden. En 4 seconden is 4000 milliseconden. Gewoon met duizend vermedigvuldigen dus.
duration = 4000 miliseconden totalDistance = duration / 29.1 totalDistance = 4000 / 29,1 = 137,457 singleDistance = totalDistance / 2; singleDistance = 137,457 / 2 = 68,73 cm
De duration is de tijd die de golfjes onderweg zijn. De totalDistance is de totale afstand die de golfjes in die tijd hebben afgelegd. En omdat de golfjes heen en weer gaan moeten we de singleDistance berekenen door de totaleDistance door 2 te delen, om te zien hoe ver het object is waartegen de golfjes zijn gebotst.
Het aansluiten van het bordje is erg gemakkelijk. Er zit een pin in om te starten en een pin om de meting uit te lezen. De power en GND spreken voor zichzelf.
VCC 5V power Trig Starter (trigger) Echo Ontvangst GND Aarde+
ArduinoBreadboard

ArduinoSource code
/* Distance calculator (C) copyright www.punthooft.nl 2019 */ // Constants const int pinTrig = 2; // Trigger const int pinEcho = 3; // Echo // Variables long duration; float totalDistance; float singleDistance; long inches; // Setup function runs once when powerup the board and on reset void setup() { //Serial Port begin Serial.begin (9600); //Define inputs and outputs pinMode(pinTrig, OUTPUT); // Trigger pinMode(pinEcho, INPUT); // Response } // The loop function runs over and over again forever void loop() { // Sensor starts when triggered, the trigger signal is a HIGH pulse of 10+ microseconds // Prepare the channel by first giving a LOW pulse digitalWrite(pinTrig, LOW); delayMicroseconds(5); // Now send the trigger digitalWrite(pinTrig, HIGH); delayMicroseconds(10); digitalWrite(pinTrig, LOW); // Reads a pulse (either HIGH or LOW) on a pin. // The pulseIn function will wait for the pin to go from LOW to HIGH, // At that moment, the timer will start, ending at the next switch. duration = pulseIn(pinEcho, HIGH); // Milliseconds // Convert the time into a distance in cm totalDistance = duration / 29.1; // Divide by 29.1 singleDistance = totalDistance / 2; // Forward and back Serial.print(duration); Serial.print("msec . "); Serial.print(singleDistance); Serial.print("cm"); Serial.println(); delay(500); }
