HX711 - Несогласованные показания

schematic

Электропроводка производится по схеме, представленной ниже -

(Ссылка: https://electronics.stackexchange.com/a/174580)

Я использую Arduino Mega 2560, HX711 и четыре тензодатчика для создания весов, но мне трудно откалибровать устройство. Я пробовал разные библиотеки и схемы калибровки, но ни одна из них не помогла. Я обнаружил, что необработанные значения, соответствующие любому заданному весу (включая нулевую нагрузку), не согласуются друг с другом. Во-первых, показания не оседают даже через 10 минут, и даже если я беру среднее значение, в следующий раз, когда я кладу тот же вес, я получаю совершенно другое значение, что делает последнее среднее значение бесполезным. Я вижу ошибки порядка +/- 30 фунтов, когда ставлю известный вес.

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

Затем я попробовал протестировать HX711 по-разному. В одном тесте я создал полный мост, используя резисторы, отличные от тензодатчиков, вывел мост из равновесия, но не смог прочитать ничего, кроме 16777215. Затем я хотел посмотреть, реагирует ли плата вообще на какое - либо напряжение, поэтому я удалил мост и ничего не подключал к контактам E+ и E -, но подавал известные напряжения от источника постоянного тока (от 0 до 4,5 В) на A+ и A- (GND) контакты. Теперь он читает только 8388607, независимо от того, какое напряжение я подаю. Если я подаю +5 В или +3,3 В от Arduino на контакты A+ и A- (GND) вместо источника питания постоянного тока, он считывает только 16777215.

Я не знаю, как интерпретировать это поведение. Как я могу решить эту проблему и устранить ошибку? Спасибо за вашу помощь.

Я включил схему ниже. Все четыре тензодатчика (LCS) имеют 3 провода (белый, черный и красный). Сопротивление между проводами W & B составляет около 1980 Ом, а между R & W или R & B-около 990 Ом. ПОЭТОМУ я соединил четыре LC так, как показано на схеме. Цвета проволоки были маркированы.

Код:

Код довольно прост, так как я просто читаю необработанные значения из HX711, используя следующую библиотеку HX711 : github.com/queuetue/Q2-HX711-Arduino-Library.git

#include <Q2HX711.h>

const byte hx711_data_pin = 4;
const byte hx711_clock_pin = 8;

Q2HX711 hx711(hx711_data_pin, hx711_clock_pin);

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.println(hx711.read());
  delay(500);
}

, 👍3

Обсуждение

Можете ли вы нарисовать в виде схемы или электрической схемы, как все соединено? И, пожалуйста, укажите свой код в вашем вопросе. Может быть, с одним из них что-то не так, @chrisl

Я включил их обоих в этот пост. Я думаю, что изменение значений, которое я вижу, происходит из-за остаточной деформации и гистерезиса, но не уверен в этом. Я отмечаю показания шкалы в течение последних четырех дней. Я вообще не ставил никакой нагрузки, и вот какие показания я получил - День 1: 84442XX День 2: 84447XX День 3: 84442XX День 4: 84447XX Если нулевой вес фунта соответствует 84442XX, то на днях та же самая пустая шкала начнет отсчитывать другой вес. Это проблема, которую я пытаюсь решить. Я ожидаю изменения показаний, так как HX711 является 24-битным, но то, что у меня есть, слишком высоко., @Priyesh Sharma

Если вы получаете показания на пределе HX711, (2 ^ 24 = 16777216) тензодатчики могут быть недостаточно близки к идентичным, и вам, возможно, придется смещать их ближе к нулю. У вас есть измеритель напряжения высокого разрешения, с помощью которого вы можете проверить разницу напряжений между сигналом + и сигналом-? Если он больше 10-20 мВ, вы можете добавить обрезной горшок, чтобы смещать ногу моста уитстоуна выше или ниже. // Ноль может значительно перемещаться изо дня в день в зависимости от температуры и ползучести. Большинство вариантов использования дешевых тензодатчиков / весов имеют средство обнуления их непосредственно перед использованием., @Dave X


1 ответ


1

Вот картина того, как я видел подключенные датчики. Это как у тебя?

,

Когда вы подключали ячейки непосредственно к плате, вы делали это по одной или все сразу? Объединяет ли плата значения веса или это делается с помощью датчиков/библиотеки?, @Jeff A

Привет! Спасибо за ваш ответ. Я перепробовал много и в настоящее время использую следующую библиотеку HX711 - https://github.com/queuetue/Q2-HX711-Arduino-Library.git А код просто считывает необработанные значения из АЦП с помощью hx711.read(). Если я использую полный мост из 4 тензодатчиков, я получаю постоянно меняющиеся значения, а если я подключу полный мост из одного тензодатчика и двух внешних резисторов, я прочитаю только 16777215 и ничего больше., @Priyesh Sharma

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

Мой последний совет-проверь свои связи на предмет чего бы то ни было. Посмотрите на все паяные соединения на ВСЕМ и посмотрите, сможете ли вы найти мост или что-то трогательное, чего не должно быть., @Jeff A

Спасибо, что уделили мне время. Я проверял это несколько раз. Не удалось найти никаких непреднамеренных соединений, плюс все соединения GND также хороши., @Priyesh Sharma

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

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

@PriyeshSharma. Является ли ваша схема точной по сравнению с тем, как вы ее подключили? На схемах, которые я видел, датчики подключены к конфигурации моста, вы показываете странную настройку потенциометра, которая, вероятно, приведет к странным настройкам, которые вы видите, поскольку ток будет делать дурацкие вещи, поскольку то, что у вас есть, никогда не будет сбалансировано и не покажет ничего последовательного., @Jeff A

@JeffA: Да, именно так я подключил тензодатчики. На мой взгляд, эти конкретные тензодатчики эквивалентны переменным резисторам, их сопротивления изменяются по мере приложения нагрузки и изменения деформации. Следовательно, возбуждение подается на красные провода и напряжение считывается с них (что эквивалентно стеклоочистителю потенциометра)., @Priyesh Sharma

каков номер детали ваших тензодатчиков?, @Jeff A

Купил их на Амазонке. У вас нет ни номера детали, ни спецификации. Похоже, они от производителя под названием CJRSLRB. Не уверен, являются ли они фактическим производителем или просто продавцом, называющим себя производителем., @Priyesh Sharma

Я начинаю думать, что ваш HX711 плох, @Jeff A

Каждый из дешевых товарных трехпроводных красно-бело-черных тензодатчиков имеет два тензометрических датчика, сконфигурированных в виде полумоста. При нормальных условиях нагружения один тензометрический датчик сжимается, а другой растягивается. Вы можете подключить две ячейки в виде двух полумостов и 4 тензометрических датчика, как на вашей схеме, если соедините полуэлементы белым к черному и черным к белому, чтобы убедиться, что они разбалансируются под нагрузкой, а не балансируют. Или вы можете подключить 4 ячейки к схеме Приеша с двумя тензометрическими датчиками последовательно в каждой ноге. См . https://arduinoprosto.ru/q/18698/6628, @Dave X

@PSharma, тебе когда-нибудь удавалось решить эту проблему? Если да, то как?, @stdcerr