Nird_o
@Nird_o
Побил рекорд по количеству прожитых мной дней

Весы на arduino, бешенный разброс от измерения к измерению?

Доброго дня.
Есть четыре полумостовых тензодатчика.
022bf75e3fe9f86e948a15992c4faa73.jpg
Подключены по схеме к HX711:
d786666336dfb71849bf376f82b92a20.png
Скетч не сложный и вроде все понятно
#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");                               
    // выводим текст в монитор последовательного порта
}

Тут есть нормальное описание, откуда и взят скетч.
Вопрос вот в чем:
Данные приходят, но разброс от измерения к измерению от 200 гр. до 800 гр. Может кто-то собирал напольные весы на arduino? Кто-то может сталкивался?
  • Вопрос задан
  • 927 просмотров
Решения вопроса 1
Nird_o
@Nird_o Автор вопроса
Побил рекорд по количеству прожитых мной дней
В общем разобрался. Нашел статью на хабре. Где как раз про эти тензодатчики. Проблема в том, что более менее нормально измерить получается если брать среднее из большой выборки. 10-20 не вариант. В статье использовали среднюю из 1000 измерений. Получилось норм. Погрешность на 200 гр. 10-20 гр. что для моей задачи норм.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы