Упрощаем замеры расстояния: ультразвуковой дальномер на ардуино

Ультразвуковой дальномер Arduino HC-SR04

Ультразвуковой датчик (ещё его часто называют сонаром или ультразвуковым дальномером) определяет расстояние до объекта так же, как это делают летучие мыши или дельфины. Датчик HC-SR04 генерирует узконаправленный сигнал на частоте 40 кГц и ловит отраженный сигнал (эхо). По времени распространения звука до объекта и обратно можно достаточно точно определить расстояние до него.

По этому же принципу работает множество приборов для исследования пространства — эхолот, сонар, радиолокатор и даже полицейский радар для определения скорости автомобиля. Все эти приборы излучают узконаправленный ультразвуковой сигнал и получают обратно отраженный сигнал. В отличии от инфракрасных дальномеров (IR), на показания ультразвукового датчика (сонара) не влияет цвет объекта.


Принцип работы ультразвукового дальномера HC-SR04

Но при настройке ультразвукового датчика на Ардуино могут возникнуть трудности с определением расстояния до звукопоглощающих объектов, поскольку они способны полностью погасить излучаемый сигнал. Для идеальной точности измерения расстояния, поверхность изучаемого объекта должна быть ровной и гладкой. Принцип работы ультразвукового датчика hc-sr04 показан на рисунке выше.

Программирование ультразвукового датчика HC-SR04

#define

Trig 8 /* Обозначаем пин подачи импульса*/

#define

Echo 9 /* Обозначаем пин приема импульса*/

void

setup() {

pinMode

(Trig, OUTPUT); /*инициируем как выход */

pinMode

(Echo, INPUT); /*инициируем как вход */

Serial.begin

(9600); /* устанавливаем скорость порта */

}

unsigned int

impulseTime=0;

unsigned int

distance_sm=0;

void

loop() {

digitalWrite

(Trig, HIGH);
/* Подаем импульс на вход trig дальномера */

delayMicroseconds

(10); /* Импульс длится 10 микросекунд */

digitalWrite

(Trig, LOW); // Отключаем подачу импульса

impulseTime=pulseIn

(Echo, HIGH);
/*Принимаем импульс и подсчитываем его длину*/

distance_sm

=impulseTime/58; /* Пересчитываем его значение в сантиметры */

Serial.println(
distance_sm); /* Выводим значение на порт программы */

delay

(200);

}

После того как вы вставили этот код, загрузите его в программу и включите “монитор порта”.
Там вы увидите расстояние от датчика до препятствия, поэкспериментируйте с изменением расстояния объекта.

Вот что должно у вас получиться!

Надеюсь у вас все получилось! Если у вас остались вопросы,
можете написать нам в

На фотографии не видно, но выходы Trig
и Echo
подключены ко 2 и 3 выходу Arduino соответственно. Ну а VCC
и GND
– 5v и земля.

После успешного подключения можно быстро набросать код, который будет высчитывать расстояние в сантиметрах. Код прокомментирован, так что вопросов быть не должно.

// задаем пины
int echoPin = 2;
int trigPin = 3;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// отключаем подачу импульса
digitalWrite(trigPin, LOW);
}
void loop() {
int duration, cm;
// подаем импульс
digitalWrite(trigPin, HIGH);
// ждем 10 микросекунд
delayMicroseconds(10);
// отключаем подачу импульса
digitalWrite(trigPin, LOW);
// считываем длину сигнала
duration = pulseIn(echoPin, HIGH);
// пересчитываем в сантиметры
Serial.print(duration / 58);
Serial.println(” cm”);
// ждем пол секунды до следующего измерения
delay(500);
}

Подключается по данной схеме

Если запустить его и периодически подносить к нему руку, то в консоли можно увидеть следующие измерения:

Если вам вдруг понадобятся миллиметры или дюймы, то это можно легко исправить, переписав в коде пару строк примерно на следующие:

Но у нас получается слишком много кода, а если нам потребуется подключить 2 таких дальномера? А если 10? В таком случае разработка превратится в рутину, а в случае какой-то ошибки придется менять все сразу.

Именно здесь нам на помощь приходит библиотека Ultrasonic .

Используя ее, весь прошлый код можно написать следующим образом:

Что нужно для работы программы?

Так как микроконтроллер программируется на специально разработанной под него платформе Arduino IDE, никаких дополнительных языков программирования и специальных навыков по работе с ними вам иметь не нужно, достаточно просто подключить Arduino к компьютеру. Также стоит отметить, что микросхема ATmega328 в Arduino Uno изначально содержит предварительно установленный механизм загрузки. Именно он позволяет программировать устройство без каких-либо аппаратных программаторов, а взаимодействие программной среды на компьютере и микросхеме происходит по протоколу STK500.

Для работы с программным обеспечением микроконтроллера вам понадобиться войти в меню «Инструменты», затем выбрать «Платы» и установить Arduino Uno (если вы применяете другую модель, установите ее). После этого через Arduino IDE запрограммируйте плату на логику датчика наклона и можете приступать к эксплуатации готового устройства. Также можно программировать Ардуино через протокол ICSP, но этот метод больше подходит искушенным программистам, а не начинающим конструкторам, поэтому куда проще пользоваться стандартным способом.

Исходный код программы: Датчик наклона на базе Arduino

Как подключить ультразвуковой датчик к Ардуино

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • УЗ дальномер HC-SR04;
  • 1 светодиод и резистор 220 Ом;
  • провода «папа-папа» и «папа-мама».

Схема подключения ультразвукового датчика к Arduino Uno

Схема подключения указана на рисунке выше. Отметим, что ультразвуковой дальномер HC-SR04 имеет диапазон измерения от 2 см до 400 см, работает при температурах от 0° до 60° С. Точность измерения составляет ± 1 см, рабочее напряжение датчика до 5,5 В. Для начала мы используем простой скетч, без использования библиотеки Ultrasonic. После подключения к Arduino дальномера HC-SR04 загрузите следующий скетч:

Скетч для подключения датчика hc-sr04 к Arduino

int trigPin = 8; // назначаем имя для Pin8
int echoPin = 9; // назначаем имя для Pin9
 
void setup() { 
  Serial.begin (9600); // подключаем монитор порта
  pinMode(trigPin, OUTPUT); // назначаем trigPin (Pin8), как выход
  pinMode(echoPin, INPUT); // назначаем echoPin (Pin9), как вход
} 
 
void loop() { 
  int duration, cm; // назначаем переменную "cm" и "duration" для показаний датчика
  digitalWrite(trigPin, LOW); // изначально датчик не посылает сигнал
  delayMicroseconds(2); // ставим задержку в 2 ммикросекунд

  digitalWrite(trigPin, HIGH); // посылаем сигнал
  delayMicroseconds(10); // ставим задержку в 10 микросекунд
  digitalWrite(trigPin, LOW); // выключаем сигнал

  duration = pulseIn(echoPin, HIGH); // включаем прием сигнала

  cm = duration / 58; // вычисляем расстояние в сантиметрах

  Serial.print(cm); // выводим расстояние в сантиметрах
  Serial.println(" cm");

  delay(1000); // ставим паузу в 1 секунду
}

Пояснения к коду:

  1. для подключения выходов Trig и Echo на датчике сонара Ардуино можно использовать любые цифровые входы на микроконтроллере;
  2. чтобы получить значение датчика в миллиметрах следует использовать следующую формулу для расчета: .

Принцип действия

На этот раз мы разберем работу одного из самых популярных датчиков — ультразвукового (УЗ) дальномера. Существует много разных модификаций подобных устройств, но все они работают по принципу измерения времени прохождения отраженного звука. То есть датчик отправляет звуковой сигнал в заданном направлении, затем ловит отраженное эхо и вычисляет время полета звука от датчика до препятствия и обратно.

Из школьного курса физики мы знаем, что скорость звука в некоторой среде величина постоянная, но зависящая от плотности среды. Зная скорость звука в воздухе и время полета звука до цели, мы можем рассчитать пройденное звуком расстояние по формуле:

s = v*t

где v — скорость звука в м/с, а t — время в секундах.  Скорость звука в воздухе, кстати, равна 340.29 м/с.

Чтобы справиться со своей задачей, дальномер имеет две важные конструктивные особенности. Во-первых, чтобы звук хорошо отражался от препятствий, датчик испускает ультразвук с частотой 40 кГц. Для этого в датчике имеется пьезокерамический излучатель, который способен генерировать звук такой высокой частоты. Во-вторых, излучатель устроен таким образом, что звук распространяется не во все стороны (как это бывает у обычных динамиков), а в узком направлении. На рисунке представлена диаграмма направленности типичного УЗ дальномера.

Как видно на диаграмме, угол обзора самого простого УЗ дальномера составляет примерно 50-60 градусов. Для типичного варианта использования, когда датчик детектирует препятствия перед собой, такой угол обзора вполне пригоден. Ультразвук сможет обнаружить даже ножку стула, тогда как лазерный дальномер, к примеру, может её не заметить.

Если же мы решим сканировать окружающее пространство, вращая дальномер по кругу как радар, УЗ дальномер даст нам очень неточную и шумную картину. Для таких целей лучше использовать как раз лазерный дальномер.

Также следует отметить два серьезных недостатка УЗ дальномера. Первый заключается в том, что поверхности имеющие пористую структуру хорошо поглощают ультразвук, и датчик не может измерить расстояние до них. Например, если мы задумаем измерить расстояние от мультикоптера до поверхности поля с высокой травой, то скорее всего получим очень нечеткие данные. Такие же проблемы нас ждут при измерении дистанции до стены покрытой поролоном.

Второй недостаток связан со скоростью звуковой волны. Эта скорость недостаточно высока, чтобы сделать процесс измерения более частым. Допустим, перед роботом есть препятствие на удалении 4 метра. Чтобы звук слетал туда и обратно, потребуется целых 24 мс. Следует 7 раз отмерить, прежде чем ставить УЗ дальномер на летающих роботов.

Сборка в общих чертах

Теперь приступаем непосредственно к созданию руки-манипулятора. Начинаем с основания. Необходимо обеспечить возможность поворота устройства во все стороны. Хорошим решением будет его размещение на дисковой платформе, которая приводится во вращение с помощью одного мотора. Чтобы она могла вращаться в обе стороны, существует два варианта:

  1. Установка двух двигателей. Каждый из них будет отвечать за поворот в конкретную сторону. Когда один работает, второй пребывает в состоянии покоя.
  2. Установка одного двигателя со схемой, которая сможет заставить его крутится в обе стороны.

Какой из предложенных вариантов выбрать, зависит исключительно от вас. Далее делается основная конструкция. Для комфорта работы необходимо два «сустава». Прикреплённый к платформе должен уметь наклоняться в разные стороны, что решается с помощью двигателей, размещённых в его основании. Ещё один или пару следует разместить в месте локтевого изгиба, чтобы часть захвата можно было перемещать по горизонтальной и вертикальной линии системы координат. Далее, при желании получить максимальные возможности, можно установить ещё двигатель в месте запястья. Далее наиболее необходимое, без чего не представляется рука-манипулятор. Своими руками предстоит сделать само устройство захвата. Тут существует множество вариантов реализации. Можно дать наводку по двум самым популярным:

  1. Используется только два пальца, которые одновременно сжимают и разжимают объект захвата. Является самой простой реализацией, которая, правда, обычно не может похвастаться значительной грузоподъёмностью.
  2. Создаётся прототип человеческой руки. Тут для всех пальцев может использоваться один двигатель, с помощью которого будет осуществляться сгиб/разгиб. Но можно сделать и конструкцию сложней. Так, можно к каждому пальцу подсоединить по двигателю и управлять ими отдельно.

Далее остаётся сделать пульт, с помощью которого будет оказываться влияние на отдельные двигатели и темпы их работы. И можно приступать к экспериментам, используя робот-манипулятор, своими руками сделанный.

Подключение датчика уровня воды с Arduino

Давайте подключим датчик уровня воды к Arduino.

Сначала вам нужно подать питание на датчик. Для этого вы можете подключить вывод +(VCC) на модуле к выводу 5V на Arduino, а вывод -(GND) модуля к выводу GND Arduino.

Однако одной из широко известных проблем с этими датчиками является их короткий срок службы при воздействии влажной среды. При постоянной подаче питания на зонд скорость коррозии значительно увеличивается.

Чтобы преодолеть эту проблему, мы рекомендуем не подавать питание на датчик постоянно, а включать его только тогда, когда вы снимаете показания.

Самый простой способ сделать это – подключить вывод VCC к цифровому выводу Arduino и устанавливать на нем высокий или низкий логический уровень, когда это необходимо. Итак, давайте подключим вывод VCC модуля к цифровому выводу 7 Arduino.

Наконец, подключите вывод S (Signal) к выводу A0 аналого-цифрового преобразователя Arduino.

Схема соединений показана на следующем рисунке.

Рисунок 4 – Схема подключения датчика уровня воды к Arduino

Шаг 4: Известные проблемы

Если вы видите модель вашего ультразвукового модуля в этом пункте, то листайте ниже. Надеюсь, вы найдёте вашу проблему и решите её.

  1. US-105
  2. DYP-ME007TX

Модуль US-105

Ультразвуковой модуль US-105 использует вывод GPIO на пин ECHO, что подразумевает другие вычисления для определения расстояния. При выводе GPIO на пин ECHO, пин не удерживается под напряжением во время отправки волны. Вместо этого, при получении отраженного ультразвука на пин ECHO подается конкретное напряжение, которое пропорционально времени, потребовавшемуся ультразвуковой волне для того, чтобы отправиться и вернуться обратно на датчик. С этим модулем будет работать такой код:

// Код для ультразвукового модуля US-105
unsigned int EchoPin = 2;
unsigned int TrigPin = 3;
unsigned long Time_Echo_us = 0;
//Len_mm_X100 = length*100
unsigned long Len_mm_X100 = 0;
unsigned long Len_Integer = 0; //
unsigned int Len_Fraction = 0;
void setup()
{
Serial.begin(9600);
pinMode(EchoPin, INPUT);
pinMode(TrigPin, OUTPUT);
}
void loop()
{
digitalWrite(TrigPin, HIGH);
delayMicroseconds(50);
digitalWrite(TrigPin, LOW);
Time_Echo_us = pulseIn(EchoPin, HIGH);
if((Time_Echo_us  1))
{
Len_mm_X100 = (Time_Echo_us*34)/2;
Len_Integer = Len_mm_X100/100;
Len_Fraction = Len_mm_X100%100;
Serial.print("Растояние: ");
Serial.print(Len_Integer, DEC);
Serial.print(".");
if(Len_Fraction < 10)
Serial.print("0");
Serial.print(Len_Fraction, DEC);
Serial.println("mm");
delay(1000);
} // Конец программы

Программа

Итак, попробуем приказать датчику отправить зондирующий ультразвуковой импульс, а затем зафиксируем его возвращение. Посмотрим как выглядит временная диаграмма работы HC-SR04.

На диаграмме видно, что для начала измерения нам необходимо сгенерировать на выводе Trig положительный импульс длиной 10 мкс. Вслед за этим, датчик выпустит серию из 8 импульсов и поднимет уровень на выводе Echo, перейдя при этом в режим ожидания отраженного сигнала. Как только дальномер почувствует, что звук вернулся, он завершит положительный импульс на Echo.

Получается, что нам нужно сделать всего две вещи: создать импульс на Trig для начала измерения, и замерить длину импульса на Echo, чтобы потом вычислить дистанцию по нехитрой формуле. Делаем.

Функция pulseIn замеряет длину положительного импульса на ноге echoPin в микросекундах. В программе мы записываем время полета звука в переменную duration. Как мы уже выяснили ранее, нам потребуется умножить время на скорость звука:

s = duration * v = duration * 340 м/с

Переводим скорость звука из м/с в см/мкс:

s = duration * 0.034 cм/мкс

Для удобства преобразуем десятичную дробь в обыкновенную:

s = duration * 1/29 = duration / 29

А теперь вспомним, что звук прошел два искомых расстояния: до цели и обратно. Поделим всё на 2:

s = duration / 58

Теперь мы знаем откуда взялось число 58 в программе!

Загружаем программу на Ардуино Уно и открываем монитор  последовательного порта. Попробуем теперь наводить датчик на разные  предметы и смотреть в мониторе рассчитанное расстояние.

Предисловие

Так получилось, что в университете я изучаю C/C++. Для души пробую делать небольшие проекты на Python. Я много слышал про платформу Arduino, смотрел видео на YouTube, частенько посещал Arduino Project Hub и вот мне стало интересно самому поэкспериментировать, углубясь в разработку под микроконтроллеры. Купив стартовый набор с самой платой и горстью электронных компонентов и попробовав собрать проекты из обучающей брошюры, понял, что надо двигаться дальше. Продумав саму идею следующей самоделки, отправился на просторы Google и обнаружил, что не могу найти всего, что мне нужно на одном ресурсе. Безусловно, мне несложно было посетить несколько сайтитов и блогов с информацией, но я бы сильно сэкономил время, если бы нашел все в одном месте. Так и появилась эта статья-туториал.

Что потребуется приобрести для сборки ультразвукового дальномера

Для того чтобы изготовить ультразвуковой дальномер на базе ардуино, не придётся тратить большие суммы. На китайских ресурсах, которые стали столь популярны в последнее время, такие элементы стоят довольно дёшево.

Основным видимым элементом, позволяющим визуально считывать данные с прибора, будет, конечно же, жидкокристаллический дисплей.

ФОТО: YouTube.comЖидкокристаллический дисплей, на котором будет отображаться информация о расстоянии до объекта

Вторым элементом, который напрямую будет контактировать с дисплеем, отметим I2C модуль (1602) для arduino. По сути, это ЖК-адаптер. Он может продаваться отдельно, хотя намного удобнее приобрести жидкокристаллический дисплей уже в сборе с модулем.

ФОТО: YouTube.comI2C модуль для arduino – здесь он уже впаян на место и готов к работе

Следующий элемент – «глаза» будущего дальномера. В их роли выступает плата ультразвукового дальномера. Она довольно компактна, а потому проблем с размещением её в небольшой коробочке не будет.

ФОТО: YouTube.comУльтразвуковой дальномер – именно он будет собирать и передавать данные о расстоянии к «мозгу» собранного прибора

И наконец, «сердце и мозг» изготавливаемого устройства – сама плата ардуино. В продаже она ещё девственно чиста, поэтому понадобится залить на неё скетч. Ссылка на него обязательно будет в сегодняшней статье.

ФОТО: YouTube.com«Сердце и мозг» собираемого прибора – готовая печатная плата ардуино

Ну, и напоследок ‒ оставшиеся мелочи, необходимые для работы ультразвукового дальномера, среди которых:

  • батарея 9 В, типа «Крона» с коннектором;
  • выключатель;
  • любая пластиковая коробка, в которой поместятся все детали, несколько отрезков проводов.

ФОТО: YouTube.comОстальные мелкие детали, которые понадобятся для работы

Датчик MPU6050

Датчик MPU6050 построен по технологии микроэлектромеханических систем (MEMS — Micro-Mechanical Systems) и имеет в своем составе 3-осевой акселерометр, 3-осевой гироскоп и датчик температуры. Он может измерять такие параметры как ускорение, скорость, направление (ориентация), смещение и т.д. Ранее на нашем сайте мы уже рассматривали его подключение к плате Arduino, а также рассматривали создание на его основе самобалансирующегося робота и измерителя уровня (уклономера).

Основные особенности датчика MPU6050:

  • связь по протоколу I2C с конфигурируемым (настраиваемым) адресом I2C;
  • питающее напряжение: 3-5V;
  • встроенный 16 битный АЦП (аналого-цифровой преобразователь);
  • возможность подключения по протоколу I2C к другим устройствам, например, магнитометру;
  • встроенный датчик температуры.

Назначение контактов (распиновка) датчика MPU6050 показано на следующем рисунке.

Распиновка MPU6050:Vcc – контакт для подачи питающего напряжения постоянного тока;GND – земля модуля;SDA – это контакт используется для передачи данных между модулем mpu6050 и микроконтроллером;SCL – вход синхронизации;XDA – линия передачи данных (опциональная) по протоколу I2C для конфигурирования и считывания данных с внешних датчиков (не используется в нашем проекте);XCL – вход синхронизации протокола I2C для конфигурирования и считывания данных с внешних датчиков (не используется в нашем проекте);ADO – I2C Slave Address LSB (не используется в нашем проекте);INT – контакт прерывания для индикации готовности данных.

«Flex Sensor» или по-русски «Датчик Изгиба».

В этом опыте, мы будем использовать Flex Sensor (Датчик изгиба)! В его конструкции используется уголь нанесенный на пластиковую полоску, также как у переменного резистора у него изменяется сопротивление, но вместо поворота ручки, вам достаточно его немного изогнуть, тем самым изменяя сопротивление. Для обнаружения изменения сопротивления, на входе ардуино мы снова, как в предыдущих опытах, используем «делитель напряжения». Наклоняя Датчик в одном направлении он изгибается, и чем больше он изгибается, тем выше становится его сопротивление. Приблизительный интервал изменений сопротивлений от 10 кОм до 35 ком. В этой схеме мы будем использовать «Датчик Изгиба» для контроля положения сервопривода. Приступим:

Когда вы дойдете до этого опыта, не расстраивайтесь если у вас нет такого датчика, его можно попробовать заменить фоторезистором, и немного подправить код скетча. Для этого вам необходимо внимательно ознакомиться с кодом.

Перед вами принципиальная схема к уроку 9, во время сборки ошибиться трудно, но можно.. Внимательнее относитесь к подключению сервопривода, в остальном сложностей быть не должно.

Принципиальная схема к уроку №9. Arduino и Датчик Изгиба (Flex Sensor)

Для этого опыта вам понадобится:

1. Arduino UNO — 1 шт.

2. Сервопривод — 1 шт.

3. Датчик Изгиба — 1 шт.

4. Резистор 10 кОм — 1 шт..

5. Соединительные провода.

6. Макетная плата.

7. При отсутствии Флекс Сенсора — Фоторезистор

Далее идет схема электрических соединений для этого опыта.

Вид схемы электрических соединений к уроку 9. Гибкий Датчик и Arduino

Скачать код к опыту 9. Скетч и подробное описание (Обязательно прочтите весь скетч! Он подробно описан в «Код программы к уроку 9»)

Набор для экспериментов MaxKit 01.
Код программы, на русском языке для опыта №9 можно скачать здесь: lesson_09

Вид созданного урока на макетной плате. Примерно так у вас должно получиться:

Arduino и Датчик Изгиба. Урок №9. Проект собранный на макетной плате.

Тоже самое, но уже вместо Датчика Изгиба установлен фоторезистор:

Arduino и Датчик Изгиба. Урок №9. Проект. Замена Датчика Изгиба фоторезистором.

А если не работает?

Такое может случиться с каждым: программа написана, успешно скомпилирована, загружена, но не понятно почему , работает не так как задумано.

У компьютера есть монитор, клавиатура, мышь, с их помощью легко и удобно отлаживать код, но у Arduino подобных аксессуаров нет. Как же быть? Выход — найти особый «ключ», для того чтобы обеспечить видимость состояния выходов микроконтроллера. Этим ключиком может стать практически что угодно — светодиод, зуммер, и пр., но один из самых полезных инструментов Serial Monitor . Используя Serial.print() и println(), вы можете с легкостью вывести, в понятном для человека виде, текст и данные от Arduino, на экран компьютера. Это отличная возможность для проверки и окончательной отладки Вашей программы.

Всем удачи! Ждём от вас комментарии и фотоотчеты о ваших опытах. ARDUINO УРОК 9. ДАТЧИК ИЗГИБА.

2018-09-19T16:59:31+03:00Arduino, Arduino уроки|

Подключение ультразвукового датчика к Ардуино

Схема подключения указана на рисунке ниже. Отметим, что ультразвуковой дальномер HC-SR04 имеет диапазон измерения от 2 см до 400 см, работает при температурах от 0° до 60° С. Точность измерения составляет ± 1 см, рабочее напряжение датчика до 5,5 В. Для начала мы используем простой скетч, без использования библиотеки Ultrasonic.

Для занятия нам понадобятся следующие детали:

  • Плата Arduino Uno;
  • Макетная плата;
  • USB-кабель;
  • УЗ дальномер HC-SR04;
  • 1 светодиод;
  • 1 резистор 220 Ом;
  • Провода «папка-папка» и «папка-мамка».

После подключения к Arduino дальномера HC-SR04 загрузите следующий скетч:

// назначаем имя для Pin8
// назначаем имя для Pin9
// подключаем монитор порта
// назначаем trigPin (Pin8), как выход
// назначаем echoPin (Pin9), как вход
// назначаем переменную “cm” и “duration” для показаний датчика
// изначально датчик не посылает сигнал
// ставим задержку в 2 ммикросекунд
// посылаем сигнал
// ставим задержку в 10 микросекунд
// выключаем сигнал
// включаем прием сигнала
// вычисляем расстояние в сантиметрах
// ставим паузу в 1 секунду

Пояснения к коду:

  1. Для подключения выходов Trig и Echo на датчике можно использовать любые цифровые входы на Ардуино;
  2. Команда delayMicroseconds() останавливает выполнение программы на заданное количество микросекунд (в 1 секунде 1 000 000 микросекунд).

На что обратить внимание:

  1. Чтобы получить значение датчика в миллиметрах следует использовать следующую формулу для расчета: cm = duration / 5,8; .
  1. Выведите на монитор порта расстояние до объекта в метрах.
Поделитесь в социальных сетях:FacebookX
Напишите комментарий