Как получить информацию о том, что что-то, подключенное к Arduino, работает?
Предположим, у вас есть плата Arduino Uno, к плате подключены какие-то датчики, возможно, шаговый двигатель или что-то в этом роде, это не имеет значения.
Как получить обратную связь или диагностику или что-то еще, что все работает, а если нет, то получить обратную связь, которая не работает?
@Ivanh23, 👍0
Обсуждение2 ответа
Лучший ответ:
В микроконтроллерах не существует общего средства обнаружения ошибок, как и в случае с Arduino. Проблемы могут возникнуть во многих моментах, в зависимости от того, как работает ваш проект. Представьте себе датчик, подключенный по какой-то сетевой шине; может выйти из строя не только сам датчик, но и сетевая шина, так что вы больше не сможете подключиться к датчику. Кроме того, Arduino не имеет возможности сообщать вам об ошибках, которых вы не ожидали в своем скетче (как это делают файлы журналов на ПК). Так что на этот вопрос нет одного ответа. Вот некоторые возможности (некоторые из них уже описаны в предыдущих ответах):
- Проверьте вывод библиотечных функций на наличие сообщений об ошибках. Многие (но не все) библиотеки возвращают коды состояния своих важных функций. Например: функция
Wire.endTransmission()
вернет код состояния, с помощью которого вы сможете определить, прошла ли передача успешно и что могло пойти не так. - Проверьте датчики на предмет ожидаемых значений. Если значения выходят за пределы диапазона (например, температура -20 °C, где вы ожидаете комнатную температуру), вы можете быть уверены, что с датчиком что-то не так (при условии, что раньше он работал правильно).
- Добавьте датчики в свой проект, чтобы определить, работает ли он должным образом, и запрограммируйте Arduino на выполнение соответствующих действий в случае сбоя (например, подачу сигнала тревоги)
Первые два варианта просты, третий может оказаться очень сложным и дорогим и обычно используется только в том случае, если проект действительно требует электронного обнаружения неисправности (например, для робота, который может причинить вред людям при движении в неправильном направлении). .
Чтобы расширить ответы Юрая, рассмотрите этот вопрос с точки зрения пользователя. Что для них означает все работает? Должна ли температура, которую вы считываете с датчика, находиться в пределах 0,2°С от эталонного значения? Степпер должен переместить предмет из определенной позиции A в B?
Основываясь на ответах на подобные вопросы, что представляет собой своего рода подход тестирования по принципу "черного ящика", подумайте: о том, как получить эталонные значения, затем напишите тесты в своем Arduino, чтобы проверить, выполняются ли они. Возможно, вам придется сначала перевести вашу систему на определенный этап тестирования, например переместить шаговые двигатели в определенную начальную точку, а затем приступить к тестированию.
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Все зависит от того, какие это устройства и как они работают. Например, вы можете добавить токовые шунты к соединениям двигателя и измерять ток, протекающий через двигатель., @Majenko
с помощью датчиков вы можете проверить, находятся ли значения в ожидаемом диапазоне, @Juraj
движущиеся части можно контролировать с помощью оптических или электромагнитных датчиков., @Juraj
для Ардуино нет ничего особенного. это обычная конструкция системы, @Juraj
ОП спросил, как предоставить отзыв о наличии или отсутствии проблемы, а не о том, как ее диагностировать. Это довольно просто, и я был бы рад предложить ответ, если бы это было снова открыто. Голосование за это...., @JRobert
Спасибо всем за комментарии, удачного дня, думаю, я понял :D, @Ivanh23