В некоторых сферах деятельности как например торговля, иногда полезно знать статистику посещения клиентов за определенное количество времени. В данной статье будет подробно рассмотрено одно из решений данной задачи.
Датчик проходов представляет собой устройство состоящее из 2-х частей — приемника и источника излучения. Счет и запись данных осуществляется с помощью arduino nano. В качестве приемника используется модуль фоторезистора, выполненный на основе микросхемы LM393. Данные будут передаваться по аналоговому выходу модуля. Фоторезистор должен находится в специальном далеененном корпусе, чтобы исключить возможность срабатывания счетчика от посторонних источников света. Источник излучения представляет собой простейший лазерный диод. В данном устройстве был использован лазер от простой лазерной указки. Наличие лазера дает преимущество в расстоянии и стабильности по сравнению с инфракрасными светодиодами.Так же в данном устройстве имеется индикатор — 7 — сегментный 4 — разрядный индикатор под управлением драйвера TM1637. Для осуществления сброса используются 2 кнопки без фиксации. Сброс происходит лишь после ввода пароля. В процессе разработки будет задействована энергонезависимая память микроконтроллера для того, чтобы данные не терялись при случайном или намеренном отключении питания.
Кнопка сброса и ввода пароля подключены через 10 кОм резистор. Arduino, модуль фоторезистора и индикатор питаются от 5 вольтовой линии, можно использовать вывод +5v от arduino. Сам arduino может питаться от внешнего блока питания (7-12 вольт) используя пин Vin, по usb или пин +5v.
Программа
Принцип работы программы прост. Лазер постоянно светит на фоторезистор. Программа каждый раз получает значение с фоторезистора 0-1023. Во время излучения лазера показание с фоторезистора не превышает 50, когда некий объект перекрывает луч лазера то его показание превышает пороговое значение в 50. Когда значение превысит порог в 50 программа подождет 500 мили секунд (достаточное для того,чтобы человек прошел) далее снова опрашивает датчик и если значение снова менее 50 значит человек прошел иначе будет ждать пока человек не пройдет если вдруг он встал на месте. Зажав кнопку в течении 3 секунд начать сброс программа перейдет в режим сброс пароля на индикаторе будет отображаться вводимый с кнопки ввод цифровое значение (повторное нажатие увеличивает значение кода на +1). Без особого труда можно ввести 2-х значный пароль сброса. В программе используется энергонезависимая память eeprom в которую записывается значение счетчика. Перед началом работы программа обращается к памяти извлекает и выводит на дисплей последнее сохраненное значение счетчика (самое большое). Чтобы увеличить ресурс данного устройства ограниченную в циклах записи память используем с максимальной эффективностью. Для этого каждое следующее значение, полученное с счетчика записывается в последующие ячейки памяти, т.е. используются все ячейки памяти по порядку.При сбросе очищается значение счетчика не лишь в оперативной памяти но и в eeprom.
Устройство размещается внутри 2-х корпусов размерами 45x65x20мм. В готовых купленных корпусах были сделаны прорези для кнопок и индикатора, а также usb
Внутри второго корпуса был расположен драйвер питания со стабилизаторами 5 и 3.3 вольт куда был интегрирован лазерный диод. Данный драйвер питает arduino по usb используя внешний источник питания 12 v
Фото готового устройства и тестирование
Надеюсь данное устройство вам пригодится, желаю удачи в дальнейшей сборке, спасибо.
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
Плата ArduinoArduino Nano 3.01
Резистор10 кОм2
кнопка2
индикатор на драйвере TM16377 сегментный 4 разрядный1
лазерный модуль1
модуль фоторезистора1
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- lazer1.ino (5 Кб)