Безопасный Arduino

Я хочу прочитать RFID-тег с помощью Arduino, который управляет некоторыми реле. Это легко.

Для меня более сложной задачей является создание отказоустойчивости. Поэтому я подумал, что смогу использовать сторожевого пса. Сложность в том, что мой модуль реле должен сохранять определенное состояние (изменение состояния происходит редко), независимо от того, что происходит с Arduino.

Моей первой мыслью было поставить на реле несколько конденсаторов. Рассчитайте компонент RC так, чтобы он мог продержаться в течение времени ожидания сторожевого таймера и загрузки.

Теперь существует проблема: модуль реле сохраняет свое состояние во время загрузки. Думаю, я не смогу использовать подтягивающий/понижающий резистор, поскольку состояние реле может быть случайным: низким или высоким.

Моя вторая мысль заключалась в использовании реле с защелкой. Но у этого метода есть тот недостаток, что он, вероятно, может скрыть проблемы. Например, если Arduino умер, а реле-защелка удерживает определенное состояние, это маскирует проблему. В этом случае заметить неисправный Arduino невозможно.

  1. По этим причинам я считаю, что конденсаторы лучше?

  2. Осуществимы ли эти идеи? Есть ли более простые способы сделать это?

  3. Есть ли еще проблемы, о которых стоит подумать?

(Я уже читал о миллисе на странице gammon. Судя по всему, это не проблема.)

, 👍0

Обсуждение

Пожалуйста, объясните, почему и где вам понадобится резистор повышения/понижения., @per1234

вы противоречите сами себе в своих утверждениях.........модуль реле должен сохранять определённое состояние (изменение состояния происходит редко), что бы ни случилось с ардуино........и если ардуино умерло, а реле-защелка удерживает определенное состояние, это маскирует проблему, @jsotola

Это невозможно решить. Вы должны уметь обнаруживать все проблемы во всем. Когда провод катушки RFID рвется или замыкается, как это можно обнаружить? Детектор дыма может обнаружить дым и низкое напряжение аккумулятора. Вот и все. Чтобы сделать его надежным, необходим детектор дыма хорошего качества, который следует проверять каждый месяц (в некоторых руководствах указано: каждую неделю). Для начала вам понадобится оборудование и программное обеспечение самого высокого качества., @Jot

@jsotola: это связано с неясными требованиями. Я не был уверен в них. Подумав еще немного: я думаю, что хочу сохранить состояние только в течение определенного периода времени. Достаточно времени, чтобы ардуино восстановилось. Или же перейти в состояние по умолчанию, где ничего не происходит, и я вижу проблему. Если состояние остается бесконечным, то мне не так-то легко увидеть проблему., @duedl0r

@jot: Я думаю, единственное требование, которое у меня есть: если считыватель RFID сообщает мне, что он прочитал определенную метку, это должно быть правдой. если он потерпит неудачу, ничего не будет работать, и я смогу обнаружить проблему. Я думаю, что с помощью временной фиксации я смогу перейти в состояние по умолчанию, где я выключу модуль реле. Так что я надеюсь, что со мной все будет в порядке., @duedl0r


1 ответ


Лучший ответ:

2

Рассмотрите возможность ограничения вашего дизайна четкими требованиями. Поскольку маловероятно, что какая-либо конструкция сможет защитить себя в любых ситуациях.

мой модуль реле должен сохранять определенное состояние (изменение состояния происходит редко), независимо от того, что происходит с Arduino

Рассмотрим реле с фиксацией, в которых есть катушка установки и катушка сброса. Например, этот. Такое устройство не нуждается в постоянном питании. Только импульсный для установки и импульсный для сброса.

Поэтому я подумал, что могу использовать сторожевой таймер.

Сторожевые таймеры хороши, если ваша программа может застрять в ожидании события, которое может никогда не произойти. Это как ожидание чтения данных с RFID-чипа. Если вы считаете, что это может произойти, добавьте в свой дизайн сторожевой таймер.

Теперь существует проблема: модуль реле сохраняет свое состояние во время загрузки.

Большинство встроенных процессоров с двунаправленными контактами GPIO принудительно используют эти контакты в качестве входов при загрузке. Это выглядит как высокий импеданс для внешнего мира. Рассмотрите возможность использования подтягиваний вверх или вниз на этих контактах, чтобы предотвратить их переход в состояние, которое может привести к изменению состояния реле во время загрузки процессора.

,

Да, ты совершенно прав. Мои требования не ясны. Даже я в них не уверен. Хорошая точка зрения. Я думал о временной защелке. Если я перейду в состояние по умолчанию, ничего не произойдет, и я смогу обнаружить проблему. Если есть состояние, отличное от значения по умолчанию, я хочу быть уверен, что оно правильное., @duedl0r