#1 2017-09-23 19:17:33

Gelezako
Участник
Зарегистрирован: 2017-09-23
Сообщений: 2

Датчик движения перестаёт слать данные

Здравствуйте уважаемые ардуинщики. Столкнулся с проблемой, через некоторый перод времени, бывет через несколько часов, бывает через сутки, датчик движения HC-SR501 перестаёт слать данные о том что есть движение, но возможно и что сам датчик перестаёт  определять сам факт движения (апаратная проблема), но я грешу на код, потому как если перегрузить ардуинку, то всё начинает работать.

Датчик движения HC-SR501 подключён к андуино нано + Ethernet шилд, когда фиксирует движене через mqtt  шлю еденичку.

код на гитхабе, буду признателен за любую помошь в поиске бага. Спасибо

#2 2017-09-23 19:33:46

Вячеслав Азаров
Участник
Из Запорожье
Зарегистрирован: 2017-05-25
Сообщений: 406

Re: Датчик движения перестаёт слать данные

Gelezako пишет:

Здравствуйте уважаемые ардуинщики. Столкнулся с проблемой, через некоторый перод времени, бывет через несколько часов, бывает через сутки, датчик движения HC-SR501 перестаёт слать данные о том что есть движение, но возможно и что сам датчик перестаёт  определять сам факт движения (апаратная проблема), но я грешу на код, потому как если перегрузить ардуинку, то всё начинает работать.

Датчик движения HC-SR501 подключён к андуино нано + Ethernet шилд, когда фиксирует движене через mqtt  шлю еденичку.

код на гитхабе, буду признателен за любую помошь в поиске бага. Спасибо

Ардуино - играться. Не относитесь серьезно. Новый Wire вершина совершеннства, новая логика работы методов. Можно выбросить свои старые программы. А блокирующее ожидание конца теневой передачи, в endTrasmission() новая "струя" в алгоритмах. Все логично, предъявил данные драйверу и жди пока передадутся и ни смей ничего делать в это время. А вы говорите какой-то датчик виснет. Хай сами свои кладжи отлаживают. Достали.

#3 2017-09-23 19:36:49

Gelezako
Участник
Зарегистрирован: 2017-09-23
Сообщений: 2

Re: Датчик движения перестаёт слать данные

я как раз играюсь, ну судите строго smile
если вы уж отписались про Wire, я попробовал погуглить по это слову, но по нашей тематике ничего не нашёл. Что за зверь, если не сложно дайте линку. Спасибо.

#4 2017-09-23 20:42:42

alex_dol
Участник
Зарегистрирован: 2015-12-28
Сообщений: 141

Re: Датчик движения перестаёт слать данные

Датчик виснуть не может.
В коде по ссылке и светодиодик зажигается в такт движению и в ком порт пишется. Вы ничего не написали ни про светодиод ни про ком порт. Определитесь хотя бы по светодиоду - может это программа виснет, а может и Ethernet шилд чудит.

#5 2017-09-23 21:15:52

Вячеслав Азаров
Участник
Из Запорожье
Зарегистрирован: 2017-05-25
Сообщений: 406

Re: Датчик движения перестаёт слать данные

Gelezako пишет:

я как раз играюсь, ну судите строго smile
если вы уж отписались про Wire, я попробовал погуглить по это слову, но по нашей тематике ничего не нашёл. Что за зверь, если не сложно дайте линку. Спасибо.

Этот "зверь", типа, стандартная библиотека. /home/master/Programs/arduino-1.8.4/hardware/arduino/avr/libraries/Wire/  У вас может быть в другом месте. Но нанчиная с /arduino-1.8.4/... идентично. К Ethernet она не имеет отношения, это Ардуино в чистом виде.

Редактировался Вячеслав Азаров (2017-09-23 21:16:31)

#6 2017-09-24 06:03:13

Вячеслав Азаров
Участник
Из Запорожье
Зарегистрирован: 2017-05-25
Сообщений: 406

Re: Датчик движения перестаёт слать данные

Gelezako пишет:

Здравствуйте уважаемые ардуинщики. Столкнулся с проблемой, через некоторый перод времени, бывет через несколько часов, бывает через сутки, датчик движения HC-SR501 перестаёт слать данные о том что есть движение, но возможно и что сам датчик перестаёт  определять сам факт движения (апаратная проблема), но я грешу на код, потому как если перегрузить ардуинку, то всё начинает работать.

Датчик движения HC-SR501 подключён к андуино нано + Ethernet шилд, когда фиксирует движене через mqtt  шлю еденичку.

код на гитхабе, буду признателен за любую помошь в поиске бага. Спасибо

Востановление работоспособности после перезагрузки, не обязательно указывает не дефект в коде. Причина сбоев может быть какая угодно, от банальной ошибки в программе до электромагнитных помех и радиоактивности. Если причину сбоев устранить не получается, применяют "вотчдог" - таймер перезапуска. Отказ компьютера, в подавляющем большинстве случаев, приводит к "зависанию", которое представляет собой некоторый бесконечный паразитный цикл комманд. При этом нарушается периодическая переустановка вотчдога, время истекает и осуществляется автоматический аппаратный ресет. Однако стопроцентной гарантии нет, в паразитный цикл может попать процедура сброса самого вотчдога, поэтому в более развитых системах применяют оконные вотчдоги. Существую и другие, более сложные, методы обеспечения устойчивости к сбоям, например контроль четности и защита памяти от записи, но они на вашей Ардуине недоступны.

Редактировался Вячеслав Азаров (2017-09-24 07:43:00)

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела