Buenas noches.
Soy nuevo en este foro y en esto de Arduino, así que espero hacer esta consulta bien.
Actualmente estoy realizando un proyecto que se trata de implementar un sistema que permita conocer la cantidad de agua que están perdiendo unas probetas dentro de un secador de madera.
Para esto opte por la utilización de una celda de carga como la que agrego al final (solo que de 20 Kg en vez de 5kg).
Las probetas pesan alrededor de 2 o 3 Kg, y requiero de una buena precisión.
La cosa es que el sensor me da errores de lectura conforme cambia la Temperatura dentro del secador ya que la barra de aluminio se dilata o se contrae con estos cambios.
Hice algunas pruebas y encontré que no solo cuenta la diferencia de temperatura inicial con la tomada cada cierto tiempo, sino también la velocidad con la que cambia.
Utilizo un Arduino MEGA y el amplificador es el Hx711.
No se se haya una forma de reducir ese error lo mas que se pueda mediante el código, o algún arreglo de dispositivos que pueda hacer. Adjunto una parte del código.
float temp=0;
float peso=0;
//Báscula
#include "HX711.h"
#define DOUT A0
#define CLK A1
HX711 balanza(DOUT, CLK);
//Reloj
#include <DS1302.h>
DS1302 rtc(2, 3, 4);
//Sensor Dallas
const int pinDatosDQ = 46;
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWireObjeto(pinDatosDQ);
DallasTemperature sensorDS18B20(&oneWireObjeto);
void setup() {
Serial.begin(9600);
rtc.halt(false);
rtc.writeProtect(false);
balanza.set_scale(-106369.4267515924);
balanza.tare(20);
delay(200);
sensorDS18B20.begin();
delay (200);}
void loop() {
sensorDS18B20.requestTemperatures();
temp= sensorDS18B20.getTempCByIndex(0);
delay(100);
peso=balanza.get_units(20);
delay(100);
Serial.print("*Temperatura= "); Serial.print(temp);Serial.println(" C");
Serial.print("*Peso= "); Serial.print(peso,3);Serial.println(" Kg");
delay(1000);}
Saludos.