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

На цьому занятті розглянемо ультразвуковий датчик відстані Ардуіно HC-SR04. Розповімо, як підключити ультразвуковий далекомір HC-SR04. Розберемо скетч для датчика, який може прекрасно служити для робота при визначенні відстані до об'єктів або виявлення перешкоди. Також розглянемо найпопулярнішу бібліотеку для ультразвукових далекомірів на Arduino - Ultrasonic.h.

Ультразвуковий датчик визначає відстань до об'єкта так само, як це роблять кажани або дельфіни. Датчик HC-SR04 генерує вузькоспрямований сигнал на частоті 40 кГц і ловить відбитий сигнал (ехо). За часом поширення звуку до об'єкта і назад можна досить точно визначити відстань до нього.


За цим же принципом працює безліч приладів для дослідження простору - ехолот, сонар, радіолокатор і навіть поліцейський радар для визначення швидкості автомобіля. Всі ці прилади випромінюють вузьконаправлений ультразвуковий сигнал і отримують назад відбитий сигнал. На відміну від інфрачервоних далекомірів (IR), на показання ультразвукового датчика не впливає колір об'єкта.


Ультразвуковой датчик измерения расстояния HC-SR04 - Описания ...


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




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

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 секунду
}

- для підключення виходів Trig і Echo на датчику можна використовувати будь-які цифрові входи на Ардуіно;

- щоб отримати значення датчика в міліметрах слід використовувати наступну формулу для розрахунку: cm = duration / 5,8;.



Немає коментарів:

Дописати коментар