Зависает Arduino самопроизвольно

Ответить
belokuriha
Рядовой
Сообщения: 84
Зарегистрирован: 10 мар 2020, 11:35
Имя: Алексей

Зависает Arduino самопроизвольно

Сообщение belokuriha »

День добрый. Собственно вопрос , как решить проблему зависания ардуино ? Знаю что тут много таких тем , но проблема самопроизвольная , коммутации по реле и мощных нагрузок пока нет , т.е это проект ворот , что я тут выкладывал .
Сначала думал что нехватка питания , т.к когда отлаживал проект GSM модуль был ближе к базовой станции и сигнал был -53dbm , сейчас же сигнал стал -89 -90 , но просадки по питанию я не увидел , попробую еще переделать отдельное питание на GSM модуль , но не думаю что проблема в этом.

Собственно , после включения может работать хоть день , а может и минут 15 отработать , и наглухо зависнуть .
Serg_Grn
Лейтенант
Сообщения: 338
Зарегистрирован: 11 фев 2018, 13:07
Имя: Сергей
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Зависает Arduino самопроизвольно

Сообщение Serg_Grn »

Причин зависания может быть масса. Без полной информации - схемы, обвязки, питания и т.д. Вам вряд ли помогут.

От себя могу сказать, без сторожевого таймера надёжное устройство построить невозможно.
https://flprog.ru/uchebnyj-centr/articl ... ntrollera/
belokuriha
Рядовой
Сообщения: 84
Зарегистрирован: 10 мар 2020, 11:35
Имя: Алексей

Зависает Arduino самопроизвольно

Сообщение belokuriha »

Проект прикрепил , питание с импульсного БП , но пробовал питать от акб .

В самой UNO есть сторожевой пес ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Serg_Grn
Лейтенант
Сообщения: 338
Зарегистрирован: 11 фев 2018, 13:07
Имя: Сергей
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Зависает Arduino самопроизвольно

Сообщение Serg_Grn »

belokuriha писал(а): 17 фев 2021, 10:17 В самой UNO есть сторожевой пес ?
Его нет нигде. Для чего я и дал ссылку.
belokuriha
Рядовой
Сообщения: 84
Зарегистрирован: 10 мар 2020, 11:35
Имя: Алексей

Зависает Arduino самопроизвольно

Сообщение belokuriha »

Serg_Grn писал(а): 17 фев 2021, 10:35
belokuriha писал(а): 17 фев 2021, 10:17 В самой UNO есть сторожевой пес ?
Его нет нигде. Для чего я и дал ссылку.
https://habr.com/ru/post/189744/ а как же это ? получается просто другой загрузчик . Или же он не работает ?
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Зависает Arduino самопроизвольно

Сообщение RedSky »

На уно работает. Другие 328е можно прошить как уно. На форуме есть блок с выбором времени. Если есть лисплей 1602 или подобный время ставить 1 сек или более.
Serg_Grn
Лейтенант
Сообщения: 338
Зарегистрирован: 11 фев 2018, 13:07
Имя: Сергей
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Зависает Arduino самопроизвольно

Сообщение Serg_Grn »

belokuriha писал(а): 17 фев 2021, 10:50 а как же это ? получается просто другой загрузчик . Или же он не работает ?
Встроенный watchdog - это не watchdog :)
Я не сильно владею теорией, но из практики могу сказать, что это не работает. Или работает, но не так как надо.
Хочешь гарантированный контроль зависания - делай внешний таймер.
Кстати, на промышленных контроллерах и всяких электронных устройствах на мк, таймеры внешние.
KulibinOrsk
Лейтенант
Сообщения: 516
Зарегистрирован: 25 фев 2018, 08:48
Откуда: Оренбург
Имя: Александр

Зависает Arduino самопроизвольно

Сообщение KulibinOrsk »

[ref]belokuriha[/ref], вы схему бы выложили и не было бы гадания.
У меня ни на одном из штук 30 контроллеров не было зависания за 10 лет ! Но вот в прошлом году сделал проект с дисплеем на I2C и ... был в шоке. Потом конечно прояснил в чем дело, да да именно в наводках по I2C.
Давайте схему, а уж потом все гадалки.
Кстати по датчику снега что то решили? Кто победил в лотерее по предложению датчика ?
belokuriha
Рядовой
Сообщения: 84
Зарегистрирован: 10 мар 2020, 11:35
Имя: Алексей

Зависает Arduino самопроизвольно

Сообщение belokuriha »

KulibinOrsk писал(а): 17 фев 2021, 12:21 [ref]belokuriha[/ref], вы схему бы выложили и не было бы гадания.
У меня ни на одном из штук 30 контроллеров не было зависания за 10 лет ! Но вот в прошлом году сделал проект с дисплеем на I2C и ... был в шоке. Потом конечно прояснил в чем дело, да да именно в наводках по I2C.
Давайте схему, а уж потом все гадалки.
Кстати по датчику снега что то решили? Кто победил в лотерее по предложению датчика ?
Проект прикрепил , а что еще надо ?
По датчику пока времени нет проверить .. Обязательно отпишусь в тему .
AndrejK
Сержант
Сообщения: 120
Зарегистрирован: 20 фев 2020, 13:16
Откуда: Вильнюс
Имя: Андрей

Зависает Arduino самопроизвольно

Сообщение AndrejK »

Попробуйте так:
void setup()
{
asm ("wdr"); сброс таймера WD.

код

WDTCSR = (1 << WDCE) | (1 << WDE);
WDTCSR = (1 << WDE) | (0 << WDIE); // на 16 мс бездействия void loop. Если в цикле много delay, то меняем биты регистров, чем изменям время дежурства с 16 мс до 8000 мс.

void loop() {

asm ("wdr"); если за 16 мс таймер WD не сбросится, то перезагрузка МК.

код

}
belokuriha
Рядовой
Сообщения: 84
Зарегистрирован: 10 мар 2020, 11:35
Имя: Алексей

Зависает Arduino самопроизвольно

Сообщение belokuriha »

AndrejK писал(а): 17 фев 2021, 12:52 Попробуйте так:
void setup()
{
asm ("wdr"); сброс таймера WD.

код

WDTCSR = (1 << WDCE) | (1 << WDE);
WDTCSR = (1 << WDE) | (0 << WDIE); // на 16 мс бездействия void loop. Если в цикле много delay, то меняем биты регистров, чем изменям время дежурства с 16 мс до 8000 мс.

void loop() {

asm ("wdr"); если за 16 мс таймер WD не сбросится, то перезагрузка МК.

код

}
Это я так понял надо добавить в тело моего кода ?
Serg_Grn
Лейтенант
Сообщения: 338
Зарегистрирован: 11 фев 2018, 13:07
Имя: Сергей
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Зависает Arduino самопроизвольно

Сообщение Serg_Grn »

KulibinOrsk писал(а): 17 фев 2021, 12:21 У меня ни на одном из штук 30 контроллеров не было зависания за 10 лет !
Это при работе нон стоп 24/7 и без внешнего таймера?
Чудеса... :)
Аватара пользователя
BormanYA
Рядовой
Сообщения: 95
Зарегистрирован: 10 янв 2018, 18:07
Откуда: Дмитров
Имя: Михаил
Благодарил (а): 2 раза

Зависает Arduino самопроизвольно

Сообщение BormanYA »

belokuriha писал(а): 17 фев 2021, 09:21 сейчас же сигнал стал -89 -90
Про наводки от GSM модуля не думал? Ну там коаксиалом отвести антенну в сторону от МК, один из вариантов. Чем ниже сигнал, тем больше мощность по ВЧ выдаёт модуль. В кратце из опыта, этого достаточно чтобы завесить МК.
AndrejK
Сержант
Сообщения: 120
Зарегистрирован: 20 фев 2020, 13:16
Откуда: Вильнюс
Имя: Андрей

Зависает Arduino самопроизвольно

Сообщение AndrejK »

Глянул ваш проект. Переделал сторожа на 8 секунд. Так, как delay в loope больше 8 сек., а таймер перезагрузки настроен на максимальные 8 сек, то каждые 8 сек. МК будет перезагружаться: LED загорится и через 0,5 сек. погаснет, через 8 сек опять загорится и т.д.

void setup() {

pinMode(13, OUTPUT);
digitalWrite(13, 1);
delay (500);
digitalWrite(13, 0);


asm("wdr");
WDTCSR |= (1 << WDCE) | (1 << WDE);
WDTCSR |= (1<<WDP3)|(1<< WDP0); 8000 ms

}

void loop() {

asm("wdr");
delay (10000);

}
belokuriha
Рядовой
Сообщения: 84
Зарегистрирован: 10 мар 2020, 11:35
Имя: Алексей

Зависает Arduino самопроизвольно

Сообщение belokuriha »

BormanYA писал(а): 17 фев 2021, 19:04
belokuriha писал(а): 17 фев 2021, 09:21 сейчас же сигнал стал -89 -90
Про наводки от GSM модуля не думал? Ну там коаксиалом отвести антенну в сторону от МК, один из вариантов. Чем ниже сигнал, тем больше мощность по ВЧ выдаёт модуль. В кратце из опыта, этого достаточно чтобы завесить МК.
Вот как вариант , такое я думал , т.к мощность увеличилось , идет излучение больше. Вынесу антенну на улицу , дальше от I2c шины.
Ответить

Вернуться в «Помогите, а то я "нимагу"»

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

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