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 }
Odette
Wauw, heel mooi
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 . . .