Сравнение ультразвуковых датчиков HC-SR04 и HY-SRF05
На первый взгляд, между этими двумя датчиками есть только небольшие технические различия (см. таблицу):
HC-SR04 | HY-SRF05 | |
Рабочее напряжение | 5 В постоянного тока | 5 В постоянного тока |
Ток покоя | < 2мА | <2 мА |
Выходной сигнал: | высокий уровень 5В, низкий уровень 0В | высокий уровень 5В, низкий уровень 0В |
Угол распространения (эффективный угол) | < 15 градусов | < 15 градусов |
Диапазон измеряемого расстояния | 2см-450см | 2см-450см |
Разрешающая способность (точность) | ~3 мм | ~2 мм |
Входной сигнал запуска: | 10мс TTL импульс | 10мс TTL импульс |
Эхосигнал | выходной сигнал TTL PWL | выходной сигнал TTL PWL |
Pins |
|
|
На первый взгляд, как видно из таблицы, разница не такая уж и большая.
Теперь сравним возможные схемы подключения:
HC-SR04 | HY-SRF05 |
Код для работы с датчиками HC-SR04 и HY-SRF05
#define PIN_TRIG 5 #define PIN_ECHO 4 long duration, cm; void setup() { // Инициализируем взаимодействие по последовательному порту Serial.begin (9600); //Определяем вводы и выводы pinMode(PIN_TRIG, OUTPUT); pinMode(PIN_ECHO, INPUT); } void loop() { // Сначала генерируем короткий импульс длительностью 2-5 микросекунд. digitalWrite(PIN_TRIG, LOW); delayMicroseconds(5); digitalWrite(PIN_TRIG, HIGH); // Выставив высокий уровень сигнала, ждем около 10 микросекунд.
//В этот момент датчик будет посылать сигналы с частотой 40 КГц. delayMicroseconds(10); digitalWrite(PIN_TRIG, LOW); // Время задержки акустического сигнала на эхолокаторе. duration = pulseIn(PIN_ECHO, HIGH); // Теперь осталось преобразовать время в расстояние cm = (duration / 2) / 29.1; Serial.print("Расстояние до объекта: "); Serial.print(cm); Serial.println(" см."); // Задержка между измерениями для корректной работы скеча delay(250); }