Подключение HC-SR04 к Arduino

12-12-2020, 18:31 0 комментариев
Мы рассматриваем сегодня подключение HC-SR04 к Arduino не случайно. Этот ультразвуковой датчик расстояния может понадобиться во многих проектах (особенно робототехнических). Его часто применяют для получения информации о размерах предметов, моделировании различных карт и передвижений по объезду препятствий, парковочных механизмов. Он легок в установке и настройке, бюджетен по цене, надежен в работе.

Любопытен тот факт, что этот модуль использует акустическое излучение при помощи инфракрасных лучей для вычисления расстояния (по принципу сонара). Делает он это быстро и точно, а диапазон измерений составляет от 2 до 400 см, что не мало. Сенсор не «боится» солнечных лучей и ультрафиолета, не зависит от электромагнитных шумов.  

Традиционно поговорим о технических параметрах устройства:
  • бесконтактный тип;
  • напряжение: +5V;
  • рабочая сила тока: 15мА;
  • угол измерений: 30° (эффективный обзорный угол: < 15°);
  • сенсорное разрешение и точность: 0,3 см;
  • сила тока покоя: < 2 мА;
  • габариты: 45 x 20 x 15 мм.
Комплектация вместе с ресивером и трансмиттером.

Распиновка прибора показана ниже:


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

Для реализации несложного проекта и схемы подключения нам понадобится следующее «железо»: микроконтроллер Ардуино Uno (можно Nano, Mega), модуль датчика, макетная плата, набор соединительных проводов.


В дальнейшем можно видоизменить схему, усложнив ее – добавить светодиоды, резисторы и другие аппаратные компоненты – все зависит от ваших целей и возможностей. Экспериментируйте!

Ну а теперь можно переходить к программированию. Прописываем код:

/*Ультразвуковой датчик расстояния и Arduino – полный гайд
 
Распиновка ультразвукового датчика расстояния:
 
VCC: +5V
 
Trig : Триггер (INPUT) – 11 пин
 
Echo: Эхо (OUTPUT) – 12 пин
 
GND: GND
 
*/
 
int trigPin = 11;    //Триггер – зеленый проводник
 
int echoPin = 12;    //Эхо – желтый проводник
 
long duration, cm, inches;
 
void setup() {
 
//Serial Port begin
 
Serial.begin (9600);
 
//Инициализирум входы и выходы
 
pinMode(trigPin, OUTPUT);
 
pinMode(echoPin, INPUT);
 
}
 
void loop()
 
{
 
// Датчик срабатывает и генерирует импульсы шириной 10 мкс или больше
 
// Генерируем короткий LOW импульс, чтобы обеспечить «чистый» импульс HIGH:
 
digitalWrite(trigPin, LOW);
 
delayMicroseconds(5);
 
digitalWrite(trigPin, HIGH);
 
delayMicroseconds(10);
 
digitalWrite(trigPin, LOW);
 
// Считываем данные с ультразвукового датчика: значение HIGH, которое
 
// зависит от длительности (в микросекундах) между отправкой
 
// акустической волны и ее обратном приеме на эхолокаторе.
 
pinMode(echoPin, INPUT);
 
duration = pulseIn(echoPin, HIGH);
 
// преобразование времени в расстояние
 
cm = (duration/2) / 29.1;
 
inches = (duration/2) / 74;
 
Serial.print(inches);
 
Serial.print("in, ");
 
Serial.print(cm);
 
Serial.print("cm");
 
Serial.println();
 
delay(250);
 
}

Если нужно расширить возможности – придется найти и скачать специализированное ПО – библиотеку NewPing, например, по нашей ссылке: http://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip

Меняем скетч:

#include <NewPing.h>
 
#define TRIGGER_PIN 12
 
#define ECHO_PIN 11
 
#define MAX_DISTANCE 200
 
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Настройка пинов и максимального расстояния.
 
void setup() {
 
Serial.begin(9600);
 
}
 
void loop() {
 
delay(50);
 
unsigned int uS = sonar.ping_cm();
 
Serial.print(uS);
 
Serial.println(“cm”);
 
}

Надеемся, с нашей помощью у вас все получится – удачных проектов и компиляций!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня мы поговорим о том, как подключить ESP32 к Ардуино. Данная инструкция больше подходит для Windows девайсов (хотя и для других операционных систем типа...

Инструкция по установке скетчей в платы Arduino или аналоги...

Среда программирования Arduino IDE (Integrated Development Environment ) может функционировать не только на платформах Windows и Mac, но и на базе операционной...

Что делать в ситуации, когда плата Arduino Uno не появляется в диспетчере устройств на Windows и компьютер ее не видит? Эта проблема довольно распространенная,...

Подключаем сервопривод к Ардуино, скетчи, библиотеки и все что для этого нужно...

Оставить комментарий