Віримо в перемогу ЗСУ!
Працюємо з 09:00 до 18:00 Пн-Сб

Напруга живлення 5 В

Робочий кут відбитої хвилі не більше 15 градусів

Діапазон вимірюваних відстаней 2 см ... 450 см

Подаємо на ніжку Trig сигнал, тривалістю 10 мкс, що запускає генератор, що створює пакет коротких імпульсів на передатчику ( 8 шт ). Далі, приймач отримує відбитий сигнал та на ніжці Echo генерується прямокутний сигнал, довжина якого пропорційна часу між випромінюванням імпульсів та детектуванням їх приймачем.

Реальний час, за який звук дійде до приймача, звичайно, складе якусь мить. Щоб за ним визначити відстань, можна скористатись наступною формулою:


s=vt/2, s — відстань, v — швидкість звука, t — час отримання сигналу на приймачі.


А чому ділимо навпіл, думаю усім зрозуміло. Тільки в даному випадку ця формула не потрібна. Навожу її тут виключно для розуміння фізики процесу.

З виходу Echo іде вже сформований сигнал, з достатньо великою тривалістю. Заглянувши в даташит, ми побачимо формулу перерахунку: s = t/58, s — відстань, t — тривалість імпульсу Echo, s — відстань в сантиметрах.


Приклад програми для Arduino:


const int Trig = 3; // позначимо до якої ніжки та що підключаємо

const int Echo = 2; 

void setup() 

{

pinMode(Trig, OUTPUT);

pinMode(Echo, INPUT);

Serial.begin(9600); // Ініціюємо паралельний порт, щоб вивести результат на монітор


unsigned int time_us=0; // Змінна для зберігання часового інтервалу

unsigned int distance_sm=0; // Змінна для зберігання відстані в сантиметрах


void loop()

{

digitalWrite(Trig, HIGH); // Подаємо сигнал на вихід мікроконтролера 

delayMicroseconds(10); // Утримуємо 10 мікросекунд 

digitalWrite(Trig, LOW); // Потім прибираємо

time_us=pulseIn(Echo, HIGH); // Заміряємо довжину імпульсу 

distance_sm=time_us/58; // Перераховуємо в сантиметри

Serial.print(distance_sm); // Виводимо на порт

Serial.print(" "); 

delay(500); 

}


Та приклад використання найпродвинутішої бібліотеки для датчиків типу HC-SR04:

#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(115200);
}
 
void loop() {
  delay(50);
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm());
  Serial.println("cm");
}


Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре

Ультразвуковий датчик відстані HC-SR04

  • Модель HC-SR04
  • Наявність Є в наявності
  • 59.57грн.


<< Проекти << Усі товари >> Статті, уроки >>