20. Bouwen van een achteruitrij sensor

20. Bouwen van een achteruitrij sensor

Doel van deze Experience

Begrijpen hoe een sensor werkt gebaseerd op natuurkundige principes. Het combineren van een sensor en een buzzer tot een nieuwe oplossing.

Wat heb je nodig;

  • Arduino
  • SR04 Ultra sone afstand meter
  • Buzzer

Theorie

In de experimenteerkist heb je een speciale component ontvangen de SR04. Deze ziet er als volgt uit;

SR04

Deze unit stuurt een ultrasone puls uit en ontvangt deze ook weer. Ultrasone betekent dat dit een zeer hoge frequentie is van 40 kHz, een zeer hoge toon die door mensen niet te horen is. Een mens kan op jonge leeftijd tussen de 20Hz en 20 kHz horen. Hoe lager het aantal Hz hoe lager de toon (bas geluid) en hoe hoger de frequentie hoe hoger de toon.

Als we voor de sensor een voorwerp plaatsen dan zal de puls worden weerkaatst en terugkomen de sensor in.

werking_bewerkt
Hoe kun je nu de afstand meten? De sensor geeft alleen een tijdsignaal af als de puls weer wordt ontvangen.. We moeten dus iets slims doen om de afstand te meten. Het geluid in lucht heeft een vaste snelheid. Deze snelheid is 340 meter per seconde. Deze snelheid is dus veel lager dan de snelheid van het licht, daarom zie je bij onweer ook altijd eerst de lichtflits en pas later volgt de klap!

De snelheid van het licht is 300.000 kilometer per seconde en dus veel sneller. Als je tijdens het onweer het aantal seconde telt tussen de lichtflits en de donder en dit vermenigvuldigd met 340 meter dan weet je hoever het onweer verwijderd is. Duurt dit ongeveer 5 seconde dan is het onweer ongeveer 1700 meter verder.

Nu we deze extra informatie hebben, kunnen we met de Arduino gaan meten hoe lang het duurt voordat het signaal terug komt en dan uitrekenen wat de afstand is. Hou er wel rekening mee dat het geluidssignaal heen en terug moet. Je moet de gemeten afstand dus nog wel door 2 delen om de juiste afstand te krijgen.

Als we weten dat elke seconde vertraging gelijk is aan 340 meter, dan kunnen we met een formule de afstand in centimeters uitrekenen;

1 seconde = 340 meter

1000 milliseconde = 340 meter

2,94 milliseconde = 1 meter    (beide getallen zijn door 340 gedeeld)

0,0294 milliseconde = 1 cm   (beide getallen zijn door 100 gedeeld)

29,4 microseconde = 1 cm

De snelheid van het geluid is dus 29,4 microseconde per centimeter. Aangezien de puls heen en weer gaat moeten we dit nog een keer door 2 delen en wordt de formule;

Afstand in centimeters= tijdsduur in microseconde/(29,2 x 2)

We sluiten de SR04 aan op het Experimenteerbord met de volgende aansluitingen;

aansluitingensr04

 

Vcc gaat naar de +5 V

Gnd gaat naar de massa

Trig gaat naar digitalePin 2

Echo gaat naar digitalePin 3

 

 

We gebruiken de volgende Sketch;

const int triggerPin = 2;
const int echoPin = 3;

long distance;
long cm;
long duration;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(triggerPin,OUTPUT);//the triggerPin is an output
pinMode(echoPin,INPUT); // the echoPin is an input
}

long microsecondsToCentimeters(long microseconds){
return (microseconds / 29.411) / 2;
}

void loop() {
digitalWrite(triggerPin, LOW); //set 0V on triggerPin
delayMicroseconds(2000); //wait 2 seconds

digitalWrite(triggerPin, HIGH);//set 5V to triggerPin
delayMicroseconds(1000); //wait 1 seconds

digitalWrite(triggerPin, LOW);//set 0V to triggerPin
duration = pulseIn(echoPin, HIGH);//read the duration from the echoPin

cm = microsecondsToCentimeters(duration);
Serial.print(cm);
Serial.println(” cm”);

//Delay 1000ms before next reading.
delay(1000);
}

Je ziet dat de sensor nauwkeurig meet vanaf ongeveer 5 cm. Met de delay() functie kun je de tijd nog instellen. Als je dit wilt toepassen op een auto, om te zorgen dat je niet met je bumper tegen een andere auto aanzit, dan wil je dit misschien wel sneller laten meten. We zien nu dat het resultaat wordt weergegeven op het beeldscherm van je computer.

Gebruik van een buzzer

In de Experimenteer kit zit een “buzzer”. De passieve buzzer heeft een plus en een min en dient te worden aangesloten op een Digitale uitgang. We sluiten deze buzzer met de PLUS (+) poort aan op Digitale uitgang 9 en met de MIN (-) aan de GND.

passieve buzzer

Sluit de + van de buzzer aan op digitale pin 9 en de – aan de massa. Via onderstaande sketch hoor je het signaal van de buzzer met een bepaalde frequentie. Met het “tone” commando kun je dus in een keer de buzzer aansturen met een bepaalde frequentie en tijdsduur. Meer informatie hierover kun je hier vinden.

const int buzzerPin = 9;
const int frequency = 30;
const int duration = 1000;

void setup(){
pinMode(buzzerPin,OUTPUT);//define it as an output
}

void loop(){
tone(buzzerPin,frequency,duration);
delay(100);
}

Experimenteer zelf met de “duration”,  “frequency” en “delay “en ontdek wat er gebeurd.

Opdracht 1

Herschrijf de sketch voor de afstandsmeter zodanig dat we de afstand niet op de het beeldscherm krijgen maar op het LCD display. De waarde op de bovenste regel en “cm” op de onderste regel.

Opdracht 2

Je gaat verder waar je met opdracht 1 bent gebleven. Kun je er nu voor zorgen dat als de afstand kleiner is dan 100 cm de buzzer geluid geeft. De frequentie maakt niet uit.

Opdracht 3

Vraag eens aan iemand die een auto heeft met een achteruitrijsensor of je mag luisteren water gebeurd als deze achteruitrijdt en steeds dichter bij een obstakel komt. In het begin hoor je een langzaam signaal, op het moment dat de afstand kleiner wordt wordt deze sneller. Als bestuurder weet je dan dat je steeds dichter bij heb obstakel komt. Als je op 30cm afstand bent hoor je een langdurig signaal zonder onderbreking, je weet dan dat je moet stoppen.

Pas de sketch nu zo aan dat hij het volgende doet;

  • Boven de 100 cm geen signaal
  • Van 100 – 50 cm langzaam signaal
  • Van 50 – 30 cm sneller signaal
  • Vanaf 0 – 30 cm continu signaal

Bouw de sketch en test hem op je bureau. Als alles werkt kun je de USB kabel verwijderen en de batterij aansluiten. Laat je klasgenoten en vrienden zien wat je hebt gebouwd, maak eventueel een filmpje en post hem op je eigen en onze facebook pagina !

TestenStatus

Een reactie plaatsen