Уроки

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

1 комм.

Узнайте, как создать электронную рулетку с помощью ультразвукового датчика HC-SR04 и платы Arduino Uno.

Компоненты

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

  1. Arduino Uno
  2. HC-SR04 ультразвуковой датчик
  3. Перемычки
  4. Макетная плата

Программное обеспечение:

Вы когда-нибудь видели проект робота в виде устройства, которое имеет пару больших мультяшных глаз, и задавались вопросом, зачем они нужны?

Скорее всего, вы видели ультразвуковой датчик. В этом уроке вы узнаете об ультразвуковом датчике HC-SR04, в том числе о том, как подключить его к Arduino, чтобы создать электронную рулетку.

Принцип работы датчика

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

Рисунок ниже показывает сверхвысокочастотные звуковые волны ультразвукового датчика, отражающиеся от поверхности объекта.

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

С вашим основным пониманием того, как ультразвуковой датчик работает, теперь вы готовы к подключению устройства к Arduino. Чтобы изучить работу ультразвукового датчика, вы можете построить виртуальную функциональную схему с помощью TinkerCad Circuits.

TinkerCad Circuits является бесплатным онлайн-симулятором схем, который позволяет моделировать различные электрические и электронные схемы, прежде чем соединять их на реальной макетной плате. Вы даже можете протестировать проекты Arduino (в том числе код) с TinkerCad Circuits. Вы можете получить ценные знания в области электроники с помощью экспериментов до принятия решения о создании физической схемы.

На рисунке ниже показан проект функционального ультразвукового датчика Arduino, построенного с помощью TinkerCad Circuits.

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

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

Вы можете использовать схему ультразвукового датчика Arduino, созданную в TinkerCad Circuits, или электрическую схему, показанную на рисунке ниже, чтобы создать свое сенсорное устройство.

При использовании 4-контактного ультразвукового датчика нормально закрытый штырь (NC) соединен с землей. Вы можете разместить ультразвуковой датчик, как показано на рисунке, на макетной плате и с помощью перемычек закончить проводку к Arduino.

Ниже схема, которую я создал с помощью 4-проводной перемычки, чтобы соединить ультразвуковой датчик и Arduino.

Четырехпроводной перемычка имеет цветовую кодировку. В таблице ниже показаны соединения проводов между Arduino и ультразвуковым датчиком.

ArduinoУльтразвуковой датчик
5VКрасный
GNDЧерный
Не подсоединенБелый
D7Желтый

Вы успешно подключили ультразвуковой датчик к Arduino и теперь готовы загрузить скетч в Arduino.

Скетч

Последняя часть проекта - загрузка кода ультразвукового датчика в Arduino. Подключите Arduino к настольному компьютеру или ноутбуку с помощью USB-кабеля. В Arduino IDE, введите код, представленный ниже. Вы также можете загрузить код на жесткий диск вашего настольного компьютера или ноутбука. В IDE, вы можете загрузить код, нажав на горизонтальную стрелку.

Этот эскиз считывает ультразвуковой дальномер PING))) и возвращает расстояние до ближайшего объекта, находящегося в радиусе действия. Для этого он посылает импульс на датчик, чтобы инициировать считывание, а затем прослушивает, чтобы импульс вернулся. Длина возвращаемого импульса пропорциональна расстоянию до объекта от датчика.

Схема:

  • +V подключение PING))) подключено к +5V
  • GND-соединение PING))) подключено к заземлению.
  • SIG-соединение PING))) подключено к цифровому контакту 7

Код проекта:

const int pingPin = 7;
 
void setup() {
  Serial.begin(9600);
}
 
void loop()
{
  long duration, inches, cm;
 
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(2);
 
  digitalWrite(pingPin, LOW);
 
  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);
 
  inches = microsecondsToInches(duration);
  inches = inches +2;// Ultrasonic Calibration factor
  cm = microsecondsToCentimeters(duration);
  cm = cm +2; // Ultrasonic Calibration factor
 
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
 
  delay(1000);
}
 
long microsecondsToInches(long microseconds)
{
  return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
  return microseconds / 29 / 2;
}

В IDE сразу видно изменение данных о расстоянии. На рисунке показаны данные примера сессии измерения расстояния.

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

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

Этот код проекта был изначально создан Дэвидом А Меллисом (David A Mellis), модифицирован Томом Игое (Tom Igoe), а позже модифицирован Доном Уилчером (Don Wilcher). Этот пример кода является публичным.

Оригинал

Поделиться
6 мая 2020 в 22:03
Обновлено 25 мая 2020 в 00:17 (редакция)
Опубликовано:
Уроки

1 комментарий

  1. Любовь
    8 мая 2020 в 17:24

    Коротким импульсом (2-5 микросекунды) переводим датчик расстояния в режим эхолокации, при котором в окружающее пространство высылаются ультразвуковые волны с частотой 40 КГц.

    Ответить

Добавить комментарий

Ваш E-mail не будет никому виден. Обязательные поля отмечены *