Подключение сторонних датчиков
- Войдите на сайт для отправки комментариев
Вс, 14/10/2018 - 12:50
Приветствую!
Прикрутил 2 датчика HC-RS501 к разным пинам UNO, для минимизации ложного страбатывания, прописал код
........... void loop() { if ( (digitalRead(SensorPIR1_PIN)==LOW)||(digitalRead(SensorPIR2_PIN)==LOW)) { Serial.println("Никого нет"); delay(2000); } ....... .//прочий коД }
Все было вроде хорошо, до поры до времени, пока оба датчика на следующий день не стали возвращать HIGH (ну или единицу), даже если движения не было и в помине. Поковырял железки и понял, что проблема именно с этими датчиками, их "заклинило" они постоянно отдают HIGH..
Вопрос в слудующем :
Возможно тли прикрутить обычный датчик объема, отдельно запитать его, а сигнал измерять через digitalRead
датчики уж слишком не надежные,
Прикрутить-то можно всё, что угодно, но не думаю, что дело в датчиках. Скороее проблема в их подключении и в прошивке. Ни то, ни другое Вы нам не показали.
Прикрутить-то можно всё, что угодно, но не думаю, что дело в датчиках. Скороее проблема в их подключении и в прошивке. Ни то, ни другое Вы нам не показали.
Собственно код ниже привден....
смотрю сейчас в сторону датчиков движения, у которых сила выходного тока до 5V ..... есть еще идея - понизить напряжение, если выше 5, дабы ардуину не спалить, а после через АЦП........
Что посоветуете?
Поковырял железки и понял, что проблема именно с этими датчиками, их "заклинило" они постоянно отдают HIGH..
Режим работы модуля задается перемычкой . Есть два режима — режим H и режим L.
Режим H — в этом режиме при срабатывании датчика несколько раз подряд на его выходе (на OUT) остается высокий логический уровень.
Режим L — в этом режиме на выходе при каждом срабатывании датчика появляется отдельный импульс
Что посоветуете?
1. Быть внимательнее и аккуратнее. Заявления типа
2. Включить вывод предупреждений компилятора
и внимательно читать о чём он Вас предупреждает.
Тогда Вы смогли бы избежать очевидных ошибок в строках №№ 20 и 41, которых вполне достаточно, чтобы у Вас ничего не работало даже при идеальном всём остальном.
у которых сила выходного тока до 5V
Это как это, а? Не находите фразу странной?
Что посоветуете?
1. Быть внимательнее и аккуратнее. Заявления типа
Конечно, этот цифровой датчик на выходе дает 3.3V....
Однако, так и не понял, возможно ли подключить lдатчик и перед подключением к ардуине понизить до необходимых 3.3 или 5??
2. Включить вывод предупреждений компилятора
и внимательно читать о чём он Вас предупреждает.
Тогда Вы смогли бы избежать очевидных ошибок в строках №№ 20 и 41, которых вполне достаточно, чтобы у Вас ничего не работало даже при идеальном всём остальном.
Спасибо, отладку чере VS проводил и по невнимательности пропустил... спсб!
Увы, нет...
вот простейший код для этого датчика
Проблема осталась - датчик возвращает 1 при любом исходе...
Хотя на том же коде еще пару дней назад было все ОК.....
1. Быть внимательнее и аккуратнее. Заявления типа
Конечно, этот цифровой датчик на выходе дает 3.3V....
Да, нет, Вы так ничего и не поняли из того, что я пытался сказать.
1. Датчик не "HC-RS501", а "HC-SR501"
2. "сила выходного тока" в вольтах не измеряется.
Это как раз небрежность в выражении своих мыслей. И программирование такой небрежности не прощает.
Однако, так и не понял, возможно ли подключить lдатчик и перед подключением к ардуине понизить до необходимых 3.3 или 5??
Я же Вам писал, что
Прикрутить-то можно всё, что угодно
чего Вы тут не поняли? Только проблема у Вас не в датчике. Чтобы что-то подключать, нужно сначала перестать измерять ток в вольтах.
На просторе интернета, наткнулся вот на такой датчик, если верить описанию - это как раз датчик присутствия
https://www.sparkfun.com/products/14349
Кто то может использовал уже такое, или может дать наводку, на датчики присуствия?
Заранее благодярен)
Awesome_T - кончайте фигней страдать. Или страдайте ей молча, не отвлекая форум :)
Ваши проблемы явно растут не из плохих датчиков, поэтому покупать другой вам смысла нет.
Ну, во-первых, по поводу Вашего "простейшего" кода. Вы бы посмотрели что он реально возвращает. Если нет осциллографа, то хотя бы analogRead используйте и посмотрите. Кроме того, Вы его даташит читали? Он может до 200 сек. помнить, что что-то видел и возвращать 1,хотя всё ужедавно исчезло.
А Ваш вопрос про датчик - ну Вы хотя бы как-то задачу обозначили. Вы же не написали ни расстояние обнаружения, ни возможность наличия препятствий, ни режима освещеённости места установки - ничего. И как Вам советовать что-то?
По мне так лучше бырать не инфракрасный, а микроволновый - ему и стенки пофиг и посторонние теполвые засветки. Например 1 или 2
Ну собственно, форму - это место для обсуждения=)
К тому же, я указал что после получения оба работали норм, сейчас возвращают 1 даже если движения нет....
Вы проверили что он реально выдаёт, как я Вамговорил? Если нет, то это не осбуждение, а трата времени. Если проверили - давайте результат сюда.
А Ваш вопрос про датчик - ну Вы хотя бы как-то задачу обозначили. Вы же не написали ни расстояние обнаружения, ни возможность наличия препятствий, ни режима освещеённости места установки - ничего. И как Вам советовать что-то?
Евгений, спасибо за ответ
Теперь о сути проблемы и зачем все это......
Хочу автоматизировать процесс уборки за своими 4хлапыми ... за кошками )))
Датчик объема нужен для обнаружения кошки внутри закрытого кошачьего туалета.
высота - 40 см длинна 50 см глубина 70см, итого общий объем 0,14м^3
внутри освещения нет, датчик ультразвуковой, наврятли подойдет, поскольку влажность может до 70% подниматься....
у датчика PIR плата под корпусом спрятать можно и обработать специальным спреем, для защиты от влаги
как то так....
с чего не применяете пассивный инфракрасный детектор с сертификатом? Хорошо работает, ошибка нет.
Ну, во-первых, по поводу Вашего "простейшего" кода. Вы бы посмотрели что он реально возвращает. Если нет осциллографа, то хотя бы analogRead используйте и посмотрите.
Вот что выдает
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
18:10:48.458 -> 665
665 шагов в среднем... если каждый шаг = 0.0049 Вольт, то напряжение 3.258 Вольта
поскольку на выходы при получении сигнала датчик выдает или практически 3.3 - это то же что и было при подключении через цифровой выход...... опять HIGH\1\3.3v
и это при том, что движения около него нет!(((((
Кроме того, Вы его даташит читали? Он может до 200 сек. помнить, что что-то видел и возвращать 1,хотя всё ужедавно исчезло.
Спсб, а можно ссылку?)
Спсб, а можно ссылку?)
https://www.mpja.com/download/31227sc.pdf - там написано и про режимы работы, и про всё остальное ;)
Перед сном, еще раз подключил, и решил опять покрутить настройки потенциометров... и о чудо...
ЗАРАБОТАЛО!!!
Я перед этим мотрел в монитор порта и в очередной раз крутил потенциометры.... по ощущениях - все сделано крайне ....... не надежно, но главное заработало))
если движения нет - 0, проводишь около датчика - 665!!
однако работает только на порте для аналогового сигнала, однако, при подключении к цифровому - опять 1!!!
Как думаете. в чем может быть проблема?
И что посоветуете на замену этим датчикам, за которые отдал аж целый 1 USD ))))
Так не бывает. Как именно Вы подключаете к цифровому? Как его конфигурируете?
Я бы ещё понял, что всегда 0, т.к. для надёжной 1 нужно 717, а у Вас только 665. Но всегда 1 - тут ошибка или подключения или конфигурации - Показывайте и то и другое.
Скетч фстудию! Порты походу неверно сконфигурированы. Да и схему включения бы глянуть, мож чего там нехорошо.
P.S. А про силу тока в 5 вольт я уж тихо промолчал. Тут летом мне показали тесты ЕГЭ по физике, так у меня волосы во всех местах зашевелились от формулировок. Такими темпами силу тока скоро будем километрами измерять.
и вот что сейчас выдает:
Digital daata= 1
Analog data= 669
Digital daata= 1
Analog data= 668
Digital daata= 1
Analog data= 669
Digital daata= 1
Analog data= 669
Digital daata= 1
ходя должен возвращать нули от обоих датчиков(
немного 0 появляется только после корректировки чувствительности, но даже когда уменьшил ее, после переподключения - такая же история(
Датчики подключены к шилду и от него же запитаны, естественно запитаны
analogRead() с одного, digitalRead() c другого... Вы с одним датчиком для начала разберитесь.
Ну, значит надо смотреть на подключение (и на шилд, если надо).
Скетч фстудию! Порты походу неверно сконфигурированы. Да и схему включения бы глянуть, мож чего там нехорошо.
Схема - тут всего же 3 компонента (Ардуино, Шилд и датчик) при этом, сам подключаю только датчик, но там ошибиться невозможно) - шилд впорядке, проверял
P.S. А про силу тока в 5 вольт я уж тихо промолчал.
И на этом спосибо, но, самому стыдно,...... хотя если лет 15 не сталкивался с електрикой - все что знал - забыл)))
Ну, если всё в порядке и не работает - надо вызывать попа и освящать. Какие ещё варианты?
Вообще, как мне помнится, этом датчику не нужна ардуина для работы. Питание ему подал и мультиметром меряй что на выходе.
Перед сном, еще раз подключил, и решил опять покрутить настройки потенциометров... и о чудо...
ЗАРАБОТАЛО!!!
Я перед этим мотрел в монитор порта и в очередной раз крутил потенциометры.... по ощущениях - все сделано крайне ....... не надежно, но главное заработало))
если движения нет - 0, проводишь около датчика - 665!!
однако работает только на порте для аналогового сигнала, однако, при подключении к цифровому - опять 1!!!
и вот что сейчас выдает:
Digital daata= 1
Analog data= 669
Digital daata= 1
Analog data= 668
Digital daata= 1
Analog data= 669
Digital daata= 1
Analog data= 669
Digital daata= 1
ходя должен возвращать нули от обоих датчиков(
немного 0 появляется только после корректировки чувствительности, но даже когда уменьшил ее, после переподключения - такая же история(
Датчики подключены к шилду и от него же запитаны, естественно запитаны
Схема - тут всего же 3 компонента (Ардуино, Шилд и датчик) при этом, сам подключаю только датчик, но там ошибиться невозможно) - шилд впорядке, проверял
Проверьте сперва датчик напрямую светодиодом без МК. И бытует мнение, что к МК их лучше подключать через транзисторный ключ. На аналоговом входе ему делать вообще нечего, он бистабильный.
Схема - тут всего же 3 компонента (Ардуино, Шилд и датчик) при этом, сам подключаю только датчик, но там ошибиться невозможно
Один компонент с двумя ножками можно неправильно подключить тремя различными способами. При увеличении количества ножек количество вариантов неверного подключения растет пропорционально факториалу. Учите комбинаторику!
ну в описании он выдает 3.3, если ни чего не путаю, вот только он должен выдавать их только когда есть движение, а не в статическом положении, тем более когда движения нет в зоне его действия((
Sensor Sheld v5.0, в него включаю, самое забавное, что проблема именно с датчиком.
Как пришел к такому выводу - подцепил попловковый уровень воды, он так же возвращает всего два значения.... - датчик запитывать не нужно, только земля и сигнал......
но сигналы приходят точно...
с его помощью код проверил и циклы переписал.... теперь вроде все работае как надо, вернее в коде проблем нет 100%,
проблема в датчике осталась, сегодня возвращаюсь к нему....
попробую в сетапе дописать, как говорили....
проверил каждый выход: и аналоговые и цифровые - везде 5V, прям как в аптеке
Один компонент с двумя ножками можно неправильно подключить тремя различными способами. При увеличении количества ножек количество вариантов неверного подключения растет пропорционально факториалу. Учите комбинаторику!
маркировка есть, к тому же с прочими датчиками такой проблемы нет......
проверил каждый выход: и аналоговые и цифровые - везде 5V, прям как в аптеке
1. Подключить на него питание.
2. Подключить к выходу OUT датчика осциллоскоп, и посмотреть на сигнал.
Осциллоскоп, имея входное сопротивление в районе 1 Мегаома, практически не будет вносить существенные искажения в сигнал датчика.
При отсутствии оного, делаем то же самое, только вместо осциллоскопа подключаем мультиметр, на диапазон более 3.3 Вольта. И смотрим на его показания при движении и без оного.
На практике, пироэлектрические датчики действительно могут выходить из строя, и показывать "погоду".
Если датчик окажется неработоспособным, то всегда есть вариант подключить типовой "объёмник" для типовой системы охранной сигнализации, там как раз пироэлектрические датчики примняются. Например датчики с сферической диаграммной напрвленности "Астра 7". Правда схема включения и питание будет другим. Можно подобрать и дешевле.
При отсутствии оного, делаем то же самое, только вместо осциллоскопа подключаем мультиметр, на диапазон более 3.3 Вольта. И смотрим на его показания при движении и без оного.
На практике, пироэлектрические датчики действительно могут выходить из строя, и показывать "погоду".
Спасибо за совет! только хотел отписаться что померил выход датчика...3,298v ПОСТОЯННО!!!!
хоть води хоть не води перед ним....
Если датчик окажется неработоспособным, то всегда есть вариант подключить типовой "объёмник" для типовой системы охранной сигнализации, там как раз пироэлектрические датчики примняются. Например датчики с сферической диаграммной напрвленности "Астра 7". Правда схема включения и питание будет другим. Можно подобрать и дешевле.
Благодарен за совет! Меня как раз долгое время мучил вопрос подключения других датчиков, от той же охранной системы, спасибо Евгению, сказал что возможно, и Вам, за наводку..
Что скажете по поводу вот этого заинтересовал, ибо это даичик Присутствия, а не движения...
Вообще, как мне помнится, этом датчику не нужна ардуина для работы. Питание ему подал и мультиметром меряй что на выходе.
Да, есть такая вероятность. С фотореле даже черные мешочки в комплект кладут для проверки. Надел ему пакет на шляпу и он ничего не видит какбэ.
А мне чудится, что экпериментатор или уже резисторы разбил до неконтакта, либо слишком торопится, при подаче питания датчику надо время на выход из коматоза. Если рядом сидеть не дергаясь, то он ничего не почует, чуть шелохнешься - сработает.
То ТС, снимите линзу, датчик прикройте чем-нибудь, подключите вольтметр, подайте питание да погуляйте минут пять. Когда вернетесь, посмотрите вольтметр, откройте датчик и зажигалкой перед ним проведите, изменится что или нет.