Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/Подключение датчика HC-SR04 к Arduino

Материал из Онлайн справочника
Перейти к: навигация, поиск

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


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

Данный пример демонстрирует подключение ультразвукового датчика HCSR-04 к плате Arduino.

Необходимое оборудовавние

Цепь

Подключите ультразвуковой датчик HCSR-04 к Arduino согласно таблице:

Контакт Arduino Контакт HCSR-04
7 Echo
8 Trig
5V Vcc
GND Gnd


Hcsr-04 1 arduino uno 1.png

Код

  1. /*
  2. * Пример работы с ультразвуковым датчиком HC-SR04
  3. */
  4.  
  5. int trigPin = 8;
  6. int echoPin = 7;
  7. float v=331.5+0.6*20;                 // скорость звука при температуре 20 градусов Цельсия(вы можете указать свое значение вместо 20) в м/с
  8.  
  9. void setup()
  10. {
  11.   Serial.begin(9600);                 // открываем последовательный порт, задаем скорость передачи данных на 9600 бит/сек
  12.   pinMode(trigPin, OUTPUT);           // устанавливаем 8 пин как выход
  13.   pinMode(echoPin, INPUT);            // устанавливаем 7 пин как вход
  14. }
  15.  
  16. void loop() //
  17. {
  18.   float d=distance();                 // вызов функции и сохранение значения в переменной
  19.   Serial.println(d, 2);               // вывод значения
  20.   delay(200);                         // задержка в 200 мс
  21. }
  22.  
  23. float distance(){
  24.   digitalWrite(trigPin, LOW);         // подаем низкий уровень сигнала
  25.   delayMicroseconds(3);               // ждем 3 мкс
  26.   digitalWrite(trigPin, HIGH);        // подаем высокий уровень сигнала
  27.   delayMicroseconds(5);               // ждем 5 мкс
  28.   digitalWrite(trigPin, LOW);         // подаем низкий уровень сигнала
  29.  
  30.   float tUs = pulseIn(echoPin, HIGH); // вычисляем длительность перехода echoPin из HIGH в LOW
  31.   float t = tUs / 2000000;            // переводим мкс -> с (делим на 1000000) и отрезаем промежуток времени затраченный звуком на обратный путь (делим на 2)
  32.   float d = t*v*100;                  // дистанция в см
  33.   return d;                           // возвращаем значение дистанции
  34. }
Serial 9600 hcsr-04 2.png

См.также

Внешние ссылки