На главную страницу | Новости | FAQ | Ссылки | Для детей | Контакты

ARDUINO ROBOTS
Arduino для начинающих электронщиков. Модули и проекты на базе Arduino. Разработка роботов


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


Описан процесс подключения ультразвукового датчика измерения расстояния HC-SR04 к плате Arduino. Код программы для считывания данных. Технические характеристики датчика HC-SR04

Ультразвуковой датчик расстояния, модуль HC-SR04, используется определения расстояния до объекта за счет акустических волн. Этот бесконтактный датчик обеспечивает высокую точность и стабильность измерения расстония. Диапазон измерений составляет от 2 см до 400 см.

Необходимая вещь для самодельного работа на базе Ардуино, ведь нацепить видеокамеру не всегда представляется возможным. Стоят эти датчики совсем недорого.

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

Технические характеристики HC-SR04


- Напряжение питания: +5В;

- Эффективный рабочий угол: < 15°;

- Расстояние измерений: от 2 см до 400 см;

- Разрешающая способность: 0.3 см;

- Угол измерений: 30 градусов;

- Ширина импульса триггера: 10 микросекунд;

- Размеры: 45 мм x 20 мм x 15 мм.

Пины:


- VCC: +5 вольт (постоянный ток)

- Trig : Триггер (INPUT)

- Echo: Эхо (OUTPUT)

- GND: Земля

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


Схема подключения показана на рисунке:

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

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

HC-SR04 - Arduino
------------ 
 
Vcc - VCC (+5V) GND - GND (земля) Trig - D8 Echo - D9

Здесь код под Ardunino для работы с датчиком:

// код на C++
int echo = 9; // echo Pin
int trig = 8; // trig Pin
 
void setup() { 
  Serial.begin (9600); 
  pinMode(trig, OUTPUT); 
  pinMode(echo, INPUT); 
} 
 
void loop() { 
  int duration, cm; 
  digitalWrite(trig, LOW); 
  delayMicroseconds(2); 
  digitalWrite(trig, HIGH); 
  delayMicroseconds(10); 
  digitalWrite(trig, LOW); 
  
  duration = pulseIn(echo, HIGH); 
  
  cm = duration / 58; // определение расстояния в см
  Serial.print(cm); 
  Serial.println("cm"); 
  delay(100);
}

Программа будет выводит расстояние на последовательный интерфейс Serial.

Код очень прост и понятен. Ключевой момент здесь заключается в вызываемой функции pulseIn, которая по сути и выполняет всю необходимую работу по считыванию данных с датчика. Синтаксис функции следующий:

pulseIn(pin, value)
pulseIn(pin, value, timeout)

где

pin - номер порта вход/выхода, на котором будет ожидаться сигнал.

value - тип ожидаемого сигнала - HIGH или LOW.

timeout (опционально) - время ожидания сигнала (таймаут) в микросекундах; по умолчанию - одна секунда.

Таким образом, эта функция pulseIn выполняет считывание длины сигнала на заданном порту. Например, если задано считывание HIGH, то функция ожидает пока на заданном порту не появиться HIGH. Когда HIGH получен, включается таймер, который будет остановлен когда на порту вход/выхода будет LOW. Функция pulseIn() возвращает длину сигнала в микросекундах. Возвращается 0, если в течение заданного времени не был получен сигнал.

Литература


http://arduino-diy.com/arduino-ultrazvukovoy-datchik-rasstoyaniya




Платы ARDUINO по низкой цене

Нажми на изображение, чтобы заказать в интернет-магазине:


arduino NANO купить дешево arduino UNO купить дешево arduino UNO R3 ORIG купить дешево arduino MEGA купить дешево arduino DUE купить дешево



Now 29.03.24 12:03:54, Your IP: 54.196.248.93; arduino.zl3p.com/modules/hc-sr04
ePN