Поиск

21 октября 2013 г.

Использование цифрового мини сенсора PIR и сенсорной кнопки для включения светодиодной подсветки

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

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

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



PIR сенсор


Вышеуказанная компания производит несколько видов цифровых сенсоров — 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 сенсор прикреплены: LEDControl.zip


1 комментарий:

  1. Доброго времени суток, пытаюсь такое же сделать, но на более простом PIR http://learn.adafruit.com/system/assets/assets/000/010/134/original/RE200B.pdf

    Смотрю вы оч много по домашней автоматике делаете? У меня такой же "уклон" + заказы на разработку даже "рук не хватает" на все.
    На счет Меркурия руки давно "чешутся".. Но есть более интересная задача - у меня стоит контроллер/инвертор 12/220В с большим аккумулятором 430 Ач, который работает в режиме - ночь зарядка (тариф 1,57 р/КВт) день - генерация (тариф 3,5 р/КВт). Прибор имеет rs232 и может выдавать различные параметры, но я хочу без него "обвесить" 12-ти вольтовые провода датчиками тока и напряжения с тем чтобы смотреть режим потребения/генерации и сделать расчет экономии.
    Если вы не против то хотел б познакомиться с вами и пообщаться.
    мой мейл: sh2000@bk.ru skype:luciusvaren

    ОтветитьУдалить