Как получить информацию о том, что что-то, подключенное к Arduino, работает?

Предположим, у вас есть плата Arduino Uno, к плате подключены какие-то датчики, возможно, шаговый двигатель или что-то в этом роде, это не имеет значения.

Как получить обратную связь или диагностику или что-то еще, что все работает, а если нет, то получить обратную связь, которая не работает?

, 👍0

Обсуждение

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

с помощью датчиков вы можете проверить, находятся ли значения в ожидаемом диапазоне, @Juraj

движущиеся части можно контролировать с помощью оптических или электромагнитных датчиков., @Juraj

для Ардуино нет ничего особенного. это обычная конструкция системы, @Juraj

ОП спросил, как предоставить отзыв о наличии или отсутствии проблемы, а не о том, как ее диагностировать. Это довольно просто, и я был бы рад предложить ответ, если бы это было снова открыто. Голосование за это...., @JRobert

Спасибо всем за комментарии, удачного дня, думаю, я понял :D, @Ivanh23


2 ответа


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

1

В микроконтроллерах не существует общего средства обнаружения ошибок, как и в случае с Arduino. Проблемы могут возникнуть во многих моментах, в зависимости от того, как работает ваш проект. Представьте себе датчик, подключенный по какой-то сетевой шине; может выйти из строя не только сам датчик, но и сетевая шина, так что вы больше не сможете подключиться к датчику. Кроме того, Arduino не имеет возможности сообщать вам об ошибках, которых вы не ожидали в своем скетче (как это делают файлы журналов на ПК). Так что на этот вопрос нет одного ответа. Вот некоторые возможности (некоторые из них уже описаны в предыдущих ответах):

  • Проверьте вывод библиотечных функций на наличие сообщений об ошибках. Многие (но не все) библиотеки возвращают коды состояния своих важных функций. Например: функция Wire.endTransmission() вернет код состояния, с помощью которого вы сможете определить, прошла ли передача успешно и что могло пойти не так.
  • Проверьте датчики на предмет ожидаемых значений. Если значения выходят за пределы диапазона (например, температура -20 °C, где вы ожидаете комнатную температуру), вы можете быть уверены, что с датчиком что-то не так (при условии, что раньше он работал правильно).
  • Добавьте датчики в свой проект, чтобы определить, работает ли он должным образом, и запрограммируйте Arduino на выполнение соответствующих действий в случае сбоя (например, подачу сигнала тревоги)

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

,

1

Чтобы расширить ответы Юрая, рассмотрите этот вопрос с точки зрения пользователя. Что для них означает все работает? Должна ли температура, которую вы считываете с датчика, находиться в пределах 0,2°С от эталонного значения? Степпер должен переместить предмет из определенной позиции A в B?

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

,