N
N
Nird2020-10-04 19:10:10
Arduino
Nird, 2020-10-04 19:10:10

Scales on arduino, crazy spread from measurement to measurement?

Good day.
There are four half-bridge strain gauges.
022bf75e3fe9f86e948a15992c4faa73.jpg
Connected according to the scheme to the HX711:
d786666336dfb71849bf376f82b92a20.png
The sketch is not complicated and everything seems to be clear

#include "HX711.h"                                          
  // подключаем библиотеку для работы с тензодатчиком

uint8_t DOUT_PIN = 3;                                       
  // указываем вывод DOUT, к которому подключен HX711
uint8_t SCK_PIN  = 2;                                      
   // указываем вывод SCK , к которому подключен HX711

HX711 scale;                                              
    // создаём объект scale

float calibration_factor = -0.77;                            
 // вводим калибровочный коэффициент
float units;                                                
  // задаём переменную для измерений в граммах
float ounces;                                               
  // задаём переменную для измерений в унциях

void setup() {
  Serial.begin(57600);                                   
     // инициируем работу последовательного порта на скорости 9600 бод
  scale.begin(DOUT_PIN, SCK_PIN);                             // инициируем работу с датчиком
  scale.set_scale();                                      
    // выполняем измерение значения без калибровочного коэффициента
  scale.tare();                                           
    // сбрасываем значения веса на датчике в 0
  scale.set_scale(calibration_factor);                        // устанавливаем калибровочный коэффициент
}

void loop() {
  Serial.print("Reading: ");                           
       // выводим текст в монитор последовательного порта
  ounces = scale.get_units(10);                        
       // получаем значение с датчика, усреднённое по 10 измерениям
  units = ounces * 0.035274;                             
     // переводим вес из унций в граммы
  Serial.print(units);                                    
   // выводим в монитор последовательного порта вес в граммах
  Serial.println(" grams");                               
    // выводим текст в монитор последовательного порта
}

There is a normal description, where the sketch is taken from.
The question is this:
The data comes, but the spread from measurement to measurement is from 200 gr. up to 800 gr. Maybe someone assembled floor scales on arduino? Someone can come across?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
N
Nird, 2020-10-04
@Nird_o

Generally understood. Found an article on Habré. Where just about these strain gauges. The problem is that it is more or less normal to measure if you take the average of a large sample. 10-20 is not an option. The article used the average of 1000 measurements. It turned out normal. Error per 200 gr. 10-20 gr. which is normal for my task.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question