logo
+7 (495) 997-37-74
Москва, ул.Международная, 15

HC-SR04

Ультразвуковой датчик расстояния
Цена150 руб.

Старая цена 180 руб.
Виды датчиков:
Датчики расстояния
Цена 150Р

Старая цена 180 руб.
Артикул:
S0036
Описание:

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

Спецификация

  • Рабочее напряжение: +5 В

  • Рабочий ток: 15мA

  • Эффективный угол  < 15°

  • Детектируемое расстояние: от 2  до 400 см

  • Точность 0,3 см

  • Угол измерения: 30

  • Рабочая частота излучателя: 40 кГц

  • Размеры 45 x 20 x 15 мм

 

Принцип работы

Для того, чтобы датчик начал работать, необходимо чтобы на вход Trig поступил сигнал высокого уровня. Ширина импульса должна быть не менее 10 мкс. После этого передатчик начинает генерировать импульсы с частотой 40 кГц. Эти импульсы доходят до предмета и отражаются от него обратно. Как только отраженные импульсы доходят до приемника, производится замер расстояния до предмета и на выходе Echo появляется сигнал. (смотрите временную диаграмму ниже).

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

РАССТОЯНИЕ (см) = ВРЕМЯ / 58

Ниже приводится пример программного кода

#define Trig 9
#define Echo 8
#define ledPin 13

void setup() {  
  pinMode(Trig, OUTPUT);
  pinMode(Echo, INPUT);
  pinMode(ledPin, OUTPUT); 
  Serial.begin(9600); 
} 
unsigned int impulseTime = 0; unsigned int distance_sm = 0; void loop() {    digitalWrite(Trig, HIGH); // подаем импульс на trig  delayMicroseconds(10); // равный 10 микросекундам  digitalWrite(Trig, LOW); // отключаем  impulseTime = pulseIn(Echo, HIGH); // замеряем длину импульса  distance_sm = impulseTime/58; // пересчитываем в сантиметры  Serial.println(distance_sm); // выводим  if (distance_sm < 30) { // если расстояние менее 30 см    digitalWrite(ledPin, HIGH); // светодиод горит  } else {        digitalWrite(ledPin, LOW); // иначе не горит   }  delay(100); }