Улучшение китайского датчика препятствия. Инфракрасный датчик препятствия на компараторе LM393. Установка расстояния срабатывания

В данном обзоре мы рассмотрим и протестируем модуль инфракрасного датчика препятствия с обозначением MH-B. Модуль построен на сдвоенном компараторе LM393.

Заказ производился в китайском интернет-магазине Алиэкспресс . Датчик стоит ~20 рублей:

В Грузию товар был доставлен бесплатно компанией "4PX Singapore Post OM Pro" в стандартном пакете:

Плата модуля была герметично запечатана в антистатический пакет и обвернута полиэтиленом с пупырышками:

С одной стороны платы имеются штырьки для подачи питания и снятия сигнала, а с противоположной стороны параллельно друг другу установлены инфракрасный светодиод и фотодиод, которые нужно направлять в сторону препятствия для определения его наличия:

Все контакты подписаны и будет очень легко подключиться к модулю:

  • На VCC подаётся напряжение питания;
  • Вывод GND - общий;
  • С вывода OUT снимается сигнал.

С другой стороны платы написано +OUT, но это не совсем так, и об этом мы поговорим позже:

Кроме микросхемы и светодиода с фотодиодом из радиоэлементов на модуле имеются:

  • светодиод индикации питания;
  • светодиод индикации сигнала;
  • два гасящих резистора для светодиодов на 1 кОм;
  • гасящий резистор инфракрасного светодиода на 100 Ом
  • два резистора смещения по 10 кОм;
  • подстроечный резистор на 10 кОм
  • два шунтирующих конденсатора по 0,1 мкФ;

Как уже говорилось модуль основан на сдвоенном компараторе LM393. Коротко рассмотрим документацию на эту микросхему:

Серия LM393 представляет собой двойные независимые прецизионные компараторы напряжения, способные работать с одиночным или раздельным питанием. Эти устройства спроектированы таким образом, чтобы обеспечить общий режим от одного до другого с одним режимом питания. Спецификации смещения входного напряжения до 2,0 мВ делают это устройство отличным выбором для многих применений в потребительской, автомобильной и промышленной электронике. Особенности компаратора LM393:

  • Широкий диапазон питания постоянного тока с одним источником(от 2,0 В до 36 В);
  • Диапазон двуполярного питания от 1,0 В до 18 В постоянного тока;
  • Очень низкий ток покоя, независящий от напряжения питания(0,4 мА);
  • Низкий синфазный входной ток смещения(25 нА);
  • Низкий дифференциальный входной ток смещения(5 нА);
  • Низкое входное напряжение смещения(5,0 мВ макс.);
  • Дифференциальное входное напряжение, равное напряжению питания;
  • Выходное напряжение, совместимое с логическими уровнями DTL, ECL, TTL, MOS и CMOS;
  • Температура окружающей среды от 0 ° C до 70 ° C.

У микросхемы восемь выводов, два из которых общий(4) и плюс питания(8), два других выходы: 1 - выход компаратора A, 7 - выход компаратора B. Выводы 2 и 3 соответственно инверсный и прямой вход компаратора A, а выводы 5 и 6 соответственно прямой и инверсный входы компаратора B. Представляю так же внутреннюю схему одного из компараторов:

Как видно из схемы выход компаратора представляет из себя каскад на транзисторе с открытым коллектором.

Весь модуль в собранном виде не больше длины спичинки и легко может уместится в небольшом пространстве:

Перейдем к проверке и для этого нам понадобится:

  1. разъём для подключения к штырькам модуля;
  2. токоограничительный резистор для светодиода на сопротивление 220 Ом;
  3. ну и собственно сам модуль разумеется

Проверять мы будем самым простым способом, без всяких контроллеров, и все это мы соединим по следующей схеме:

В описании к модулю говорится что он будет работать при напряжении от 3 В до 5 В и мы будем проверять с напряжением питания 5 В. Хочу отметить одну особенность - в начале я говорил, что на штырьке выхода подписано +OUT и что это не совсем так. Из внутренней схемы компаратора, на котором собран модуль, видно что коллектор выходного транзистора никуда не подключён и на нём никак не может быть "+", хотя на плате модуля установлен резистор смещения между выходом и плюсом питания на 10 кОм, но в некоторых случаях этого может быть недостаточным, и при этом получается что выход работает инверсно: при срабатывании датчика на выходе будет логический "0". Это нужно учесть при конструировании некоторых поделок. Сначала я все же поверил надписи на плате и подключил светодиод между выходом и общим проводом, но светодиод начинал светится сразу при подаче питания без препятствия перед модулем, а во время срабатывания при поднесении препятствия на 3 см. он наоборот гаснет:

Пришлось подключить светодиод между выходом и плюсом питания. Собираем правильную схему и подаём напряжение питания:

Видим что без препятствия светодиод не светится.

Замеряем ток и видим что без препятствия в режиме покоя ток потребления 36 мА:

После срабатывания светится светодиод индикации наличия сигнала и потребляемый ток увеличивается до 47 мА:

Изменяя сопротивление подстроечного резистора я замерил стабильное минимально И максимально возможное расстояние срабатывания датчика. При вращении оси подстроечного резистора против часовой стрелки расстояние срабатывания уменьшается и минимально возможное расстояние составило 1 см.:

При вращении же оси подстроечного резистора по часовой стрелке расстояние срабатывания датчика увеличивается и максимальное надёжное расстояние срабатывания датчика составило около 12 см..

Каждый робот, способный ездить, летать или плавать, должен видеть препятствия, находящиеся у него на пути. Чтобы робот смог это сделать, ему необходимы соответствующие датчики. В английской литературе такие устройства называют proximity sensor , мы же их будем называть датчиками препятствия. На этом уроке мы рассмотрим один из самых распространенных датчиков препятствия, который работает по принципу отражения. Устроен он очень просто. Датчик содержит направленный источник света и детектор света. Источником часто служит инфракрасный светодиод с линзой, а детектором — фотодиод или фототранзистор. Светодиод на датчике постоянно включен и излучает узкий пучок света в прямом направлении. Если перед датчиком есть препятствие (рисунок А), то на детектор попадает отраженный свет от источника, и на выходе датчика появляется положительный импульс. В противном случае, если препятствия нет, то датчик молчит (рисунок Б). Есть и третий вариант, когда препятствие есть, но свет от него не отражается! На рисунке В изображен как раз такой случай. Получается, матовую черную поверхность робот не увидит.

1. Подключение

Будем подключать самый простой датчик с цифровым выходом. Принципиальная схема подключения к выводам Ардуино Уно :
Внешний вид макета

2. Настройка чувствительности

Как известно, вокруг нас имеется множество источников инфракрасного излучения, включая лампы освещения и солнце. Фоточувствительный элемент датчика регистрирует это фоновое излучение, и может дать ложный сигнал срабатывания. Другими словами, датчик препятствия может сработать, когда никакого препятствия и нет вовсе. Чтобы решить эту проблему, на датчике имеется возможность настроить чувствительность таким образом, чтобы воспринимать только свет достаточной силы. Обычно это реализуется с помощью компаратора — электронного устройства, позволяющего сравнивать два уровня напряжения. Одно напряжение подается на компаратор с фотодиода, а другое с делителя напряжения на основе потенциометра. Второе напряжение будем называть пороговым . Теперь датчик даст положительный сигнал только тогда, когда напряжение на фотодиоде станет больше, чем настроенное нами. Для настройки порогового напряжения нам понадобится шлицевая отвертка (она же — плоская). В этой процедуре нам также поможет зеленый светодиод состояния, который загорается когда датчик регистрирует достаточный уровень инфракрасного света. Алгоритм настройки сводится к трем шагам:
  • помещаем датчик в условия освещенности, в которых он будет работать;
  • подключаем датчик к питанию, при этом на нем загорится красный светодиод;
  • убираем перед датчиком все препятствия, и крутим потенциометр до тех пор, пока зеленый светодиод состояния не погаснет.
Для проверки поднесем к датчику ладонь, и на определенном расстоянии загорится зеленый светодиод. Уберем руку — светодиод погаснет. Расстояние на котором датчик регистрирует препятствие зависит от уровня фоновой засветки, от настройки чувствительности и от правильного расположения фотодиода и светодиода на датчике. Они должны быть расположены строго параллельно друг другу. Теперь, когда датчик настроен должным образом, приступим к составлению программы.

3. Программа

Для примера, будем зажигать и гасить штатный светодиод №13 на Ардуино Уно , в зависимости от показаний датчика. При использовании цифрового датчика, программа будет такой же, как и в случае работы с кнопками. На каждой итерации цикла loop мы считываем значение на выводе №2, и затем сравниваем это значение с уровнем HIGH . Если значение равно HIGH , значит датчик видит препятствие, и мы зажигаем светодиод на выводе №13. В противном случае — гасим светодиод. const int prx_pin = 2; const int led_pin = 13; byte v; void setup() { pinMode(prx_pin, INPUT); pinMode(led_pin, OUTPUT); } void loop() { v = digitalRead(prx_pin); if(v == HIGH) digitalWrite(led_pin, HIGH); else digitalWrite(led_pin, LOW); }

4. Пример использования

Попробуем теперь применить цифровой датчик по прямому назначению. Заставим двухколесного робота реагировать на показания двух датчиков, размещенных слева и справа. Сделаем так, чтобы при обнаружении препятствия робот отворачивал от него в противоположную сторону, а затем продолжал движение вперед. Оформим программу в виде блок-схемы процедуры loop .

Задания

Если все получилось, попробуйте выполнить еще несколько заданий с роботом.
  1. Направить датчики препятствия вниз, чтобы робот смог чувствовать край стола. Написать программу, которая предотвращает падение робота со стола.
  2. Снова направить датчики вниз, но на этот раз для другой цели. Как мы выяснили, датчик может отличить черную поверхность от белой. Воспользуйтесь этим свойством, чтобы сделать робота-следопыта (он же LineFollower).
  3. Направить датчики в стороны, и заставить робота двигаться вдоль стены.

Заключение

На следующем уроке мы познакомимся с датчиком, который устроен практически так же, но больше подходит для детектирования черных и белых поверхностей. Попробуем считывать уже не цифровой, а аналоговый сигнал датчика, чтобы сделать более совершенного робота-следопыта.

Описание и схема датчика препятствий на инфракрасных лучах, который собран на микросхеме К561ЛН2. Одна из задач, которую приходится решать при разработке самодельных бытовых электроприборов, движущихся игрушек и других подобных автоматизированных устройств, - обнаружение и обход препятствий, а так же, обнаружение преград и приближающихся предметов.

Использование для этих целей контактных датчиков не всегда удобно, потому что требует механического соприкосновения с препятствием, с некотором пороговым усилием, зависящим от конструкции датчика, что не всегда желательно. Намного более удобен, надежен и эффективен бесконтактный датчик, не ощупывающий препятствие, а видящий его.

Здесь приводится описание простого датчика, видящего в ИК-излучении, и сделанного из деталей от систем дистанцинного управления бытовой аппаратуры. Максимальная дальность обнаружения препятствий может достигать одного метра или больше, но если этого много (например, нужно реагировать на приближение всего на один сантиметр), его дальность очень просто уменьшить увеличением сопротивления резистора, включенного последовательно излучающему ИК-светодиоду.

Принципиальная схема

Схема датчика приведена на рисунке в тексте. Она выполнена на основе микросхемы К561ЛН2, содержащей шесть инверторов повышенной нагрузочной способности, и таких элементов систем дистанционного управления аппаратурой, как инфракрасный светодиод и инфракрасный фото приемник. Фотоприемник интегральный, на частоту модуляции ИК-потока 33 кГц.

Рис. 1. Принципиальная схема датчика препятствий на ИК-лучах.

Функционально схема состоит из приемника и излучателя. Приемник состоит из интегрального фотоприемника HF1 и логического элемента D1.1. Излучатель состоит из ИК-светодиода HL1 и генератора импульсов 33 кГц на элементах D1.2-D1.6. Фотоприемник и светодиод расположены на плате рядом и направлены в одну сторону, - на препятствие.

Печатная плата

Рис. 2. Печатная плата для схемы датчика.

Между ними непрозрачная перегородка. Чувствительность (дальность) регулируется подбором сопротивления R3 (на схеме минимальное сопротивление, дающее максимальную чувствительность).

Горбунов С. РК-2016-09.

Простейший инфракрасный сенсор, который будет сообщать о наличии препятствия, можно сделать всего на одном транзисторе. Эта самоделка имеет скорее не практическое применение, а скорее теоретическое, демонстрируя работу инфракрасного датчика наличия препятствия. Конечно, никто не мешает сделать и практическое применение, скажем, при построении простых роботов.

Схема инфракрасного датчика препятствия

Работа схемы очень проста. Инфракрасный светодиод излучает инфракрасное излучение, в невидимом человеческому глазу спектре. Если на пути излучения появляется объект, то инфракрасные лучи начинают отражаться от объекта и возвращаться обратно в сторону светодиода. Ловушкой для этих лучей служит инфракрасный фото элемент (ИК фотодиод). При попадании на него отраженных лучей, его сопротивление уменьшается. В результате ток в цепи базы транзистора увеличивается и транзистор открывается. Нагрузкой транзистора служит синий светодиод, который начинает светиться. Можно на выход подключить зуммер и слышать звуковой сигнал.
Если препятствия датчику нет, то лучи не отражаются и транзистор не открывается.
Транзистор можно взять любой, той же структуры, можно советский КТ315 или КТ3102.

Сборка датчика

Схема собрана навесным монтажом. Настройка не требуется – работает сразу. Питаю я от аккумуляторной батареи 3,7 В.


Инфракрасные датчики используют роботы-пылесосы, различные системы контроля, в обычном печатном принтере обязательно стоит таких парочка, а то и больше и тп.

Устройство представляет собой простой цифровой датчик препятствия, ориентирующийся по отраженному инфракрасному излучению. Этот датчик был приобретен на Алиэкспресс. Принцип действия схож со схемой, которую недавно рассматривали


Инфракрасный датчик препятствия купленный на Али

Конструкция и параметры

Конструктивно датчик представляет собой печатную плату 31 x 14 мм, на плате имеется одно крепежное отверстие.


Инфракрасный датчик препятствия — плата печатная

Масса датчик 2,7 г. Для питания и передачи информации на датчике имеется трех контактный разъем, выводы которого промаркированы.


Трехконтактный разъем подключения датчика
  • Устройство питается постоянным напряжением в диапазоне от 3,3 до 5 В, ток потребления составляет 25 мА при напряжении питания 3,3 В и 40 мА при напряжении 5 В.

На датчике размещен инфракрасные светодиод и фотоприемник. Наличие препятствия определяется по интенсивности отраженного инфракрасного излучения. Подстроечным резистором на плате датчика можно установить требуемую чувствительность устройства. По заявлениям производителя датчик реагирует на препятствия в диапазоне от 2 до 30 см, угол зрения датчика 35 градусов. У автора получилось настроить датчик на препятствия в диапазоне 3-8 см, хотя возможно проблема в том, что испытывался только один датчик, к тому же угол зрения датчика, действительно весьма широк. Не следует также забывать, что различные поверхности отражают инфракрасное излучение по разному, более «блестящая», в данном диапазоне, поверхность будет обнаружена с большего расстояния, чем темная. В любом случае, этот датчик является «оружием ближнего боя».


ИК датчик препятствия — размер платы

Когда в поле зрения датчика появляется препятствие, на его информационном выходе устанавливается сигнал логического нуля. Если в поле зрения препятствия нет, то на выходе сигнал логической единицы. На плате датчика имеются два светодиода, один – индикатор питания, а другой — индикатор срабатывания датчика, который загорается при появлении в зоне видимости препятствия.

Подключение к Ардуино

По заявлению продавца датчик оптимизирован для Arduino, учитываю богатую, для столь простого устройства, индикацию и маркировку с этим можно легко согласиться.


ИК датчик препятствия с Ардуино

Для примера взаимодействия датчика с платформой Arduino, можно взять программу, которая зажигает светодиод, подключенный к 13 цифровому порту, по нажатию кнопки, подключенной к 12 цифровому порту платы Arduino UNO. Программа взята с сайта robocraft.ru

/*
* LED with button
*/

int ledPin = 13; // сетодиод
int btnPin = 12; // кнопка
int val=0;

void setup()
{
pinMode(ledPin, OUTPUT); // это выход — светодиод
pinMode(btnPin, INPUT); // а это вход — кнопка
Serial.begin(9600); // будем записывать в COM-порт
}

void loop()
{
val = digitalRead(btnPin); // узнаём состояние кнопки
if(val==HIGH) // кнопка нажата
{
digitalWrite(ledPin, HIGH); // зажигаем светодиод
Serial.println(«H»);
}
else // кнопка не нажата
{
digitalWrite(ledPin, LOW); // гасим светодиод
Serial.println(«L»);
}
delay(100);
}

Датчик при этом подключается вместо кнопки. После загрузки программы в память микроконтроллера, можно поэкспериментировать с разными режимами работы датчика.

Вывод о покупке

В целом неплохой дешевый датчик для систем сенсорного управления и ориентирования роботов. В последнем случае может, вероятно, быть альтернативой или дополнением, концевым выключателям, которые срабатывают при контакте робота с препятствием. Своих денег стоит. Denev