NLT

HC-SR04 Parkeersensor

Handleiding van Fay Trompert en Valerie Scheffer uit MH4F

Hallo alle lezers,

In deze handleding gaan we laten zien hoe je een parkeersensor maakt met een speaker erbij met behulp van een arduino.

Als je de gehele opstelling en de code goed hebt gemaakt is het idee dat de buzzer steeds een harder geluid gaat maken als je dichterbij de parkeersensor komt.

Als eerst begin je met het in elkaar zetten van de opstelling. We hebben er een schematische tekening bij toegevoegd. De benodigdheden die je nodig hebt om deze opstelling te maken zijn:
– Parkeersensor
– Speaker
– 9 draadjes
– Arduino bord
– Breadboard
– USB draad

De opstelling:

Je hebt ook natuurlijk een code nodig om de parkeersensor te laten werken. Daarvoor open je het arduino programma op je computer. Om de arduino dan contact te laten maken met het programma koppel je hem met de USB kabel aan de computer. Voeg dan de code toe in het programma.

De code:

 Ultrasoon.ino

Arduino
 /* Autheur: Fun met Electronica Link: https://training.funmetelectronica.nl/docs/arduino-basis/lessen/les-15-hc-sr04-parkeersensor/ Beschrijving: Parkeersensor functie. Door middel van een ultrasoon afstandsmeter. Aansluiting HC SR04: VCC = +5V GND = GND TRIG = pin 2 ECHO = pin 4 Led = pin 13 */ const int trigPin = 2; // TRIG aan pin 2 const int echoPin = 4; // ECHO aan pin 4 const int led = 13; // LED aan pin 13 long duration; // variabele voor de tijdslengte /* Het programmablok void setup wordt eenmaal beschreven */ void setup() { pinMode (led, OUTPUT); // LED is output pinMode(trigPin, OUTPUT); // TRIG is output pinMode(echoPin, INPUT); // ECHO is input Serial.begin(9600); // start seriele monitor } /* Het programmablok void loop herhaalt zich keer op keer */ void loop() { digitalWrite(trigPin, LOW); // LOW op TRIG geeft geen ultrasoon signaal delayMicroseconds(2); // wacht 2 mircoseconden digitalWrite(trigPin, HIGH); // begin het ultrasoon signaal delayMicroseconds(10); // wacht 10 microseconden digitalWrite(trigPin, LOW); // stop het ultrasoon signaal duration = pulseIn(echoPin, HIGH); // lees het signaal wat terugkomt in vertraging /* op de echoPin, de tijd die tussen uitzenden en ontvangen zit is maatgevend voor de afstand, de tijd is in microseconden */ Serial.print(duration); // geef de echo-tijd weer in de seriele monitor Serial.println(); // print een regel verder delay(100); // wacht 100 miliseconden if (duration < 1000) { // als de echotijd kleiner is dan 100 dan... digitalWrite (led, HIGH); // zet de led aan }else { // anders.. digitalWrite (led, LOW); // zet de led uit.. } } /* Opdracht 1: Maak de parkeersensor met een buzzer in plaats van een LED. Opdracht 2: Kan je net zoals in een auto het buzzer signaal sneller laten buzzen? En als het object te dichtbij is dat het een hoge constante piep geeft? Zo ja voer dit dan uit. Opgelet: enorm lastig! */

/*
 Autheur: Fun met Electronica
 Link: https://training.funmetelectronica.nl/docs/arduino-basis/lessen/les-15-hc-sr04-parkeersensor/
 Beschrijving: Parkeersensor functie.
 Door middel van een ultrasoon afstandsmeter.

Aansluiting HC SR04:
 VCC = +5V
 GND = GND
 TRIG = pin 2
 ECHO = pin 4

*/

const int trigPin = 2; // TRIG aan pin 2
 const int echoPin = 4; // ECHO aan pin 4
 const int speaker = 8; // speaker aangesloten op pin 8
 const int toon1 = 262; // de toon die hoort bij de noot C4
 const int toon2 = 294; // de toon die hoort bij de noot D4
 long duration; // variabele voor de tijdslengte

/*
 Het programmablok void setup wordt eenmaal beschreven
 */
 void setup() {
 pinMode(trigPin, OUTPUT); // TRIG is output
 pinMode(echoPin, INPUT); // ECHO is input
 pinMode(speaker, OUTPUT); // speaker is een output
 Serial.begin(9600); // start seriele monitor
 }

/*
 Het programmablok void loop herhaalt zich keer op keer
 */
 void loop() {
 digitalWrite(trigPin, LOW); // LOW op TRIG geeft geen ultrasoon signaal
 delayMicroseconds(2); // wacht 2 mircoseconden
 digitalWrite(trigPin, HIGH); // begin het ultrasoon signaal
 delayMicroseconds(10); // wacht 10 microseconden
 digitalWrite(trigPin, LOW); // stop het ultrasoon signaal
 duration = pulseIn(echoPin, HIGH); // lees het signaal wat terugkomt in vertraging

/*
 op de echoPin, de tijd die tussen uitzenden en ontvangen zit is
 maatgevend voor de afstand, de tijd is in microseconden
 */

Serial.print(duration); // geef de echo-tijd weer in de seriele monitor
 Serial.println(); // print een regel verder
 delay(100); // wacht 100 miliseconden

tone(speaker, duration); // toon 1 klinkt bij knop 1

}

2 Comments

  1. Odette

    Wauw, heel mooi

  2. Comment by post author

    Bart Kappé

    Goed gedaan meiden. Klein foutje in het schema: de ground naar de ultrasoonsensor (zwarte schuine draadje) moet een gaatje hoger. Het eerste deel van de code (die van FME) is een chaos, en volgens mij mag die helemaal weg. De crux van jullie code zit ‘m in de regel Tone(speaker, duration); dat zou je nog kunnen uitleggen . . .

Leave a Reply