Conectar sensor de peso con HX711 Arduino

Veamos cómo conectar sensor de peso con módulo HX711 Arduino y demos un ejemplo de programa con la librería hx711.h para módulo amplificador. Una galga extensométrica o strain gauge (de la palabra latina tensus – tensión) para un Arduino convierte la tensión en una señal eléctrica. Existen varias formas de medir la deformación, pero en el caso de las balanzas electrónicas, las galgas extensométricas son las más habituales.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • sensor de peso;
  • módulo HX711;
  • pantalla LCD 16×2 i2c;
  • cables de conexion;
  • libreria HX711.h y LiquidCrystal_I2C.h

Módulo sensor de peso HX711 pinout, datasheet

El módulo sensor de presión de peso con hx711 consta del propio sensor de galgas extensométricas, integrado en un robusto diseño. El módulo HX711 de hasta 10 kg para Arduino está diseñado para amplificar la señal de la galga extensométrica y transferir los datos al microcontrolador. Una vez calibrado el módulo, se puede calcular la deformación a partir del cambio de resistencia y calcular la fuerza aplicada a la estructura (peso).

Módulo sensor de peso HX711 datasheet, pinout
Módulo sensor de peso HX711 datasheet, pinout

Características módulo HX711:

  • Alimentación: 5V
  • Consumo de corriente: menor a 10mA
  • Voltaje de entrada diferencial: ±40mV
  • Resolución conversión A/D: 24 bit (16777216 cuentas)
  • Frecuencia de lectura: 80 Hz

El elemento operativo del módulo es una galga extensométrica (un alambre sobre un sustrato flexible) que se adhiere al objeto que se está midiendo. Cuando se deforma, la resistencia de la resistencia cambia y la señal cambia en consecuencia. Si calibras el módulo y montas un diseño de balanza fiable, puedes conseguir una buena precisión. Tenga en cuenta que el sensor puede diseñarse para distintos pesos, a partir de 2 kg.

Conectar módulo HX711 Arduino de sensor de peso

Conexión módulo de sensor de peso HX711 Arduino
Conexión módulo de sensor de peso HX711 Arduino

Después de montar la escala en el Arduino, es necesario calibrar la galga extensométrica. Conecta el detector al módulo HX711 según el diagrama mostrado arriba, y el propio módulo debe conectarse a la placa Arduino. Los puertos DT y SCK pueden conectarse a cualquier puerto digital del microcontrolador (nosotros hemos utilizado los puertos 2 y 3). Después de montar el circuito, carga el código de calibración del detector en Arduino.

Programa Arduino para calibración sensor de peso

#include "HX711.h"
HX711 scale(2, 3); // DT, CLK                        

float calibration_factor = -3.7;
float units;
float ounces;

void setup() {
   Serial.begin(9600);
   Serial.println("HX711 calibration sketch");
   Serial.println("Remove all weight from scale");
   Serial.println("Press + or a to increase calibration factor");
   Serial.println("Press - or z to decrease calibration factor");

   scale.set_scale();
   scale.tare();

   long zero_factor = scale.read_average();
   Serial.print("Zero factor: ");
   Serial.println(zero_factor);
}

void loop() {
   scale.set_scale(calibration_factor);

   Serial.print("Reading: ");
   units = scale.get_units(), 10;
   if (units < 0) { units = 0.00; }
   ounces = units * 0.035274;

   Serial.print(ounces);
   Serial.print(" grams"); 
   Serial.print(" calibration_factor: ");
   Serial.print(calibration_factor);
   Serial.println();

   if (Serial.available())
   {
       char temp = Serial.read();
       if (temp == '+' || temp == 'a')
          calibration_factor += 1;
       else if (temp == '-' || temp == 'z')
          calibration_factor -= 1;
   }
}

Explicación del código para calibración detector de peso:

  1. el puerto serie mostrará el factor de corrección que se utilizará posteriormente en el funcionamiento del detector de peso hx711 Arduino;
  2. si es necesario ajustar el coeficiente, envíe un «+» o un «-» a la placa Arduino.

Conectar módulo célula de carga hx711 Arduino

Conexión módulo célula de carga hx711 Arduino
Conexión módulo célula de carga hx711 Arduino
LCD 1602 i2c Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VCC 5V 5V 5V
SDA A4 A4 20
SCL A5 A5 21

El sensor requerirá la invención y el montaje de un modelo a escala, y necesitarás una escala para comparar los datos del módulo con una referencia. Hay agujeros roscados en el sensor para montar las escalas en el placa Arduino Uno. La parte principal del módulo detector de presión de peso (ver imagen superior) es un convertidor analógico-digital de 24 bits para básculas, el chip HX711, al que se conecta la celda de carga hx711.

Programa Arduino para célula de carga hx711

#include "Wire.h"
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C LCD(0x27,16,2);

#include "HX711.h"
HX711 scale(2, 3); // DT, CLK                        

float calibration_factor = -3.7;
float units;
float ounces;

void setup() {
   Serial.begin(9600);

   LCD.init();
   LCD.backlight();

   scale.set_scale();
   scale.tare();
   scale.set_scale(calibration_factor);
}

void loop() { 
   Serial.print("Reading: ");
  
   for(int i=0; i<10; i++) { units =+ scale.get_units(), 10; } 
   units / 10;
   ounces = units * 0.035274;
   Serial.print(ounces);
   Serial.print(" grams");  
   Serial.println();

   LCD.setCursor(0, 0);
   LCD.print(ounces);
   LCD.print(" grams");

}

Explicación del código para célula de carga Arduino:

  1. utilizando el factor de corrección del primer programa, su balanza debería dar una lectura bastante precisa en gramos.

Conclusión. Este módulo utiliza el convertidor AD de precisión de 24 bits hx711. Está diseñado específicamente para el diseño de balanzas electrónicas de alta precisión con dos canales de entrada analógica, integración interna de amplificador de ganancia programable 128 veces. El circuito de entrada puede ser configurado para proporcionar una presión de tipo puente (como el modo de presión de la célula de carga) es de alta precisión.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *