Использование цифрового мини сенсора PIR AM612 и сенсорной кнопки для управления освещением

PIR

В статье расскажу об использовании цифрового пироэлектрического смарт сенсора для обнаружения движения — AM612 фирмы Nanyang Senba Optical Electronic.

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

Задействован этот датчик в схеме управление светодиодной лентой с использованием микроконтроллера AVR ATtiny13A.
Также в этой схеме используется сенсорная кнопка.


PIR сенсор
pins

Вышеуказанная компания производит несколько видов цифровых сенсоров — AM312, AM322, AM412, AM612 и т.д.
Первая цифра — количество выводов, вторая диапазон питающего напряжения («1» — от 2.7 до 3.3, «2» — от 3 до 15).

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

Выводы AM612:
  1. Регулировка чувствительности (максимальная — 0В, минимальная — VDD/4)
  2. Активация выхода
  3. Питание "-"
  4. Питание "+" (VDD)
  5. Выход
  6. Время активного сигнала на выходе (2 секунды — 0В, 70 минут — VDD/4)
с линзой

Минимальная чувствительность где-то 1.8 метра. Если нужно меньше придется затемнять окно датчика.
Максимальная 6-8 метров.

Линза Френеля вот такая (модель 8120):
  • Фокус — 6 мм
  • Угол — 120
  • Дистанция — 5 м
  • Размер — 12.7 мм


Устройство управления

Схема

Данное устройство сделал для включения/выключения светодиодной ленты по движению в темное время суток или при касании корпуса устройства.
Для контроля освещения используется фоторезистор (10кОм при 10 Lux, 100кОм при 1 Lux), который подключен к выводу АЦП. Этот же вывод «подтянут» к VCC.
АЦП работает во режиме постоянного чтения.

Схема и алгоритм обработки прикосновения к сенсорной кнопки (пластина) рассчитан на толстый пластик 2 мм толщиной между ней и пальцем.
Для определения прикосновения используется расчет времени зарядки конденсатора на порту ввода-вывода микроконтроллера.
Опрос идет каждые 0.1 секунды.
Особенность алгоритма:
  • Вычисляется среднее значение при отсутствии касания
  • Касанием считается превышение среднего значения на определенную дельту
  • Отпускание это когда время зарядки становится меньше среднего значения + дельта
  • Отпускание учитывается спустя 0.6 секунды


Свет включается если обнаружено движение и превышен порог освещения, задающий темноту.
Если не было движения в течении заданного в программе периода (5 минут), то свет отключается.
Отключить или включить свет можно и с помощью касания. Свет отключится также через 5 минут, после последнего обнаружения движения.

Можно перейти в полностью ручной режим длительно (более 5 секунд) прикоснувшись к корпусу.
Подтверждение включение этого режима — мигание 1 раз, отключение — мигание 2 раза.
В этом режиме датчики не обрабатываются вообще.

Есть режим настройки — более 15 секунд прикоснуться к сенсорной кнопки (свет мигнет 3 раза).
Пункты настройки:
  1. Установка «порога темноты». После короткого прикосновения через 5 секунд берется значение АЦП на ноге фоторезистора и используется в дальнейшем в качестве порога
  2. Настройка времени включения в минутах. Длительное прикосновение (более 1.5 секунды) — увеличение, короткое — уменьшение
  3. Настройка дельты сенсорной кнопки. Длительное прикосновении — увеличение, короткое — уменьшение
Переход к следующему пункту и сохранение значения (начиная с пункта 2) — через 1 минуту после последнего прикосновения и подтверждается миганием света в количестве, равном номеру пункта.

Микроконтроллер работает на хитрой частоте приблизительно 9437184 Гц (задана через регистр OSCCAL) для более удобного счета времени в программе.
Программа написана на C в Atmel Studio 6.1.

Исходник и документация на PIR сенсор прикреплены.
  • +9
  • 21 октября 2013, 15:59
  • vad7
  • 1
Файлы в топике: LedControl.zip

Комментарии (14)

RSS свернуть / развернуть
Что-то не понял насчет сенсора. На что он реагирует?
0
Детектор движения
0
А где и почем купить? Линза продается отдельно?
0
на aliexpress.com например.
линзы там же, я правда 100 штук брал.
0
к авр имеет отношение только тем, что на нем реализовано. а так — ничего специфичного нет, так что в личный блог наверно.
0
  • avatar
  • xar
  • 21 октября 2013, 17:15
Однозначно. Придет Ди и пошлет в личный. Если и пихать это в общий блог — то в «Детальку», и переименовать соответственно.
0
Какие настройки чувствительности и длительности выставлены у моделей AM3xx и AM4xx?
Зачем в схеме D1?
Переход к следующему пункту и сохранение значения (начиная с пункта 2) — через 1 минуту после последнего прикосновения
Не слишком ли долго? К тому же, у тебя есть один лишний пин. Можно было сделать скрытую кнопку для входа в режим настройки и переключения между пунктами настроек.
P.S. Ну зачем же в схеме питание рисовать снизу, а землю сверху? Полминуты пытался понять, почему ONTIME к VCC подтянут, пока не понял, что это земля.
0
  • avatar
  • Vga
  • 21 октября 2013, 17:18
Спасибо. Действительно чего-то зарисовался…
Перерисовал.
Диод для защиты сенсора. У него верхний предел 3.3V.
А регулятор на 3V трудно найти.
0
AM312 — 2 секунды, 6-8м
AM412 — 2 секунды — 70 минут, 6-8м
0
Т.е. не выведенные пины заземляются. Понятно.
0
Переименовать так, чтобы в названии была модель PIR сенсора и утащить в детальку. В AVR ему делать нечего.
0
В принципе, в отличие от перекидывания в личку, это ты и сам сделать можешь.
0
Могу, но лучше когда авторы сами это делают.
+1
Подскажите, пожалуйста, а что это за Wave Form в даташите на AM422 (указано MSB и LSB, там цифровая шина чтоли)?
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.