Arduino UNO R4 - Ultrasone Sensor

Deze tutorial leert u hoe u de ultrasone sensor en Arduino UNO R4 gebruikt om de afstand tot een object te meten. In detail gaan we leren:

Arduino UNO R4 ultrasone sensor

Over de Ultrasone Sensor

De HC-SR04 ultrasone sensor meet de afstand tot objecten met behulp van geluidsgolven. Deze zendt een geluidsgolf uit die mensen niet kunnen horen, en luistert vervolgens naar de echo wanneer de geluidsgolf terugkaatst van een object. Door de tijd te meten die de geluidsgolf nodig heeft om terug te keren, kan de sensor berekenen hoe ver het object weg is.

Pinout

De ultrasone sensor HC-SR04 heeft vier pinnen:

  • VCC pin: Verbind deze pin met VCC (5V).
  • GND pin: Verbind deze pin met GND (0V).
  • TRIG pin: Verbind deze pin met Arduino UNO R4 om besturingssignalen (pulsen) te verzenden.
  • ECHO pin: Deze pin stuurt signalen (pulsen) terug naar Arduino UNO R4. De Arduino UNO R4 berekent vervolgens de duur van deze pulsen om de afstand te bepalen.
Ultrasone Sensor Pinout
image source: diyables.io

Bedradingsschema

Arduino UNO R4 Ultrasone Sensor Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Zie De beste manier om Arduino Uno R4 en andere componenten van stroom te voorzien.

Arduino UNO R4 Code

#define TRIG_PIN 9 // The Arduino UNO R4 pin connected to the ultrasonic sensor's TRIG pin #define ECHO_PIN 8 // The Arduino UNO R4 pin connected to the ultrasonic sensor's ECHO pin float duration_us, distance_cm; void setup() { // begin serial port Serial.begin (9600); // configure the trigger pin to output mode pinMode(TRIG_PIN, OUTPUT); // configure the echo pin to input mode pinMode(ECHO_PIN, INPUT); } void loop() { // generate 10-microsecond pulse to TRIG pin digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // measure duration of pulse from ECHO pin duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance distance_cm = 0.017 * duration_us; // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); delay(500); }

Snelle Stappen

Volg deze instructies stap voor stap:

  • Als dit uw eerste keer is met de Arduino Uno R4 WiFi/Minima, raadpleeg de tutorial over het instellen van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
  • Verbind de componenten volgens het meegeleverde schema.
  • Verbind het Arduino Uno R4 board met uw computer via een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Selecteer het juiste Arduino Uno R4 board (bijv. Arduino Uno R4 WiFi) en COM-poort.
  • Kopieer de bovenstaande code en open deze met Arduino IDE
  • Klik op de Upload knop in Arduino IDE om de code naar Arduino UNO R4 te sturen
Arduino IDE - Hoe Code te Uploaden
  • Open de Serial Monitor.
  • Beweeg uw hand voor de ultrasone sensor.
  • Controleer de afstand tussen uw hand en de sensor op de Serial Monitor.
COM6
Send
distance: 29.4 cm distance: 27.6 cm distance: 26.9 cm distance: 17.4 cm distance: 16.9 cm distance: 14.3 cm distance: 15.6 cm distance: 13.1 cm
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Code Uitleg

De uitleg staat in de commentaren van de Arduino code hierboven.

Hoe Ruis van Afstandsmetingen van Ultrasone Sensor te Filteren

De uitlezing van de ultrasone sensor bevat ruis. In sommige gevallen kan deze ruisige data leiden tot incorrect functioneren. We kunnen de ruis elimineren met deze methode:

  • Neem verschillende metingen en bewaar ze in een array.
  • Sorteer de array van kleinste naar grootste.
  • Verwijder ruis uit de data:
    • Negeer de kleinste waarden omdat dit ruis is.
    • Negeer de grootste waarden omdat dit ruis is.
    • Bereken het gemiddelde met de overgebleven middelste waarden.

    De onderstaande voorbeeldcode neemt 20 metingen.

    • Negeer de vijf kleinste samples en de vijf grootste samples omdat deze worden gezien als ruis. Bereken het gemiddelde van de tien middelste samples, van de 5e tot de 14e.
    /* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-ultrasonic-sensor */ #define TRIG_PIN 9 // The Arduino UNO R4 pin connected to the ultrasonic sensor's TRIG pin #define ECHO_PIN 8 // The Arduino UNO R4 pin connected to the ultrasonic sensor's ECHO pin float filterArray[20]; // array to store data samples from sensor float distance; // store the distance from sensor void setup() { // begin serial port Serial.begin (9600); // configure the trigger and echo pins to output mode pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); } void loop() { // 1. TAKING MULTIPLE MEASUREMENTS AND STORE IN AN ARRAY for (int sample = 0; sample < 20; sample++) { filterArray[sample] = ultrasonicMeasure(); delay(30); // to avoid untrasonic interfering } // 2. SORTING THE ARRAY IN ASCENDING ORDER for (int i = 0; i < 19; i++) { for (int j = i + 1; j < 20; j++) { if (filterArray[i] > filterArray[j]) { float swap = filterArray[i]; filterArray[i] = filterArray[j]; filterArray[j] = swap; } } } // 3. FILTERING NOISE // + the five smallest samples are considered as noise -> ignore it // + the five biggest samples are considered as noise -> ignore it // ---------------------------------------------------------------- // => get average of the 10 middle samples (from 5th to 14th) double sum = 0; for (int sample = 5; sample < 15; sample++) { sum += filterArray[sample]; } distance = sum / 10; // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance); Serial.println(" cm"); } float ultrasonicMeasure() { // generate 10-microsecond pulse to TRIG pin digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // measure duration of pulse from ECHO pin float duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance float distance_cm = 0.017 * duration_us; return distance_cm; }

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Ultrasone Sensor Toepassingen

  • Botsingen Vermijden
  • Volheidsdetectie
  • Niveaumeting
  • Nabijheidsdetectie

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!