Перейти к блогу GetChip.net - блог        JilTE[1] - в разработке     Модификации устройств - модификации

 
Текущее время: 14 дек 2024, 18:19

Часовой пояс: UTC + 3 часа [ Летнее время ]



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Датчик движения = HC-SR04 + ATtiny13
СообщениеДобавлено: 10 дек 2017, 12:17 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Понадобился мне как-то датчик движения с конкретными характеристиками, а именно чтобы датчик движения реагировал на определённом расстоянии. И вот для этих целей решил использовать готовый модуль «ультразвуковой дальномер» HC-SR04 (благо они у меня есть в наличии).

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

Алгоритм работы датчика движения довольно прост. МК формирует импульс на вывод «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 КБ]
Скачиваний: 1937


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB