Пропингуйте датчик для проверки ошибок

Можно ли пропинговать датчик, например DHT22 или 18B20, для проверки связи. Я хочу выполнить проверку ошибок в void setup() и убедиться, что все датчики подключены правильно.

, 👍0


2 ответа


0

Не существует единого ответа для всех датчиков. Некоторые могут осуществлять самопроверку; в противном случае оператор может предоставить конкретную среду при запуске, которую будет проверять функция setup(). В противном случае все, что вы можете сделать, это проверить работоспособность выходных данных.

DS18b20 - однопроводной цифровой термометр Dallas/Maxim, например, имеет определенное значение сразу после сброса; вы можете проверить это, прежде чем давать команду на измерение. Или просто возьмите образец и убедитесь, что он «имеет смысл». Доступные конкретные тесты зависят от того, что реализует данный датчик.

,

1

На этот вопрос нет простого ответа «да» или «нет».

Вам необходимо проверить таблицы данных и библиотеки для выбранных вами устройств и посмотреть, что доступно. Во многих библиотеках есть функция begin(), которая может или не может возвращать информацию о том, работает ли устройство.

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

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

Для датчиков на базе I2C вы можете использовать вариант скетча I2CScanner, чтобы посмотреть, какие адреса используются, прежде чем пытаться использовать сами датчики.

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

,