Сенсор для ардуино своими руками

Добавил пользователь Дмитрий К.
Обновлено: 05.10.2024

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

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

Модуль сенсорной кнопки TTP223B (кликабельно) можно купить на Aliexpress с бесплатной доставкой

Подключаем сенсорную кнопку к Arduino

Распиновка сенсорной кнопки Catalex показана на рисунке ниже.

Как и у большинства датчиков, на кнопке три контакта. Это контакты для подключения питания (VCC), земли (GND) и выходного сигнала (SIG).

Контакты сенсорной кнопки

Подключается элементарно (смотрите на рисунке ниже). Если зажегся зеленый светодиод на модуле сенсорной кнопки, значит питание подано корректно.

Подключение сенсорной кнопки к Arduino

Скетч для Arduino и сенсорной кнопки

Скопируйте, вставьте и загрузите скетч, который приведен ниже, на ваш Arduino.

Скетч будет выводить данные в окне серийного монитора, когда сенсорная кнопка нажата.

Датчик движения своими руками на Arduino

  1. Подключение PIR-датчика к Arduino;
  2. Как настроить взаимосвязь между датчиком и автоматической отправкой e-mail.
Необходимо для проекта:
  • Arduino UNO (выбрать можно на Aliexpress).
  • PIR-датчик .
  • Бредбоард.
  • Связка проводов.

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

Датчик движения своими руками на Arduino

Датчик движения своими руками на Arduino

Датчик движения своими руками на Arduino

Датчик движения своими руками на Arduino

В первую очередь нужен ПК с подключением к интернету. Мы использовали Raspberry Pi.

Подключаем PIR-датчик к набору Arduino:

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

Датчик движения своими руками на Arduino

Работа со скетчем

Эту функцию сначала надо проверить. Для этого открывается Serial Monitor. Далее рассмотрим, как он выглядит:

Датчик движения своими руками на Arduino

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

Как установить PySerial и Python:

Операционная система Linux имеет автоматически установленный Python. Система Windows не обладает такой характеристикой, поэтому программу необходимо установить самостоятельно. PySerial исполняет роль библиотеки, она поможет поддерживать связываться с Arduino.

Установка Python:

Python 3 нередко вызывает затруднения при работе с PySerial, особенно если вы используете Windows. Чтобы этого избежать, можно вместо третьей версии скачать Python 2 .

Датчик движения своими руками на Arduino

Датчик движения своими руками на Arduino

Установить PySerial:

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

Python


Это показано на следующей картинке:

Датчик движения своими руками на Arduino

После изменений, программа запуститься при помощи командной строки:

Итак, установка завершена.

Здесь уже была заметка о самом простейшем датчике робота — контактном . Настала пора рассмотреть более продвинутый датчик препятствий — инфракрасный.

Вариант такого датчика на TSOP рассмотрим позже, а пока разберёмся с простым аналоговым сенсором на фототранзисторе.
Так как датчик аналоговый, то его выход должен подключаться к аналоговым портам контроллера Arduino (на вход АЦП микроконтроллера).
По величине аналогового сигнала мы сможем примерно оценивать расстояние до препятствия (разумеется, абсолютных величин мы получить не сможем, так как уровень сигнала будет меняться в зависимости от объекта).

ИК-датчик препятствий для Arduino

Простейшая схема — это пара из ИК-светодиода и фототранзистора:

LED1 — ИК-диод (L-53F3C)
Q1 — транзистор (например, 2N4401 из StarterKit-а)
Q2 — фототранзистор (L-53P3C)
R1 — 100
R2 — 1K
R3 — 4K7

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

макет ИК-датчика препятствий для Arduino

Для усиления сигнала от фототранзистора, можно дополнительно подключить транзистор.
Когда фототранзистор освещается, то через него начинает протекать ток, величина которого зависит от уровня освещения датчика. Так как меняется ток, проходящий через фототранзистор, то меняется и падение напряженяия на подключённом последовательно резисторе. Напряжение с резистора мы отправляем на аналоговый вход Arduino (вход АЦП) и по его величине судим об уровне освещения датчика.

Обратите внимание, что для управления светодиодом используется дополнительный транзистор. Дело в том, что светодиод потребляет 50 мА, а максимальная нагрузка на порт МК – не более 40 мА.

Самый прямолинейный алгоритм работы — это просто включить светодиод и замерить напряжение на аналоговом порту контроллера и при превышении определённого значения делать вывод о приближении препятствия.

Но этот подход плох тем, что при такой работе датчик будет реагировать на общий уровень засветки.

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

Благодаря переходу к работе с разностью освещенности, датчик будет нечувствителен к общему уровню засветки.


Итого, мы получили простой, но удобный ИК-сенсор, который можно использовать, как ИК-бампер на мобильном роботе. Если же сгруппировать несколько таких датчиков на одной плоскости(схеме), то можно получить простейший прототип " глаза насекомого ", с помощью которого можно даже следить за объектом.

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


Оптические датчики для платформы Ардуино. Типы, описание, характеристики. Подключение и испытание. Механические датчики были рассмотрены тут.

Модуль фоторезистора KY-018

Данный модуль представляет собой делитель напряжения, состоящий из фоторезистора и постоянного резистора сопротивлением 10 кОм 1

Оптические датчики для Arduino

Оптические датчики для Arduino

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

Оптические датчики для Arduino

Если загрузить в Arduino программу AnalogInput2, то в мониторе последовательного порта среды разработки Arduino IDE можно наблюдать, как меняются показания, снимаемые с аналогового входа платы Arduino.

Оптические датчики для Arduino

Оптические датчики для Arduino

Модуль легко сделать глазом робота или датчиком освещенности умного дома.

Модуль инфракрасного светодиода KY-005 5

Модуль представляет собой инфракрасный светодиод без каких-либо дополнительных элементов, добавочного сопротивления на плате нет.

Оптические датчики для Arduino

Оптические датчики для Arduino

При помощи матрицы фотоаппарата можно зарегистрировать излучение светодиода, для этого желательно установить чувствительность не меньше 800 ISO, отключить вспышку, максимально открыть диафрагму фотоаппарата и минимизировать окружающую засветку.

Оптические датчики для Arduino

Модуль ИК приемника KY-022

Модуль приемника инфракрасного излучения имеет габариты 24 х 15 мм и массу 1,6 г и представляет собой печатную плату на которой располагается сам приемный модуль и красный светодиод с добавочным сопротивлением 6.

Оптические датчики для Arduino

Оптические датчики для Arduino

В момент приема инфракрасного сигнала светодиод на плате мигает, что достаточно удобно при отладке конструкций на макетной плате.

Оптические датчики для Arduino

Коды сигналов пульта телевизора

Оптические датчики для Arduino

Аналогично модуль может принимать сигналы от пульта дистанционного управления светодиодной лампой.

Оптические датчики для Arduino

Оптические датчики для Arduino

При помощи этого датчика не сложно организовать многокомандное дистанционное управление в пределах прямой видимости, при расстоянии между приемником и передатчиком около 3-5 м.

Фотопрерыватель KY-010

В проектировании устройств с подвижными деталями может оказаться важным подсчитывать число оборотов или факт достижение деталью определенного положения. Подобное можно реализовать с помощью механических концевых выключателей или герконов, но эти элементы имеют механические подвижные части, а значит, будут со временем изнашиваться, залипать и т.п. Для аналогичных целей можно использовать оптопару KY-010 [11], которая не имеет подвижных частей, а поэтому более надежна.

Оптические датчики для Arduino

Оптические датчики для Arduino

Модуль фотопрерывателя имеет габариты 24 х 15 мм и массу 1,2 г

Оптические датчики для Arduino

Оптические датчики для Arduino

Модуль надежно срабатывает, будучи подключенным, вместо тактовой кнопки с программой LED_with_button [12].

Модуль датчика пульса KY-039

Данный модуль представляет собой печатную плату, на которой располагается инфракрасный фотодиод и фототранзистор. Теоретически опираясь на изменения прозрачности подушечки пальца данный модуль должен позволить определить частоту пульса 13.

Оптические датчики для Arduino

Оптические датчики для Arduino

Как понимает автор, светодиод должен быть направлен на фототранзистор

Оптические датчики для Arduino

По всей видимости, добиться адекватной работы от данного модуля непросто [15].

Оптические датчики для Arduino

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

Добиться работоспособности с демонстрационным кодом то же не получилось [16]. Таким образом, получается, что данный модуль это обычная оптопара, хотя, разумеется, автор может ошибаться.

Модуль ИК датчика линии KY-033

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

Оптические датчики для Arduino

Оптические датчики для Arduino

Модуль имеет габариты 47 х 10 х 12 мм, масса 2,1 г. Для крепления модуля на плате предусмотрено два отверстия диаметром 3 мм на расстоянии 11 мм друг от друга. На плате располагаются инфракрасный светодиод и фотоприемник, разделенные непрозрачной перегородкой. Для регулирования чувствительности датчика на плате имеется подстроечный резистор. При срабатывании датчика зажигается красный светодиод.

Оптические датчики для Arduino

Подстроечный резистор позволяет регулировать расстояние срабатывания от 25 до12 мм, считая от поверхности платы.

Оптические датчики для Arduino

Оптические датчики для Arduino

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

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

Модуль ИК дальномера KY-032

Модуль предназначен для обнаружения препятствий без непосредственного контакта с ними. На печатной плате модуля располагается ИК-светодиод и ИК-фотоприемник, когда интенсивность отраженного от препятствия излучения превышает заданный порог, формируется сигнал срабатывания датчика.

Оптические датчики для Arduino

Оптические датчики для Arduino

Оптические датчики для Arduino

По данным продавцов 22, датчик может обнаруживать препятствия на расстоянии от 2 до 40 см. Автору настоящего обзора удалось добиться срабатывания датчика на расстоянии 5,5-3,5 см от белого препятствия (лист бумаги). Черную шероховатую поверхность (бокс CD-дисков) датчик не видит совсем, черную глянцевую поверхность датчик регистрирует расстояния около 2 см.

Согласно документации, для настройки частоты модуляции ИК-импульсов на частоту 38 кГц служит подстроечный резистор промаркированный 103, а для регулирования чувствительности датчика следует использовать подстроечный резистор промаркированный 507. как хорошо видно на предыдущих фотографиях на плате доставшейся автору оба переменных резистора имеют маркировку 103. Возможно это брак в данном конкретном устройстве. Может быть этим и объясняется малая дальность действия датчика.

Оптические датчики для Arduino

Оптические датчики для Arduino

Таким образом, с одно стороны датчик можно использовать по назначению, однако по факту этот датчик не превосходит более простые ИК-датчики расстояния [23]

Модуль датчика инфракрасного излучения KY-026 25

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

Оптические датчики для Arduino

Оптические датчики для Arduino

Датчик имеет габариты 47 х 15 х 15 мм, массу 3 г, в печатной плате модуля предусмотрено крепежное отверстие диаметром 3 мм. Чувствительным элементом датчика является ИК-фотодиод. Регулировать чувствительность датчика можно многооборотным подстроечным резистором. Индикация питания осуществляется светодиодом L1.

Оптические датчики для Arduino

Оптические датчики для Arduino

Датчик уверенно реагирует на излучение лампы накаливания мощностью 40 Вт с расстояния около 0,5 м. На зажженную спичку датчик реагирует с расстояния около 10 см.

Оптические датчики для Arduino

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

Литература

Файлы и прошивки в общем архиве. Обзор прислал в редакцию сайта “2 Схемы” – Denev.

Читайте также: