Измерение расстояния с помощью Arduino и ультразвукового датчика сонара

Добавлено 15 июня 2017 в 18:45

Начнем измерения!

Ультразвуковые датчики расстояния (сонары)

Самое популярное и основное использование сонара – это «видеть» под водой. Для обнаружения объектов сонар использует распространение звука. Поскольку звуковые волны распространяются в воде дальше, чем в воздухе, то в этом случае использование сонара предпочтительнее, по сравнению с другими типами датчиков, такими как радар. Несмотря на то, что сонар предпочтителен для подводного зондирования, его всё равно можно использовать в воздухе; однако существует небольшая вероятность интерференции, которую мы можем наблюдать при измерении расстояния.

Существует два типа сонаров: пассивный и активный. Активный сонар имеет излучатель и детектор: в зависимости от времени, за которое сигнал возвращается к сонару, он может определить расстояние до объекта и его ориентацию. Он также определяет уровень сигнала, чтобы определить, сколько времени ему потребовалось для захвата приемником. Пассивные сонары используются для захвата сигналов от судов и других морских объектов, таких как киты и подводные лодки. Пассивные сонары не имеют излучателей; они просто принимают доходящие до них звуковые волны.

Работа сонара
Работа сонара

Что нам понадобится

  1. Arduino Uno;
  2. ультразвуковой дальномер Maxbotix;
  3. 3 перемычки;
  4. припой;
  5. паяльник;
  6. компьютер с Arduino IDE;
  7. USB кабель для подключения Arduino;
  8. мультиметр;

Мы будем использовать Arduino Uno в качестве нашего микропроцессора, чтобы иметь возможность считывать расстояние, определенное сонаром. Сонар, который мы используем, – это ультразвуковой дальномер Maxbotix, но в этом проекте могут быть использованы любые модели, близкие к этой, которые на выдают ШИМ или аналоговый сигнал. Три перемычки будут припаяны к датчику ультразвукового дальномера, поэтому нам понадобятся припой и паяльник. После того, как всё будет припаяно и подключено, необходимо будет с помощью IDE загрузить в Arduino код, приведенный ниже.

Начнем

Три вывода, которые будут припаяны к датчику сонара показаны ниже.

Задействованные выводы сонара

Припаяйте провода к выводу GND, к выводу V для подачи +5 В, и ко второму выводу снизу (выход ШИМ сигнала).

Вы можете подключить датчик к Arduino напрямую или через макетную плату. Земля датчика должна соединяться с выводом GND Arduino, питание на датчик необходимо подать с вывода +5V Arduino. ШИМ выход датчика должен быть подключен к любому выводу Arduino, способному принимать ШИМ сигнал. В этом случае я использую цифровой вывод 3.

Как подключить датчик к Arduino
Как подключить датчик к Arduino
#include "Maxbotix.h"

// #3 определяет, с какого цифрового входа будут считываться показания
// Maxbotix:PW определяет, что Arduino считывает ШИМ сигналы 
Maxbotix rangeSensorPW(3, Maxbotix::PW, Maxbotix::LV); 


void setup()
{
  Serial.begin(9600);
}

void loop()
{
  unsigned long start;
  
  Serial.println("Reading 1st Sensor");  // Монитор последовательного порта напечатает эту строку
 
  start = millis(); // Для расчета количество миллисекунд между передачей и приемом сигнала
  Serial.print("PW 1: ");
  Serial.print(rangeSensorPW.getRange()*.393701); // умножаем для перевода сантиметров в дюймы
  Serial.print(" inches - ");
  Serial.print(millis() - start);  
  Serial.println("ms");
 
  Serial.println();
  delay(1500);   // Ждем 1,5 секунды
   
}

Когда Arduino подключена, как показано на рисунке выше, и загружен код, вы можете открыть монитор последовательного порта, в нем будут отображаться расстояния дюймах каждые 1,5 секунды. Попробуйте поместить над сонаром руку, и он определит расстояние до нее. Для этого конкретного сонара диапазон измерения расстояний составляет 20 футов (6 метров).

Ниже приведен пример того, что будет выведено в монитор последовательного порта.

Вывод в монитор последовательного порта

Теги

ArduinoДатчикИзмерениеРасстояниеСонар

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.