Содержание:
Инфракрасный или ультразвуковой модуль – оптимальный выбор для обнаружения объектов в радиусе до 4 метров. Первый вариант дешевле, но чувствителен к освещению. Второй точнее, но требует больше энергии.
Подсоедините VCC к 5V, GND к земле, а выходной контакт – к любому цифровому пину, например, D2. Для ультразвуковых вариантов понадобятся два контакта: Trig и Echo. Первый отправляет импульс, второй фиксирует отраженный сигнал.
В коде используйте pulseIn() для измерения времени возврата волны. Расстояние вычисляется по формуле: (длительность * скорость звука) / 2. Для ИК-аналогов – простой пороговый анализ напряжения на выходе.
Калибровка обязательна. Запустите серию замеров в пустом помещении, затем внесите коррективы в скетч. Минимальный шаг для ультразвука – 0.3 см, для инфракрасных решений – 1-2 см в зависимости от модели.
Как использовать инфракрасный модуль обнаружения объектов с микроконтроллером
Инфракрасный излучатель посылает сигнал, который отражается от поверхности. Приёмник фиксирует отражённый луч. Чем ближе объект, тем выше напряжение на выходе. Дистанция срабатывания – от 2 до 40 см, регулируется потенциометром на плате.
Пример кода для цифрового режима:
const int pin = 2; void setup() { pinMode(pin, INPUT); Serial.begin(9600); } void loop() { if (digitalRead(pin) == LOW) { Serial.println("Объект обнаружен"); } delay(100); }
Для аналогового считывания замените digitalRead на analogRead и установите порог срабатывания экспериментально (обычно 300–800 единиц).
Калибровка: вращайте подстроечный резистор до стабильного срабатывания на нужном расстоянии. Избегайте прямого света – он вызывает ложные срабатывания.
Инфракрасный и ультразвуковой способы обнаружения
Инфракрасный модуль излучает ИК-луч и фиксирует отражённый сигнал. Если на пути возникает объект, фотоэлемент улавливает изменения, а встроенный компаратор выдает цифровой сигнал (0 или 1). Диапазон действия – от 2 до 40 см, точность зависит от поверхности: матовые материалы хуже отражают излучение.
Ультразвуковой вариант измеряет время возврата звуковой волны. Генератор посылает импульс частотой 40 кГц, приёмник регистрирует эхо. Расстояние вычисляется по формуле: D = (t * 340) / 2, где t – время задержки в секундах, 340 м/с – скорость звука. Погрешность – ±3 мм, максимальная дистанция – до 4 м.
Для ИК-модуля (например, TCRT5000) подключите выход к цифровому пину, питание – 3.3–5 В. Ультразвуковой HC-SR04 требует 5 В, Trig и Echo подключаются к любым GPIO. Код для измерения расстояния на C++:
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
ИК-системы дешевле, но чувствительны к помехам от солнечного света. Ультразвук стабильнее в условиях запылённости, но не распознаёт мягкие ткани и тонкие объекты.
Схема соединения и программный код
Электрическая разводка
Подсоедините модуль HC-SR04 к плате по следующей схеме:
- VCC – к +5V на плате
- GND – к общему проводу
Программная часть
Скопируйте этот код в среду разработки:
const int trigPin = 9; const int echoPin = 10; void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); long duration = pulseIn(echoPin, HIGH); int distance = duration * 0.034 / 2; Serial.print("Расстояние: "); Serial.print(distance); Serial.println(" см"); delay(500); }
Проверьте соединения перед подачей питания. После загрузки скетча откройте монитор порта для просмотра измерений.