Датчики движения

Robertuno
Offline
Зарегистрирован: 28.08.2016

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

ptr
Offline
Зарегистрирован: 28.05.2016

Если датчики движения простейшие, то есть требующие для подключение к микроконтроллеру только одного вывода, не считая питания и земли, то количество датчиков будет ограничено только количеством цифровых входов. У Arduino их не менне 14, у Arduino Leonardo 20, а у Mega аж 54. Так что все зависит от того, о какой ардуино речь идет. Не забывайте, что для управления лампочками тоже нужны выходы. То есть, подключив к ардуино 10 датчиков у вас останется всего 4 вывода для управления лампочками.

На самом деле, с дополнительной обвязкой можно и 256 датчиков обрабатывать 10 ногами. То есть, сигналы от всех датчиков заводим на одну шину монтажным ИЛИ так, чтобы при срабатывании хотя бы одного датчика на этой шине образовывался логический 0. Это у нас будет шина прерывания. Далее, сигнал от каждого датчика так же заводим на логический элемент. В случае, если сигнал детектирования движения у нас 1, то на обычный двухвходовой И-НЕ, в противном случае - на двухвходовой ИЛИ. Логика та же, низкий уровень на выходе логического элемента должен возникнуть только тогда, когда во-первых сработал датчик, во-вторых, на втором входе И-НЕ установлена единица или на втором входе ИЛИ установлен ноль. Выходы всех 256 элементов объединяем монтажным или и получаем вторую шину, на которой 0 будет только в том случае, если сработал датчик и в данный момент, вторым входом одного из И-НЕ (ИЛИ) выбран этот датчик.

Для выбора датчика используем каскад демультиплексоров. Например для управления И-НЕ можно использовать 16 SN74ALS154, на которые мы заведем младшие четыре разряда и семнадцатый SN74ALS154, на который заведем оставшиеся четыре разряда и который будет выбирать один из 16 ведомых демультиплексоров.

А если же управлять демультиплексорами сдвиговым регистром, типа SN74ALS299N, то восмибитный код выбора датчика мы сможем загнять в него, используя всего два цифровых вывода микроконтроллера. То есть, обрабатывать сигнал от от 256 датчиков можно, задействовав только 4 цифровых выхода ардуино )

Аналогичным образом, через дешифраторы/демультиплексоры, но еще с восьмиразрядным регистром, фиксирующем состояние сдвигового регистра по стробу, тремя выводами (два на сдвиговый регистр, третий - на регистр хранения) мы сможем управлять и 256 лампочками )

Само собой, сдвиговые регистры можно соединять друг с другом. То есть, при использовании 7 цифровых выводов и 16 разрядного кода выбора, реально управлять 65536 лампочек, опрашивая 65536 датчиков. Но тут уже, боюсь, мы упремся в быстродействие, так как опрос такого количества датчиков может занять изрядное время )

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Robertuno пишет:

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

Можно ли на Запорожце перевезти десять предметов? Без уточнения что за предметы - аруины UNO или двухметровые холодильники?

Что за датчики? Как Вы их подключать собрались?

Можно-то всё, вопрос - какая обвеска потребуется. Была такая старая песенка в которой пелось:

"В кедах можно даже по небу летать,
Если к ним еще добавить вертолет"

MagicianT
Offline
Зарегистрирован: 03.10.2015

ptr пишет:
У Arduino их не менне 14, у Arduino Leonardo 20, а у Mega аж 54. 

Поправка, у ардуино УНО их 20, аналоговые работают как обычные цифровые с номерами 14(А0) -//- 19(А5)

ptr
Offline
Зарегистрирован: 28.05.2016

MagicianT пишет:

ptr пишет:
У Arduino их не менне 14, у Arduino Leonardo 20, а у Mega аж 54. 

Поправка, у ардуино УНО их 20, аналоговые работают как обычные цифровые с номерами 14(А0) -//- 19(А5)

Я написал "не менее 14". 20 разве меньше 14? )))

Catholic
Offline
Зарегистрирован: 02.01.2015

На самом деле, не стоит экономить на ардуинках - разумнее объединять датчики движения и исполнительные ключи в группы по 4-6 штук, например: прихожая-коридор-ванная-туалет.

Тогда входов-выходов вполне достаточно. Желательно предусмотреть ручное управление - многих раздражает "слишком умный" дом, особенно людей с устоявшимися привычками.

Я сейчас делаю нечто подобное - и столкнулся с тем, что нужно добавлять еще пару входов - "день/ночь", чтобы свет не включался днем в светлой комнате и "глубокая ночь" - когда автомат включает освечение примерно на 1/4 - 1/8 яркости и не мешает спящим.

Если используете PWM - добавьте логарифмический преобразователь, яркость ленты растет непропорционально значению PWM

ptr
Offline
Зарегистрирован: 28.05.2016

Catholic пишет:

На самом деле, не стоит экономить на ардуинках - разумнее объединять датчики движения и исполнительные ключи в группы по 4-6 штук, например: прихожая-коридор-ванная-туалет.

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

Catholic пишет:

Если используете PWM - добавьте логарифмический преобразователь, яркость ленты растет непропорционально значению PWM

А это уже наоборот. Менять скважность PWM логарифмически проще в коде программы, чем навешивать дополнительное устройство.

 

Catholic
Offline
Зарегистрирован: 02.01.2015

Именно программно

INT LOGA [64] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
 11, 12, 13, 14, 16, 18, 20, 22, 25, 28, 30, 33, 36, 39,
 42, 46, 49, 53, 56, 60, 64, 68, 72, 77, 81, 86, 90, 95,
 100, 105, 110, 116, 121, 127, 132, 138, 144, 150, 156,
 163, 169, 176, 182, 189, 196, 203, 210, 218, 225, 233,
 240, 248, 255};

- примерно так