Устройство на Ardiuno для контроля пересечения барьера.

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 47
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

Восстановлю тему.

Данное устройство контролирует пересечение барьера, причём, в обе стороны, считает число пересечений барьера (в данном случае до 3, но это меняется одной константой) и выполняет включение/выключение различной нагрузки в зависимости от ситуации.
Возможное применение, пример:
Заход в комнату/выход из комнаты. Допустим, есть ванная комната. В начальном состоянии там освещение выключено. Заходит один человек – освещение включается. Устройство считает 0+1=1. Он начинает принимать душ в душевой кабине. Заходит другой человек 1+1=2, моет руки. Заходит третий, допустим, побриться 2+1=3. Тот, кто помыл руки выходит 3-1=2. Потом, тот кто брился 2-1=1. И, наконец, первый завершает принимать душ, выходит 1-1=0, освещение выключается.
Говорю сразу – датчик движения вместо этого устройства не прокатит. Нет, если кому-то нравится махать руками время от времени – дело хозяйское, я через это уже прошёл. 
Описание:
Генератор прямоугольных импульсов с выходом на IR-светодиод устанавливается на одной половине дверного проёма. Генератор собран на NE555 и имеет форму сигнала - меандр, и частоту примерно 20 кГц.
https://cloud.mail.ru/public/DyZ6/nJsxoqqdb

На другой половине дверного проёма устанавливаются два IR-светоприёмника, с некоторым разнесением по горизонтали (у меня примерно 2,5 см). Каждый светоприёмник имеет свой отдельный канал. На выходе фотодиода сигнал приблизительно 5-20 мВ, в зависимости от дальности, и, примерно, треугольная форма. Далее идёт каскад усиления на двух транзисторах VT1, VT2 (VT3, VT4), которые усиливают сигнал и доводят его до логических уровней. Каждый канал собран на отдельной плате. На схеме пунктирными линиями отображены отдельные платы.
https://cloud.mail.ru/public/zXoN/JaaE5YAuy

Затем идут ждущие мультивибраторы с перезапуском на микросхемах 176ЛA7 (2И-НЕ) и CD4013 (D-триггер), которые превращают факт наличия или отсутствия сигнала в 0 или 1. Настройка мультивибраторов сводится к подбору R9, C5 (R20, C11), чтобы их постоянная времени была раза в 3-4 больше периода сигнала. Светодиоды HL1, HL2 установлены в отладочных целях и информируют о том, когда сигнал на каком канале есть, когда нет. Мультивибраторы собраны на одной плате, так как логические микросхемы общие у обоих каналов. И, наконец, эти значения поступают на входы D2, D3 Arduino.
Arduino управляет нагрузкой 220 вольт с помощью типовой схемы с оптроном MOS3063M и симистором BT12-600BW. R10 подобран так, чтобы входной ток MOS3063M был номинальным, примерно 5 мА. Нагрузка у меня заведомо не индуктивная, поэтому снабберную цепь я не ставил. На этой же плате расположена сама Arduino, и миниатюрный блок питания Hi-link на 5 Вольт для питания низковольтной части.
Все пять плат на фото:
https://cloud.mail.ru/public/6MnN/2C5vYT4Sn

Описание алгоритма скетча (в сильно упрощенном виде).
Скетч анализирует эти входы, устанавливает, на каком из них сигнал изменился раньше, и делает вывод о направлении пересечения барьера. При наличии пересечения, он увеличивает или уменьшает внутренний счетчик, который отображается на светодиодах HL3, HL4 (выходы D6, D8) в двоичном коде (при желании, можно сделать цифровой индикатор). Состояния счетчика – в начальном положении счётчик равен 0. Если пересечение барьера происходит в «обратном» направлении, то счётчик не меняется и ничего не происходит. Если в «прямом», то счётчик увеличивается на 1, и схема включает нагрузку, подав 1 на выход Arduino D4, и, в конечном итоге, включив симистор Т1. Далее счётчик может увеличиваться или уменьшаться. При достижении максимального числа 3, схема далее ничего не делает. При достижении числа 0, нагрузка выключается, и схема переходит в исходное состояние. После любого события пересечения, устанавливается пауза в 2 секунды, когда скетч ничего не делает, эту паузу можно изменить.

Видео теста направленности и расстояния IR-компонентов.

Видео полного теста устройства.
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 47
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

Устройство работает уже дней 10, по-моему, так что поделюсь ощущениями.
1. В среднем, заходили в ванную комнату раз 15-20 в день, ни одного сбоя не случилось.
2. Думал, что вещь удобная, но не ожидал, что настолько удобная. Тем более, у меня выключатель расположен примерно в полутора метрах от двери. Правда, первое время, рука туда автоматом тянулась, теперь отвыкаю постепенно.
3. Сейчас хочу чуть изменить схему, уменьшить число плат с 5 до 3, и напечатать корпуса. Поставлю во вторую ванную комнату.
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 47
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

По новой схеме.
Схема передатчика не изменилась.
https://cloud.mail.ru/public/Nz7B/nEcC4SrCB
Схема приёмника
https://cloud.mail.ru/public/9iAv/rMQHbJDUo
2 канала приёмника собраны на одной плате. Исключена схема со ждущим мультивибратором, его функции возьмёт на себя МК.
LED3, LED4, LED5 нужны только для отладочных целей, в готовое отлаженное устройство их ставить нет необходимости. По совету roman.com в схеме усиления заменил номиналы резисторов R1,R2,R3,R4,R9,R10,R12,R13 и усиление заметно выросло. Вот сигнал уже после первого каскада усиления:
https://cloud.mail.ru/public/RXaH/UfUzWAxhk
А вот после второго:
https://cloud.mail.ru/public/qAqq/7eDkBJpiC
То есть, хватило бы и одного каскада усиления.
Чувствительность приёмника при этом существенно повысилась, сигнал принимается при большем угле разворота светодиода от фотодатчика, что заметно на этом видео:
https://cloud.mail.ru/public/wvMx/px7KrxdRs
Продолжение следует.
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт фев 09, 2010 17:52:26

Сообщение codenamehawk »

Massaraksh7 писал(а): Ср июн 17, 2026 02:38:59 Говорю сразу – датчик движения вместо этого устройства не прокатит.
А датчик присутствия?
Упрощается установка, насчет потребления не скажу, скорее всего тоже уменьшится.
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 47
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

Это мнение имеет полное право на существование. Но это совсем другая история.
Реклама
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт фев 09, 2010 17:52:26

Сообщение codenamehawk »

В передатчике у вас заполнение сигнала около 50 %
В пультах сигнал имеет заполнение несколько процентов.
Это дает возможность уменьшить потребление и позволяет пропускать больший ток через светодиод, что дает более сильный сигнал.
Электролит по питанию, возле светодиода, улучшает выходной сигнал.
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 47
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

codenamehawk писал(а): Ср июн 17, 2026 10:21:16 В передатчике у вас заполнение сигнала около 50 %
В пультах сигнал имеет заполнение несколько процентов.
Это дает возможность уменьшить потребление и позволяет пропускать больший ток через светодиод, что дает более сильный сигнал.
Уменьшить скважность? Не подумал, да, идея неплохая.
Друг Кота
Сообщения: 9179
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

roman.com такую схему не предлагал.
roman. com предлагал схему автосмещения
Вложения
Screenshot_1.jpg
(31.16 КБ) 5 скачиваний
Друг Кота
Сообщения: 9179
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

схема автосмещения используется в радиоуправлении. ссылку давал уже...
Вложения
RX.jpg
(186.33 КБ) 4 скачивания
Открыл глаза
Аватара пользователя
Сообщения: 47
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

roman.com писал(а): Ср июн 17, 2026 11:41:37 roman.com такую схему не предлагал.
Где я написал, что эту схему предлагал roman.com?
Я написал:
По совету roman.com в схеме усиления заменил номиналы резисторов R1,R2,R3,R4,R9,R10,R12,R13
И это было. Предложение звучало приблизительно так:
Для увеличения усиления резисторы в базах нужно увеличить до 300-400кОм, а в коллекторах до 10кОм
Про совет по автосмещению я помню, но я не стал его применять.
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт фев 09, 2010 17:52:26

Сообщение codenamehawk »

viewtopic.php?t=189378
Человек перемещается медленно, возможно и сотен герц будет достаточно.
Открыл глаза
Аватара пользователя
Сообщения: 47
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

codenamehawk писал(а): Ср июн 17, 2026 11:55:47 viewtopic.php?t=189378
Человек перемещается медленно, возможно и сотен герц будет достаточно.
Не думаю. Я в старой теме уже писал, что при расстоянии 1 см от светодиода (а мы ведь не знаем, в каком месте будет первое пересечение), расстояние между перекрытиями 1-го и 2-го фотодатчика всего 0.4мм.
Открыл глаза
Аватара пользователя
Сообщения: 47
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

Но подобрать параметры к NE555 легко:
Screenshot_2.png
(27.26 КБ) 6 скачиваний
Мудрый кот
Сообщения: 1734
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

Massaraksh7 писал(а): Ср июн 17, 2026 02:38:59Заход в комнату/выход из комнаты. Допустим, есть ванная комната. В начальном состоянии там освещение выключено. Заходит один человек – освещение включается. Устройство считает 0+1=1. Он начинает принимать душ в душевой кабине. Заходит другой человек 1+1=2, моет руки. Заходит третий, допустим, побриться 2+1=3. Тот, кто помыл руки выходит 3-1=2. Потом, тот кто брился 2-1=1. И, наконец, первый завершает принимать душ, выходит 1-1=0, освещение выключается.
А если мамаша занесла в ванную ребёнка = +1. И вышла (на время), оставив его там = 0. Ребёнок будет сидеть в темноте?
А если он потом всё-таки нашёл выход в темноте сам и вышел, то счётчик будет = -1? И кто-то потом зайдёт помыть руки и получится = 0 - будет мыть руки в темноте?
Ответить

Вернуться в «Arduino»