На пути «робота» неминуемо возникнет препятствие. Его необходимо как-то обнаружить. Есть два метода: «удариться» о препятствие и, тем самым, узнать о его наличии; или дистанционно («безконтактно») узнать о препятствии заранее. Рассмотрим второй метод
Инфракрасный датчик для бесконтактного обнаружения препятствий с регулируемым диапазоном срабатывания.
Применяется в качестве парктроника, типовая дистанция срабатывания 3…50 см, настраиваемая. Датчик аналоговый, то его выход должен подключаться к аналоговым портам контроллера Arduino (на вход АЦП микроконтроллера). По величине аналогового сигнала мы сможем примерно оценивать расстояние до препятствия (разумеется, абсолютных величин мы получить не сможем, так как уровень сигнала будет меняться в зависимости от возможности отражения сигнала от объекта).
Во многих случаях, датчик имеет встроенное пороговое устройство с регулируемым порогом. В таком случае на выходе датчик выдает цифровой сигнал с уровнями: HIGH (все нормально, препятствие далеко, порог не достигнут) и LOW (тревога — расстояние до препятствия меньше порогового).
Датчик во влагозащищённом корпусе с возможностью монтажа в отверстие.
- полезный диапазон: 3 ~ 50 см.
- угол обзора: ≤ 15 °
- время отклика: 2 мс.
- выходной сигнал: 5 В (до 100 мА)
- питание: 4.5 ~ 5.0 В (менее 25 мА)
- температура: от — 25 до 50 °C
- размер: 44.6 x 18.0 мм.
В отличии от ультразвукового датчика расстояния (сонара) не измеряет расстояние, а только сигнализирует о наличии препятствия на заранее заданном расстоянии.
Расстояние срабатывания задаётся регулировочным винтом на торце датчика.
Работает в инфракрасном диапазоне, поэтому, отлично работает со всеми типами поверхностей.
Корпус датчика цилиндрический с резьбой. В комплекте поставляются 2 пластиковые кольцеобразные гайки для крепления датчика на любой пластине с отверстием подходящего диаметра.
Пример подключения к Arduino:
Датчик подключается тремя проводами. Жёлтый — к любому аналоговому выводу Arduino (это выход датчика). Красный — питание +5В, черный — земля.
Показания датчика инвертированы. При отсутствии препятствия, датчик выдаёт HIGH на жёлтый провод.
int IRpin = A0; // аналоговый пин для подключения выхода Vo сенсора void setup() { Serial.begin(9600); // старт последовательного порта } void loop() { // 5V/1024 = 0.0048828125 int volts1 = analogRead(IRpin)*5/1024; // считываем значение сенсора и переводим в напряжение Serial.println(volts1); // выдаем в порт delay(1000); }
В скетче выход датчика считывается входом АЦП, что позволяет проследить за изменением уровня сигнала на выходе датчика (причем любого: и с аналоговым, и с цифровым выходом). Периодичность выводимых показаний задается в функции задержки (у нас 1 сек).
В нормальном состоянии (нет препятствия) должно быть примерно 5! При появлении препятствия в заданном интервале — сигнал должен упасть практически до 0.
Справка: Как узнать, что ИК-диод работает? ИК-излучения ведь не видно. Очень просто — нужно воспользоваться фотокамерой мобильного телефона. Матрица чувствительна к ИК-излучению и вы увидите фиолетовое свечение работающего ИК-диода.
По материалам курса робототехники