En este tutorial trabajaremos con la trasmisor de celda de
carga HX711, he indicaremos todos los pasos en su conexión y programación para
armar una balanza digital o cualquier uso que lo podamos dar
Celdas De Carga
Una celda de carga es un transductor capaz de convertir una
fuerza en una señal eléctrica, esto la hace a través uno o más galgas internas
que posee, configuradas en un puente Wheatstone.
Existen diversos tipos de Celdas de carga, en diversos
modelos, el que utilizaremos para este tutorial es el que se muestra en la
imagen. Usaremos una celda
de carga de 5Kg que es el valor máximo que puede sensar, pero el
tutorial también aplica a celdas
de 20Kg y otros modelos.
Este módulo es una interface entre las celdas de carga y el
microcontrolador, permitiendo poder leer el peso de manera sencilla.
Internamente se encarga de la lectura del puente wheatstone formado por la
celda de carga, convirtiendo la lectura analógica a digital con su conversor
A/D interno de 24 bits.
Es muy utilizado en procesos industriales, sistemas de
medición automatizada e industria médica.
Se comunica con el microcontrolador mediante 2 pines (Clock
y Data) de forma serial.
Para instalar la celda de carga hay que hacerlo con
separadores, los cuales deben de distanciar a la base y recipiente de la celda
para que la parte central quede libre; además hay que tener en cuenta que el
sentido de la flecha indica la dirección de la fuerza o peso a aplicar
La siguiente figura muestra un ejemplo de cómo instalar la
celda de carga, pero dependerá de su aplicación para hacer las variaciones
necesarias
Conexiones entre la Celda de carga, módulo HX711 y Arduino.
Conexión entre la Celda de carga y módulo HX711
Conexión entre HX711 y Arduino:
Librería HX711 para Arduino
Estamos utilizando la librería HX711 de Bogde el cual lo pueden descargar desde Github:
Una vez descargado hay que importarla a nuestro IDE de
Arduino.
Explicaremos las funciones principales de esta
librería.
HX711(byte PinData, byte PinClock)
Es el constructor del objeto HX711, se puede trabajar con
cualquiera de los pines.
void tare(byte n);
Establece el peso actual como el peso de tara, n indica
el número de lecturas que se realizan para obtener la tara, por defecto n=10;
void set_scale(float scale);
Establece el valor de la escala, que es el factor de
conversión para convertir valor de lectura en un valor con unidades de peso.
Por defecto es scale=1;
long read()
Espera hasta que el dispositivo esté listo y devuelve la
lectura del ADC del HX711
long read_average(byte n)
Realiza n veces la lectura del ADC y devuelve el
promedio
double get_value(byte n)
Devuelve el valor actual restando el peso de tara.
Equivalente a (read_average() - OFFSET) . Si se especifica un valor de n,
devuelve el promedio de n lecturas.
float get_units(byte n)
Devuelve el valor actual restado del peso de tara y dividido
por la escala. Es equivalente a (get_value()/SCALE). Si se especifica un valor
de n, devuelve el promedio de n lecturas.
Calibrando nuestra Balanza
Lo primero que se debe de hacer es calibrar, que es
básicamente hallar el valor de la escala que se usará; es decir hallar
el factor de conversión para convertir valor de lectura en un valor con
unidades de peso. La escala es diferente para cada celda y cambia de acuerdo a
la forma de instalar, al peso máximo o modelo de celda de carga, incluso así se
trate del mismo modelo de celdas no necesariamente tienen el mismo valor de
escala.
Primero necesitamos conseguir un objeto con peso conocido,
en otras palabras debemos saber el peso real del objeto. Se recomienda que el
peso conocido sea cercano al valor máximo del rango de trabajo de la celda de
carga. En nuestro caso usaremos un peso de 4Kg pues nuestra celda es de 5Kg.
El siguiente paso es cargar el siguiente Sketch a nuestro
Arduino.
#include "HX711.h" #define DOUT A1 #define CLK A0 HX711 balanza(DOUT, CLK); void setup() { Serial.begin(9600); Serial.print("Lectura del valor del ADC:t"); Serial.println(balanza.read()); Serial.println("No ponga ningun objeto sobre la balanza"); Serial.println("Destarando..."); balanza.set_scale(); //La escala por defecto es 1 balanza.tare(20); //El peso actual es considerado Tara. Serial.println("Coloque un peso conocido:"); } void loop() { Serial.print("Valor de lectura: t"); Serial.println(balanza.get_value(10),0); delay(100); }
El programa debe correr sin el peso colocado, pues al inicio
de programa calcula la tara.
Después de abrir el monitor serial y esperar para que
reste la tara, Se pone el objeto de 4Kg o el peso con el que estén
trabajando.
Después de poner el peso en la balanza, en el monitor serial
se mostraran las lecturas del peso, son lecturas sin escalar, por lo que les
deben aparecer números grandes.
Con uno o el promedio de estos datos calculamos el valor de
la escala que usaremos, para esto usaremos la siguiente formula:
El valor del peso debe estar en las unidades con las que
queremos que trabaje nuestra balanza, por ejemplo podría ser 4Kg o 4000g para
Kilogramo o gramos respectivamente.
Entonces el valor de la Escala que usaremos es:
Con este dato ya obtenido pasamos a programar el sketch que
vamos a utilizar para pesar.
Programa final para nuestra Balanza
El programa que se utilizara es similar al programa que
usamos para calibrar, con la diferencia que ya conocemos la escala.
#define DOUT A1 #define CLK A0 HX711 balanza(DOUT, CLK); void setup() { Serial.begin(9600); Serial.print("Lectura del valor del ADC:t"); Serial.println(balanza.read()); Serial.println("No ponga ningun objeto sobre la balanza"); Serial.println("Destarando..."); Serial.println("..."); balanza.set_scale(439430.25); // Establecemos la escala balanza.tare(20); //El peso actual es considerado Tara. Serial.println("Listo para pesar"); } void loop() { Serial.print("Peso:t"); Serial.print(balanza.get_units(20),3); Serial.println("kg"); delay(500); }
Como se observa en el código, es necesario encender el
Arduino antes de colocar los objetos que se desean pesar, de lo contrario el
peso que esté sobre la balanza se considerará como tara.
A continuación se muestran las lecturas agregando
sucesivamente pesos de 1Kg aproximadamente.
Precisamente buscaba este tutorial, las Celdas de Carga son lo que ando leyendo ahora mismo, muchas gracias.
ResponderBorrar