Ultrasonic Sensors: How They Work (and How to Use Them with Arduino)

发布人是

When you need input from the real world to your robot or data collection system, there are several options to choose from:

Light detection (infrared sensors, light-dependent resistors, and computer vision setups)

• Sensors based on magnetic fields

• Ultrasonic sensors

How Does an Ultrasonic Sensor Work?

Ultrasonic sensors work by emitting sound waves at a frequency too high for humans to hear. They then wait for the sound to be reflected back, calculating distance based on the time required. This is similar to how radar measures the time it takes a radio wave to return after hitting an object.

While some sensors use a separate sound emitter and receiver, it’s also possible to combine these into one package device, having an ultrasonic element alternate between emitting and receiving signals. This type of sensor can be manufactured in a smaller package than with separate elements, which is convenient for applications where size is at a premium.

While radar and ultrasonic sensors can be used for some of the same purposes, sound-based sensors are readily available—they can be had for just a couple dollars in some cases—and in certain situations, they may detect objects more effectively than radar.

For instance, while radar, or even light-based sensors, have a difficult time correctly processing clear plastic, ultrasonic sensors have no problem with this. In fact, they’re unaffected by the color of the material they are sensing.

On the other hand, if an object is made out of a material that absorbs sound or is shaped in such a way that it reflects the sound waves away from the receiver, readings will be unreliable.

If you need to measure the specific distance from your sensor, this can be calculated based on this formula:

Distance = ½ T x C

(T = Time and C = the speed of sound)

At 20°C (68°F), the speed of sound is 343 meters/second (1125 feet/second), but this varies depending on temperature and humidity.

Specially adapted ultrasonic sensors can also be used underwater. The speed of sound, however, is 4.3 times as fast in water as in air, so this calculation must be adjusted significantly.

What are Ultrasonic Sensors Used For?

So where can we use these sensors? Robot navigation comes to mind, as well as factory automation. Water-level sensing is another good use, and can be accomplished by positioning one sensor above a water surface. Another aquatic application is to use these sensors to “see” the bottom of a body of water, traveling through the water, but reflecting off the bottom surface below.

Though it might not be immediately obvious, if configured correctly ultrasonic sensors can even measure fluid flow rates. In the simplest case, an emitter and a receiver (separate in this configuration) are aligned with the flow of a fluid. Since sound is traveling through a moving medium, the speed of sound relative to these elements will be increased or decreased by the velocity of the fluid. This can be applied to flow inside pipes by aligning these two elements at an angle to each other, calculating the effective velocity increase based on the trigonometric relations between the two.

Flowrate accuracy can be increased by using data from multiple ultrasonic elements, giving results accurate to within a fraction of a percent.

Incorporating Ultrasonic Sensors into Arduino Projects

Arduino Ultrasonic Sensor

If this all sounds interesting, you can try it out yourself very easily using an Arduino and an HC-SR04 sensor. Shown above is the compact and inexpensive Arduino Nano, but any other development board should also work. Gather the components (Arduino, HC-SR04, wires, and breadboard) and go into the Arduino IDE and install the “NewPing” sensor library.

参阅相关产品

Arduino Nano | A000005

Arduino Corporation 嵌入式系统开发板和套件 查看

Once installed, there will be a number of new example sketches you can choose from.

Open up the “NewPing3Sensors” sketch.

Attach pins from your Arduino to the HC-SR04, as defined in the program, adding ground and 5V from the Arduino.

Send the program to your dev board, and then open up a serial monitor at 115200 baud. You’ll see a distance reading when you put something in front of it. Note that it reads “0” when it doesn’t properly read a distance.

Try experimenting with different shapes and materials to see what works and what doesn’t. I was pleased to find that acoustic foam paneling does not return a signal, while flat smooth surfaces like a phone screen or piece of paper are sensed quite well.

 Click here for more Arduino information and ideas. 

Overstock AV Page Footer 560x140 2 1 1

最新消息

Sorry, your filter selection returned no results.

请仔细阅读我们近期更改的隐私政策。当按下确认键时,您已了解并同意艾睿电子的隐私政策和用户协议。

本网站需使用cookies以改善用户您的体验并进一步改进我们的网站。此处阅读了解关于网站cookies的使用以及如何禁用cookies。网页cookies和追踪功能或許用于市场分析。当您按下同意按钮,您已经了解并同意在您的设备上接受cookies,并给予网站追踪权限。更多关于如何取消网站cookies及追踪的信息,请点击下方“阅读更多”。尽管同意启用cookies追踪与否取决用户意愿,取消网页cookies及追踪可能导致网站运作或显示异常,亦或导致相关推荐广告减少。

我们尊重您的隐私。请在此阅读我们的隐私政策。