Afstanden meten met ultrasoon geluid
Met ultrasoon geluid kunt u vrij nauwkeurig kleine afstanden meten volgens het radar-principe. Een ultrasone transducer zendt een paar pulsen uit van een signaal met een frequentie van 40 kHz. Dit signaal kaatst terug op een object. Het teruggekaatste signaal wordt opgevangen in een tweede transducer en versterkt. Door de tijd te meten tussen het uitzenden en het ontvangen van de pulsen kunt u nauwkeurig de afstand van de transducers tot het object meten. De snelheid van ultrasoon geluid in de lucht op zeeniveau bedraagt immers bij 0 °C en 0 % relatieve vochtigheid 331,4 meter per seconde of 1193,00 km/h. De afstand is dan gelijk aan de gemeten tijd maal deze snelheid en dat gedeeld door twee. De ultrasone signalen leggen immers twee keer de afstand tussen transducers en het object af.
Wilt u heel nauwkeurig meten, dan moet u rekening houden met de plaatselijke temperatuur en luchtvochtigheid van de lucht. De geluidssnelheid wordt dan gegeven door:
vlucht = 331,4 + [0,606 • t] + [0,0124 • RH]
waarin:
- t de luchttemperatuur in °C.
- RH de relatieve vochtigheid in %.
Het principe van het meten van afstanden met ultrasoon geluid. (© 2017 Jos Verstraten) |
De HC-SR04 is een module die u een groot deel van het werk uit handen neemt. Deze module bevat niet alleen de twee transducers, maar ook alle elektronica die nodig is voor het verzenden en ontvangen van de 40 kHz pulsen. De module heeft één ingang Trig waarop u een smalle startpuls zet en één uitgang Echo die hoog wordt tussen het uitzenden en ontvangen van de eerste puls van de burst. Kan het gemakkelijker? De module komt (uiteraard) uit China en wordt onder diverse merknamen aangeboden. Het lijkt er op dat een bedrijf genaamd Cytron Technologies de échte fabrikant van de module is. Zoals meestal bij dit soort producten moet u flink Googlen om de goedkoopste aanbieder te vinden. Wij vonden prijzen die uiteen liepen van € 0,66 tot € 9,99 per stuk!
De voorzijde van de HC-SR04 module. (© Aliexpress) |
Er zijn verschillende versies van deze module in omloop, vandaar misschien het grote prijsverschil. In alle gevonden versies zit er echter vrijwel identieke elektronica op de achterzijde van de print. Een viervoudige op-amp van het type LM324 verzorgt de versterking van het terug ontvangen signaal. De transducer die zendt wordt, vreemd genoeg, gestuurd uit een MAX232A. Dat is een RS232 lijndriver en receiver. Daar zit echter een spanningspomp in, waarmee uit een voedingsspanning van 5 V twee symmetrische spanningen van ±12V worden gegenereerd. Op deze inventieve manier wordt de zendtransducer dus met een veel groter signaal gestuurd dan de beschikbare 5 V voeding toestaat, waardoor het bereik van de module uiteraard wordt verhoogd. Het derde IC is zorgvuldig anoniem gemaakt, maar zal wel een eenvoudige acht bit microcontroller zijn die via een klein programmaatje uit het aanwezige kristal van 27 MHz de acht perioden van het zendsignaal van 40 kHz genereert.
De elektronica op de achterzijde van de HC-SR04. (© Addicore) |
Door reverse engineering toe te passen is het mogelijk het schema van de module grotendeels te ontrafelen. De technici van mc-computing hebben daar nogal wat tijd aan besteed, met het onderstaande resultaat.
Het herwonnen schema van de module. (© mc-computing) |
- Prijsdindicatie: € 0,66 tot € 9,99
- Fabrikant: Cytron Technologies (?)
- Voedingsspanning: + 5 Vdc
- Ruststroom: minder dan 2 mA
- Werkstroom: 15 mA typisch
- Werkfrequentie: 40 kHz typisch
- Openingshoek systeem: minder dan 15°
- Bereik: 2 cm tot 450 cm
- Nauwkeurigheid: ±3 mm
- Triggerpuls: positief, 10 µs minimaal
- Afmetingen: 43 mm x 20 mm x 15 mm
- EAN-code: 4250236810256
De timing van de HC-SR04
De werking van de module is uiterst simpel. U zet op de pen 'Trigger' een positieve puls van minstens 10 µs. Deze pulsen kunt u om de 100 µs herhalen. Op de achterflank van deze puls wekt de module acht perioden van het 40 kHz signaal op. Bij de start van dit signaal verschijnt op de uitgang 'Echo' de voorflank van een positieve puls. Op het moment dat de eerste gereflecteerde periode wordt ontvangen gaat dit signaal naar nul. U moet dus via bijvoorbeeld een Arduino de tijd meten tussen de voor- en de achterflank van de puls op 'Echo'.
Werkt u analoog, dan kunt u deze tijd gebruiken om een condensator uit een stroombron op te laden. De spanning over de condensator is dan recht evenredig met de gemeten afstand en u kunt een LED-thermometerschaal gebruiken om deze spanning te weer te geven.
De timing van de HC-SR04. (© 2017 Jos Verstraten) |
HC-SR04 Distance Measuring Ranging Transducer Sensor