Non-blocking ultrasone Sensor voor Arduino


De HC-SR04 ultrasone opgezette module is een fantastische aanvulling op elk project van de robot. Zijn een zeer eenvoudige en goedkope manier om track een robots progress (ervan uitgaande dat we hebben vaste referentiepunten) over een gerapporteerde bereik van 2-400cm met nauwkeurigheden van 3mm mogelijk. Het is ook een geweldige manier om toe te voegen object vermijden om te stoppen met uw kostbare creatie crashen in het landschap.

De modules-bediening is zeer eenvoudig. Wanneer geactiveerd met stuurt een puls van de 10us aan de trigger pin de module acht 40kHz ultrasone pulsen. De module vervolgens neemt de hoge echo-pin en houdt het er tot de ontvangst van een echo terug naar de module. De geldigheidsduur van de echo-pin hoge is recht evenredig met de afstand tot een object. In feite, dit is de tijd duurt de pulsen om te reizen naar de object en terug en omdat we de snelheid van het geluid bij 20° C in droge lucht op zeeniveau in 343.2 m/s weten, we de volgende formule kunnen gebruiken om het uitwerken van de afstand van de module tot het object:

afstand (m) = (tijd(en) * toerental (m/s)) / 2

Aangezien we gaan meten van tijd in microseconden zijn gemakkelijk voor ons om uit te werken hoe ver reizen per microseconde klinken en gewoon onze gemeten tijd door dit getal te vermenigvuldigen.

343.2 m/s = 0.0343.2cm/us

Dus nu kunnen we zeggen:

afstand (cm) = (time(us) * speed(cm/us)) / 2 = (tijd * 0.0343.2)/2

Als te vermenigvuldigen en delen zijn dure stappen (in termen van tijd) op een microcontroller we ook kunnen verdelen onze constante snelheid door 2 nu en sla het herhalen van de inspanning later, dus:

afstand (cm) = time(us) * 0.01716

Nu, we gaan tot het meten van een geheel (hele) aantal microseconden en we weten dat zwevend punt wiskunde op een microcontroller minder efficiënt zijn dan het gehele getal dat gelijk is. Zo, in plaats van vermenigvuldigend onze gemeten hoeveelheid tijd door een drijvende komma we konden het indelen door integer omdat 0.01716 ongeveer hetzelfde als 1/58, dus is:

afstand (cm) = time(us) / 58(cm/us)

We kunnen met behulp van dezelfde methode bepalen dat de afstand tot een object in inches als volgt is:

afstand (in) = time(us) / 148(in/us)

Dus, nu we hoe de sensor werkt weten, hoe het te gebruiken en hoe je een nuttige waarde van haar uitvoer. Het laatste probleem, voor mij is hoe dan ook, dat wachten op de echo-pin te laag gaan de uitvoering van onze programma's blokkeert. Dit betekent dat terwijl de module om een lezing te wachten we niet iets anders. Gezien de modules bereik van 400cm kon worden wachten wij maar liefst 23ms. Nu dit niet lijkt misschien veel, maar voor een robot die heeft een iteratieve controle lus en veel andere dingen te doen (controlerende motors, verzamelen van andere sensorgegevens) is dit een aanzienlijke vertraging.

Gelukkig is er een manier die de microcontroller ons wanneer de echo-pin verandert in plaats van ons hoeft vertellen kan te kijken en wachten. Dit mechanisme wordt een 'onderbreken' genoemd omdat de microcontroller letterlijk de uitvoering van het programma wordt onderbroken wanneer de voorwaarde van een interrupt optreedt en roept u een functie van onze keuze. En dit is de methode die ik voor dit voorbeeld gebruikt heb. Wanneer de echo-pin hoog aan het begin gaat van de variërend van onze interrupt service routine (ISR, functie die zich met de interrupt bezighoudt) wordt genoemd en we de huidige tijd besparen als onze begintijd. Opnieuw wanneer de echo-pin gaat laag aan het einde van de variërend van onze ISR heet en we de huidige tijd besparen als onze eindtijd. Het verschil tussen de begin- en einddatum tijden is de tijd die nodig is voor de variërend. Eenvoudig! Er zijn tal van middelen die er die hoe interrupts veel beter beschrijven dan ik kon en ik heb al veel te veel hier geschreven! Ook ik heb verpakt de code in een kleine bibliotheek, dus als je wilt om het te gebruiken en niet schelen hoe interrupts werken, hoeft niet.

Gerelateerde Artikelen

De opname met behulp van ultrasone sensor met arduino

De opname met behulp van ultrasone sensor met arduino

Ik heb in de IOT ruimte voor een flink aantal maanden en proberen om dingen te integreren met Arduino board, onlangs kwam ik ultrasone sensor, het is interessant. Dus ik dacht van het creëren van een klein project. Het doel van het project is het vas
Het gebruik van een ultrasone Sensor met Arduino

Het gebruik van een ultrasone Sensor met Arduino

HC-SR04 ultrasone sensoren afstanden vrij nauwkeurig kunnen meten en zijn zeer nuttig in vele Arduino projecten. Ik heb ze gebruikt in autonome robots, elektronische instrumenten, en vele andere projecten. Ze hebben een bereik van 2 cm - 400 cm (~ 0.
VDO oliedruk sensor voor Arduino

VDO oliedruk sensor voor Arduino

het idee is om een instrument voor 7.0 Inch TFT (800 X 480) met de uitlezing sensor voor mijn bootje.Het heeft een ingebouwde Yanmar 3GM 30-3 cilinder dieselmotor. De motor is zo eenvoudig aangezien het krijgt.Er zijn slechts twee meters aan boord (b
Zet een potlood tekening in een capacitieve sensor voor Arduino

Zet een potlood tekening in een capacitieve sensor voor Arduino

wist je dat?  Kun je potlood tekeningen reactieve raken voor gebruik met uw projecten!  Het is echt makkelijk, en geeft u veel flexibiliteit bij het maken van interfaces voor welke microcontroller project u aanbrengt.Ik samen te stellen dit als onder
Beveiliging alarm Laser detector of sensor voor arduino Beginner

Beveiliging alarm Laser detector of sensor voor arduino Beginner

Hallo, jongens vandaag u en mij alle gaan maken van een laser detector werken met een Arduino en piezo.Dus hoe werkt het. Wanneer de laser wordt geblokkeerd uit het hoofd van de module de piezo zalalarm omhoog.Dus laten we beginnen. :):):):):):):):):
Graaf en maatregel objecten met behulp van arduino en potentiometer of een ultrasone sensor op een transportband productie

Graaf en maatregel objecten met behulp van arduino en potentiometer of een ultrasone sensor op een transportband productie

Dit instructable wordt uitgelegd hoe u een potentiometer en een ultrasone sensor met arduino op graaf/maatregel/log verschillende objecten op een transportband. Ook zullen er enkele LED's die met verschillende snelheden en een verschillend aantal kee
Het gebruik van de HC-SR04 ultrasone Sensor - Arduino tutorial Arduino Tutorial

Het gebruik van de HC-SR04 ultrasone Sensor - Arduino tutorial Arduino Tutorial

De HC-SR04 ultrasone sensor maakt gebruik van sonar te bepalen van de afstand tot een object zoals vleermuizen of dolfijnen doen. Het biedt uitstekende contactloze bereik detectie met hoge nauwkeurigheid en stabiele lezingen in een easy-to-use pakket
Blok Breaker(Unity3D) spelen met Arduino ultrasone sensor

Blok Breaker(Unity3D) spelen met Arduino ultrasone sensor

in dit instructable dat ik zal laten zien jullie hoe te maken van een blok breaker spel en spelen met behulp van een ultrasone sensor van arduino die zal worden gebruikt als een nabijheid detector te moe onze peddel links en rechtsu kunt volgen de yo
Objecten met behulp van Arduino en ultrasone sensor op een transportband productie tellen

Objecten met behulp van Arduino en ultrasone sensor op een transportband productie tellen

Intro:Dit instructable wordt uitgelegd hoe een ultrasone SENSOR met Arduino gebruiken om te tellen / log verschillende pakketten op een transportband. De instrucable zal betrekking hebben op de fysieke setup en het programma in de Arduino.Er zal geen
Geluid druksensor voor Arduino gebaseerd op een ZX-geluid bord

Geluid druksensor voor Arduino gebaseerd op een ZX-geluid bord

Er zijn een aantal goede sensoren beschikbaar voor de Arduino, sommigen van hen vrij goedkoop, dus toen ik nodig een, ik dacht dat dat gebouw een zelf waanzin was en ik uiteengezet te kopen.Eerste gedachte was natuurlijk om te controleren op Dealextr
Arduino ultrasone waterniveau Sensor voor espressomachines

Arduino ultrasone waterniveau Sensor voor espressomachines

Ik heb een zeer goede maar mooie oude koffie espressomachine met een uitneembare watertank, het probleem is dat het niet bieden een waarschuwing voor laag waterniveau, licht, dus ik kan niet zo'n niveau voordat u uit water weten! OF op zijn minst zon
[Arduino project] #Remote Monitoring van ultrasone Sensor waarde met behulp van ioShield-A & Cloud Server

[Arduino project] #Remote Monitoring van ultrasone Sensor waarde met behulp van ioShield-A & Cloud Server

Mijn post wordt uitgelegd hoe u controleert de waarde van de ultrasone sensor op afstand met behulp van Arduino, ioShield-A & Xively Server.Arduino Uno bord wordt gebruikt voor het hele systeem bedienen en het meten van de waarde van de sensor. Ik be
Arduino en ultrasone sensor control servo en afstand meter

Arduino en ultrasone sensor control servo en afstand meter

Arduino en ultrasone sensor control servo en afstand meterIn dit project kunt u bekijken hoe u kunt besturen servomotor en tu Bereken afstand met behulp van de arduino en ultrasone sensor. U nodig hebt: 1. Arduino (uno, nano, mini pro)HardwareZet de
Arduino omgekeerde obstakel sensor voor auto's

Arduino omgekeerde obstakel sensor voor auto's

dit is een instructable voor het maken van uw auto reverse/steun/parkeren obstakel sensor. Het volledige verhaal in op mijn blog:http://liudr.WordPress.comMet de sensor van dit obstakel verneemt u van uw auto afstand tot een andere auto achter terwij