Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Датчики и периферия » Опыт работы с HC-SR501


Опыт работы с HC-SR501

Сообщений 1 страница 13 из 13

1

Всех приветствую!
Немного решил поэкспериментировать с PIR сенсором HC-SR501
Что имеем:
1х HC-SR501
1х mega32
Питание +5В
Подключил к HC-SR501 VCC и GND, OUT с сенсора подключил к PORTD.3 на PORTB.1 атмеги повесил светодиод.
Задача:
зафиксировал датчик движение - горит светодиод, движение пропало - светодиод потух и т.д.
Сейчас в мегу залито следующее

Код:
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 40
$swstack = 16
$framesize = 32

Config Portb.1 = Output
Do
Config Debounce = 10
Config Portd.3 = Input
Set Portd.3                                                 
If Pind.3 = 1 Then Portb.1 = 1 Else Portb.1 = 0
Waitms 100
Reset Portd.3
Loop
End


Перемычка на PIR сенсоре стоит в положении "Н"
Подстроечник отвечающий за задержку вывернут против часовой стрелки на максимум что соответствует минимальной задержке.
Подстроечник регулировки дистанции обнаружения (чувствительности) вывернут так же против часовой стрелки практически на максимум, где то на 2/3.

Вроде бы все работает, но как то странно.
Сижу перед сенсором, дернулся, светодиод зажегся, движение прекратилось но он продолжает гореть от 5 до 10 секунд, движения нет, так же если сразу же после потухания светодиода появляется движение то ничего не просиходит, если подождать секунд 7 и подвигаться перед сенсором, то светодиод зажигается и горит от 5 до 10 секунд в независимости от наличия движения.
Че то вроде как то не так.

Я хотел увидеть следующее, есть движение светодиод гороит, движение прекратилось светодиод потух, появилось - зажегся и т.д.

В чем может быть проблема? Как сделать так чтобы светодиод вспыхивал только при наличии движения и тут же тух при его прекращении и так далее.

Может с кодом что?

Заранее всем благодарен!

0

2

Пауза между включением-выключением примерно 3-5 сек.
В это время он вообще ни на что не реагирует.
Переключатся быстрее он не будет.

Может эти строки нужно вынести из цикла Do-Loop  ;)
Config Debounce = 10
Config Portd.3 = Input

+1

3

pavel1969 написал(а):

Может эти строки нужно вынести из цикла Do-Loop 
Config Debounce = 10
Config Portd.3 = Input

Спасибо, попробую  :flag:

0

4

Вынес за цикл, в принципе ничего не изменилось, не, ну я согласен, так гораздо правильнее.
Датчик срабатывает, светодиод горит 5-10 секунд (независимо есть движение или нет), тухнет, после потухания так же какая то пауза в плане срабатывания, как только светодиод потух, появляется движение перед ним, он не срабатывает, по истечению 5-10 секунд при наличии движения срабатывает.

Если делать паузы меду движениями и включением выключением светодиода, то вроде как бы все ок, т.е. запитали, появилось движение, светодиод зажегся на 5-10 секунд, пропало движение, прошло время от 5-10 секунд, опять появилось движение светодиод тут же зажигается.
Такое ощущение что какое то восстановление датчика есть или что то в этом духе.
Я хотел просто видеть реакцию на движение, есть движение - горит, нет - потух, появилось опять зажегся, но что то как то этого добиться не могу.
Может я что то не так делаю? Или датчик как то иначе работает?

0

5

pavel1969 написал(а):

Пауза между включением-выключением примерно 3-5 сек.
В это время он вообще ни на что не реагирует.
Переключатся быстрее он не будет.

Что то я как то не много неверно в первый раз прочитал это, точнее понял не так.
А как то избавится от этого интервала можно малой кровью?

0

6

artur написал(а):

А как то избавится от этого интервала можно малой кровью?

Использовать вместо датчика движения - датчик присутствия.
Конкретно модель не скажу, но в готовых устройствах они есть.
Эти реагируют моментально, можно охранку на них делать... ;)

+1

7

Nord написал(а):

Использовать вместо датчика движения - датчик присутствия.

А на что они реагируют, принцип их действия?

0

8

Когда-то давно я тоже покупал эти датчики.Первая партия срабатывала и выключалась быстро,а вот следующая тормозила во всю,как ваш датчик.Вместо этих датчиков можно попробовать HC-SR04.Пока препятствие находится в зоне его действия устройство будет выдавать сигнал.Здесь хорошо описано. А вот лучше,чем HC-SR501.

Отредактировано Sergik07 (2017-04-27 09:25:10)

0

9

Sergik07 написал(а):

Вместо этих датчиков можно попробовать HC-SR04

Спасибо, такие есть, но как бы больше интересен PIR ибо реагирует на перемещение как сказать теплого объекта.

0

10

artur написал(а):

А на что они реагируют, принцип их действия?

Да как в той поговорке - "Те же яйца, только вид сбоку"... ;)
Принцип работы тот же, только чувствительность и быстродействие выше.

В виде готового устройства у меня стоит в туалете уже года три.
Куплено в магазине электротоваров.
Заходишь - сразу включается.
Примерно через минуту (выдержка довольно грубо регулируется от 2 сек до 2 мин) - выключается сам.
Если находишься внутри, то хоть как-то шевелишься и выдержка продлевается.
Датчик "ловит" даже шевеление одного пальца на расстояние более 2 см.

Для срабатывания датчика движения требуется более значительное и объемное перемещение, пальца будет уже недостаточно.

Тут про них, например http://econet.ru/articles/122713-upravl … m-raznitsa

+1

11

Спасибо, изучим

0

12

Чтобы модуль не тормозил, можно заменить R12 (который идет на 6 выход микросхемы) на 100 Ом, он задает частоту общего генератора.
Также можно поменять резистор, который последовательно с подстроечником (сразу под ним) на 1 КОм, тогда минимум будет не 3 секунды, а 0,3.

Это отсюда: http://avrproject.ru/blog/modul_s_pir_d … 2-06-13-71
Можно ещё здесь посмотреть: http://digitalchip.ru/datchik-dvizheniy … r-hc-sr501

+1

13

radan написал(а):

Чтобы модуль не тормозил, можно заменить R12 (который идет на 6 выход микросхемы) на 100 Ом, он задает частоту общего генератора.
Также можно поменять резистор, который последовательно с подстроечником (сразу под ним) на 1 КОм, тогда минимум будет не 3 секунды, а 0,3.

Спасибо.

0


Вы здесь » Программирование ATMEL в BASCOM. » Датчики и периферия » Опыт работы с HC-SR501