Данный датчик является пожалуй самым используемым в робототехнике и в самодельных модулях для умного дома.
Причина этому - он дешевый и простой в использовании, но с его помощью можно реализовать большое количество устройств:
- простого робота, который при передвижении объезжает препятствия
- устройство, управляющееся жестами (например умную колонку)
- автоматическое включение света в умном доме
Его можно использовать даже для построения карты помещений.
Для определения расстояния до объекта, датчик посылает ультразвуковой сигнал, который отражается от объекта и возвращается. По времени, за которое сигнал совершил этот путь, и определяется расстояние.
Итак, подключаем пины Vcc и Gnd соответственно к +5 и Gnd пинам на Arduino, а пины Trig и Echo к любым свободным цифровым пинам:
Для работы с датчиком есть несколько библиотек, но давайте рассмотрим, как можно работать с ним без их использования. Во-первых это совсем не сложно, во-вторых там, где можно не использовать библиотеки, лучше их не использовать, это сократит общий объем программы, а часто программа будет и работать быстрее. Итак, здесь мы получаем расстояние до объекта и выводим его в консоль сериального порта:
#define ECHO_PIN 7
#define TRIG_PIN 8
void setup()
{
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop()
{
int duration;
int distance;
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration / 58;
Serial.print(distance);
Serial.println(" cm");
delay(200);
}
В функции setup() мы конфигурируем пины: TRIG_PIN на вывод, а ECHO_PIN - на ввод.
В функции loop() мы определяем расстояние до объекта и выводим его в консоль. Для повышения точности работы датчика следует сначала отправить в TRIG_PIN сигнал LOW, спустя 2 миллисекунды - HIGH и далее спустя 10 миллисекунд - вновь LOW. После этого мы считываем длительность сигнала с пина ECHO_PIN и переводим полученное значение в сантиметры.
Диапазон работы датчика: от 2 до 400 см (иногда до 500 см, зависит от версии датчика, это можно проверить опытным путем), чего хватает в большинстве случаев.
Купить можно либо отдельно датчик, либо датчик с пластиковым креплением (держателем):
Также ссылки на проверенные магазины есть в соответствующем разделе каталога.