http://forum.getchip.net/

Датчик движения = HC-SR04 + ATtiny13
http://forum.getchip.net/viewtopic.php?f=9&t=818
Страница 1 из 1

Автор:  SVN [ 10 дек 2017, 12:17 ]
Заголовок сообщения:  Датчик движения = HC-SR04 + ATtiny13

Понадобился мне как-то датчик движения с конкретными характеристиками, а именно чтобы датчик движения реагировал на определённом расстоянии. И вот для этих целей решил использовать готовый модуль «ультразвуковой дальномер» HC-SR04 (благо они у меня есть в наличии).

В качестве формирователя периода опроса дальномера, было решено использовать один из относительно дешёвых микроконтроллеров семейства Tiny (ATtiny13). Тактирование микроконтроллера оставлено на заводской установке (1,2 МГц. Фьюзы менять не нужно).
Схема датчика:
1.png
1.png [ 30.73 КБ | Просмотров: 6285 ]

Алгоритм работы датчика движения довольно прост. МК формирует импульс на вывод «Trig» дальномера HC-SR04. Дальномер в свою очередь, производит «замер расстояния» и результат о расстоянии формирует на своём выводе «Echo». Микроконтроллер считывает данный результат и на его основании формирует сигнал присутствия. Период формирования импульсов на вывод «Trig» составляет 68 мс. Расстояние на которое реагирует датчик устанавливается константой «Distance». В данной программе выбрано расстояние примерно 70 см. Значение константы при этом равно 180, которое и соответствует данному расстоянию.
Теперь немного подробнее о выборе константы для расстояния, на которое датчик будет реагировать. В данном алгоритме опрос вывода «Echo» дальномера HC-SR04 производится в прерывании по переполнению таймер-счётчика. Константа «Distance» записывается в регистр TCNT0 данного таймер-счётчика. Которая и влияет на период времени формирования очередного прерывания по переполнению регистра TCNT0 таймер-счётчика. Таким образом, чем больше значение константы «Distance», тем меньше расстояние реагирования датчиком. Константа равная значению 250 будет примерно соответствовать реагированию датчиком на расстояние в 5 см. Соответственно 240 будет соответствовать реагированию датчиком на расстояние в 15 см и тд. Значение константы равное нулю, будет соответствовать максимальному расстоянию реагирования датчиком. Оно составит примерно 235 см.
Сигнал реагирования на выходе МК формируется без задержек. А вот сброс данного сигнала имеет задержку около 2 сек.
Зелёный светодиод является индикатором выходного сигнала (дублирует выходной сигнал).

Исходник и схема в архиве.
HC-SR04 Tiny13.zip [12.17 КБ]
Скачиваний: 981

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/