Подключение нагрузочного комбинатора к HX711, а затем к Arduino

Я студент, и мой проект заключается в создании весов с использованием датчиков нагрузки 50 кг (x4) с усилителями HX711, комбинатором нагрузки и Arduino UNO. Я подключил комбинатор нагрузки и HX711 на основе рисунка ниже:

connection of load combinator to hx711

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

, 👍1

Обсуждение

Как вы подключили его к Arduino? Какой код *вы используете? Как подключены остальные контакты на плате моста?, @Majenko

часть вашего школьного обучения-это то, как проводить исследования. ... я не думаю, что исследование-это просьба к кому-то дать вам ответ., @jsotola


2 ответа


1

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

Итак, первый шаг-выяснить цветовую маркировку ваших тензодатчиков. Предполагая, что это "обычные" дешевые 3-проводные, внутренне они выглядят так:

schematic

Вам нужно идентифицировать эти провода на ваших сотовых телефонах. С этого момента мы будем называть их +, C и - (в таком порядке).

Идея состоит в том, что вы обеспечиваете питание от + до -, и из C выходит различное напряжение в зависимости от применяемой нагрузки. Большая нагрузка означает более низкое напряжение, так как R1 и R2 образуют простой делитель потенциала.

Однако этого недостаточно для получения хороших результатов - перепады напряжений слишком малы. Поэтому они обычно используются как часть моста Уитстоун. Это позволяет обнаруживать гораздо меньшую дисперсию напряжения.

Мост Уитстоуна создается советом комбинаторов. Он делает это путем объединения отдельных частей отдельных ячеек вместе, образуя всего два тензодатчика вместе со статическими сопротивлениями. Вот в какой форме создается мост Уитстоуна:

schematic

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

Теперь вы можете увидеть, как вы могли бы протестировать комбинатор, чтобы убедиться, что он дает правильные результаты. Подайте напряжение между E+ и E- (скажем, 5 В) и измерьте напряжение между A+ и A-. Надавите на тензодатчики (все сразу) и понаблюдайте за изменением напряжения между A+ и A-.

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

В HX711 используется цифровой последовательный протокол. У Sparkfun есть программное обеспечение, которое использует этот протокол для любой пары выводов ввода-вывода, которые вы выберете. В том, какие контакты выбраны, нет ничего особенного - можно использовать любые два. Так что, пока у вас есть +5 В, GND и два штифта для передачи данных, подключенные к Arduino, мало что может пойти не так.

Так что тогда остается программное обеспечение. Самая большая ошибка, которую часто совершают люди, заключается в том, что они не сообщают программному обеспечению, какие контакты используются для последовательной связи. Или указывать неправильные контакты - например, перепутать контакты часов и данных. Это будет первый порт вызова для проверки программного обеспечения. Убедитесь, что у вас указаны правильные контакты. Я не могу сказать, как вы это делаете, не видя своего программного обеспечения, но у Sparkfun есть несколько примеров программного обеспечения (прокрутите вниз до нижней части страницы), которое просто использует пару макросов #define для указания контактов.

,

Эти дешевые тензодатчики-полумосты. Приклеенный тензометр имеет накладку с двумя переменными резисторами-тензометрами на центральной планке диска. Очень похоже https://www.omega.com/en-us/force-strain-measurement/strain-gauges/dual-parallel-strain-gauges/p/SGT-Half-Bridge-Uniaxial Когда диск опирается на кольцо и нагружается на заклепки на E на фотографиях OP, центральная планка изгибается, как сигмовидная функция, один датчик сжимается, а другой расширяется. Они соответствуют сопротивлениям датчиков, печатая их по той же технологии. R1,3,7,8 не являются постоянными, но изменяются в противоположность R2,4,5,6, @Dave X


0

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

Изначально подключение весов было основано на этом: Connection of Arduino to Load cells

Однако после долгих исследований я решил попробовать комбинатор нагрузки и использовать его для подключения всех 4 датчиков нагрузки, чтобы сформировать мост Уитстоуна, который затем подключится к Arduino. Таким образом, по сути, комбинатор нагрузки-это всего лишь еще один дополнительный компонент.

Что касается моих кодов, то это выглядит так:

#include <hx711.h>
#define DOUT 3
#define CLK 2

Hx711 scale(3,2);

int count=0;

float sum=0;
float value;
float avg=0;
float offset;
float toffset;

int count2;

float V;
float VT;
float total;
int t;
float foffset;

void setup() 
{
  Serial.begin(9600);
  Serial.println("HX711 Test");
}

void loop()  
{
  for(count=0;count<10;count++)
  {
    value = (scale.getGram()*0.07);
    sum = sum + value;
  }
        toffset = +(sum / 10);
         Serial.print("Offset: ");
        Serial.print(toffset, 1);
        Serial.println(" kg");

        Serial.println("Please stand on the plate and do not remove both of your legs.");
        delay(4000);

  for(count2=0;count2<10;count2++)
  {
    V= (scale.getGram()*0.07);
    total=total+ V;
  }

  VT=(total/10);
  Serial.print("Average Weight: ");
  Serial.print(VT, 1);
  Serial.println(" kg");

   if(foffset= -toffset)
   {
    Serial.print("Final Weight: ");
    Serial.print(((VT+foffset)*-1), 1);
    Serial.println(" kg");
   }
 else 
  {
    if(foffset=toffset)
   {
    Serial.print("Final Weight: ");
    Serial.print((VT-foffset), 1);
    Serial.println(" kg");
   }
 }
 Serial.end();
}
,

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