HX711 спорадические неправильные значения

Я соединяю HX711 с Arduino, чтобы измерить нагрузку на что-то. Однако в моем проекте мне нужно постоянно следить за нагрузкой.

В большинстве случаев я получаю довольно точные значения, однако иногда я внезапно получаю ненужное значение. Например, я вызываю функцию веса каждые 3 секунды и помещаю груз весом 10 кг, вот что я получаю. 17.25 вызывает озабоченность.

10.04, 10.03, 17.25, 10.04, 10.03, 10.03

Я использую библиотеку HX711, и моя функция процесса представляет собой простой вызов, как показано ниже.

float Processweight()
{
  Serial.print(scale.get_units(40), 2);

  scale.power_down();              // перевести АЦП в спящий режим
  delay(500);
  scale.power_up();
}

Есть что-то, чего не хватает? Что может привести к неверным значениям?

, 👍2

Обсуждение

На самом деле отладка, которая потребует подробного изучения кода и схемы. Если вам не нужны быстрые ответы, вы можете попробовать фильтр; не то, что *усредняет*, а то, что отвергает быстрые изменения. Также имейте в виду, что в вашем приложении поведение тензодатчика называется «ползучестью»., @Chris Stratton

Спасибо, Крис, я попробую написать корреляцию, чтобы отклонить внезапные изменения. Однако мне было любопытно понять, есть ли такие проблемы у самого HX 711. Я обязательно воспользуюсь фильтрацией, если буду уверен, что все остальное сделал правильно., @shankar narayan


2 ответа


2

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

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

Например, я вызываю функцию веса каждые 3 секунды

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

Я довольно часто использовал эту плату, и если не считать ее темпа, она довольно надежна. вы можете увидеть здесь: https://dannyelectronics.wordpress.com/2015/ 10/25/a-hx711-на основе миллиомметра/

когда все сделано правильно (и в условиях постоянной температуры), получается очень хорошая консистенция.

,

Большое спасибо Дэнни за вклад. проверю так же., @shankar narayan


1

Наконец-то я добился этого, добавив код, который проверяет, достаточно ли близки 5 последовательных значений, и только затем отвечаю. Таким образом, я смог избавиться от внезапных изменений. Тем не менее, я до сих пор не уверен, что вызывает этот скачок.

,

Выключение и включение питания могут быть проблемой. Вероятно, вам следует добавить некоторую задержку между включением питания и попыткой чтения. Кроме того, вы можете проверить неправильные значения и посмотреть, нет ли в них какой-либо закономерности., @Chris Stratton

Спасибо за наводку, Крис, неправильные значения не имели узнаваемой закономерности. Я попытался добавить задержку, на самом деле я полностью удалил цикл включения и выключения питания (всегда оставлял его включенным), и я все еще видел проблему., @shankar narayan