¿Qué es el HX711?
El HX711 es un conversor analógico–digital (ADC) de 24 bits diseñado específicamente para leer señales muy pequeñas provenientes de celdas de carga y otros sensores basados en puentes Wheatstone. Su función es amplificar y digitalizar la señal para que pueda ser leída por microcontroladores como Arduino, ESP32, Raspberry Pi, etc.
Fuente:
¿Para qué sensores sirve?
El HX711 está diseñado principalmente para celdas de carga (load cells), pero también puede trabajar con cualquier sensor que funcione como puente Wheatstone, incluyendo:
- Sensores de peso (1 kg, 5 kg, 20 kg, 50 kg, etc.)
- Sensores de fuerza
- Sensores de presión
- Sensores de par
- Sensores de desplazamiento
- Sensores de aceleración
Fuente:
Precisión del HX711
Según las especificaciones:
- Resolución interna: 24 bits
- Ruido típico: permite resoluciones prácticas de ~18 a 20 bits reales dependiendo de la ganancia y velocidad
- Alta fidelidad en señales débiles, ideal para balanzas de precisión
Fuente:
Velocidad del HX711
El módulo tiene dos velocidades de muestreo:
- 10 muestras por segundo (10 SPS) → modo de alta precisión
- 80 muestras por segundo (80 SPS) → modo de alta velocidad
Fuente:
Ejemplo en Arduino (permitiendo elegir libremente el tipo de sensor)
Este ejemplo te permite seleccionar el tipo de celda o sensor simplemente cambiando un factor de calibración.
#include "HX711.h"
HX711 balanza;
// Pines del HX711
const int pinDT = 3;
const int pinSCK = 2;
// Factor de calibración (ajústalo según tu sensor)
float factorCalibracion = -7050;
// Ejemplos típicos:
// 1 kg: -450
// 5 kg: -1100
// 20 kg: -7050
// 50 kg: -22000
void setup() {
Serial.begin(9600);
balanza.begin(pinDT, pinSCK);
Serial.println("Inicializando HX711...");
balanza.set_scale(factorCalibracion);
balanza.tare(); // Pone la balanza a cero
Serial.println("Listo. Coloca peso para medir.");
}
void loop() {
float peso = balanza.get_units(5); // Promedia 5 lecturas
Serial.print("Peso: ");
Serial.print(peso);
Serial.println(" kg");
delay(200);
}
Cómo elegir el sensor:
Solo cambia el valor de factorCalibracion según tu celda de carga. Cada celda tiene su propio factor, que se obtiene calibrando con un peso conocido.