Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

HX711: Guía Completa del Convertidor ADC 24-bit para Células de Carga (Pinout, Arduino, Raspberry Pi)

El HX711 (Avia Semiconductor / HX711) es un convertidor analógico-digital (ADC) de 24 bits de precisión diseñado específicamente para básculas y células de carga (load cells). Integra amplificador de instrumentación (PGA) programable (ganancia 32, 64, 128), oscilador interno, regulador de voltaje, y interfaz serial síncrona de 2 hilos (PD_SCK, DOUT). Es el estándar de facto para pesaje digital en Arduino, Raspberry Pi, ESP32, y sistemas industriales de bajo coste. Analizamos pinout detallado (16 pines chip / 4-5 pines módulo), características, conexión a célula de carga, calibración, y proyectos prácticos.

¿Qué es el HX711?

ADC sigma-delta 24-bit con PGA diferencial de bajo ruido (ganancia 128/64 canal A, 32 canal B). Convierte la minúscula señal diferencial de una célula de carga (galga extensométrica, puente Wheatstone, salida típica 1-3 mV/V) en valor digital de 24 bits (2 complemento). Interfaz serie simple: PD_SCK (clock entrada, control power-down/ganancia) y DOUT (datos serie MSB first). No requiere programación de registros (configuración por pulsos clock). Encapsulado SOP-16. Módulos comunes: "Red PCB" (4 pines: VCC, GND, DT, SCK + bornes tornillo célula) y "Green PCB" (6 pines: añade B+/B- para 2º canal).

Pinout del Chip HX711 (SOP-16)

PinNombreFunción
1VSUPEntrada regulador interno (2.7-5.5 V). Alimenta regulador → AVDD/DVDD. Conectar a VCC externo.
2BASESalida regulador (control base transistor externo si se usa regulador externo). Normalmente NC.
3AVDDAlimentación analógica (2.6-5.5 V). Conectar a VSUP (pin 1) o fuente limpia 3.3/5 V.
4VFBRealimentación regulador. Conectar a AGND (pin 5) si no se usa regulador interno.
5AGNDTierra analógica. Conectar a GND plano PCB.
6VBGReferencia banda prohibida (bandgap) salida bypass. Condensador 0.1 µF a AGND.
7INA-Entrada diferencial negativa Canal A (PGA ganancia 128/64).
8INA+Entrada diferencial positiva Canal A.
9INB-Entrada diferencial negativa Canal B (PGA ganancia 32).
10INB+Entrada diferencial positiva Canal B.
11PD_SCKEntrada reloj serial (Schmitt trigger). Control: datos, power-down, selección ganancia/canal.
12DOUTSalida datos serial (MSB first, 24 bits + 1 bit signo/estado). Open-drain / push-pull según versión.
13XOSalida cristal / I/O digital. NC si oscilador interno.
14XIEntrada reloj externo / cristal. NC si oscilador interno (default).
15RATEControl tasa salida: Bajo = 10 SPS, Alto = 80 SPS. NC = 10 SPS (pull-down interno).
16DVDDAlimentación digital (2.6-5.5 V). Conectar a AVDD / VCC.

Pinout Módulo Común (4 pines + Bornes Tornillo)

Pin MóduloChip PinFunción
VCC1, 3, 16Alimentación 2.7-5.5 V (3.3 V o 5 V).
GND5Tierra.
DT (DOUT)12Datos serial salida.
SCK (PD_SCK)11Reloj serial entrada.
E+, E-, A+, A- (Bornes)3,5,7,8Conexión célula carga: E+/E- excitación (5 V), A+/A- señal diferencial.

Módulo Green (6 pines): Añade B+, B- (Pins 9, 10) para 2ª célula carga (Canal B, ganancia 32).

Características y Especificaciones Clave

¿Qué es una Célula de Carga (Load Cell)?

Transductor de fuerza que convierte carga mecánica (peso, tracción, compresión, torsión) en señal eléctrica diferencial (mV/V). Tipos:

Cableado 4 hilos (estándar): Rojo (E+ / Excitación +), Negro (E- / Excitación -), Blanco/Verde (S+ / Señal + / A+), Verde/Blanco (S- / Señal - / A-). 6 hilos: Añade Sense+ / Sense- para compensar caída voltaje en cables largos (conectar a E+/E- en HX711 si no hay pines Sense).

Precisión: Clase C3 (0.02% FS), C6 (0.01% FS). Efecto temperatura: < 0.002% FS/°C (cero), < 0.001% FS/°C (span).

Proyecto 1: Báscula Arduino + HX711 + Célula 5 kg

Materiales

Montaje Mecánico (Clave para Precisión)

  1. Fije un extremo de la célula (lado sin etiqueta / flecha) a base fija.
  2. Fije el otro extremo (lado etiqueta / flecha) a plato móvil.
  3. Use espaciadores rígidos entre célula y placas (arriba/abajo) para que la fuerza flexione el elemento sensor, no aplaste la placa. Sin espaciadores → lecturas erráticas, histéresis, daño.
  4. Apretado uniforme, torque moderado. Evite momentos de flexión parásitos.

Conexión Eléctrica

Hilo CélulaColor TípicoBornes HX711
Excitación +RojoE+
Excitación -NegroE-
Señal +Blanco / VerdeA+
Señal -Verde / BlancoA-

HX711 VCC → Arduino 5V, GND → GND, DT → Pin 3, SCK → Pin 2 (o pines digitales cualesquiera).

Calibración (2 Puntos – Método Profesional)

  1. Sketch calibración: Inicie sin carga → tara (offset). Coloque peso conocido (ej. 1 kg certificado) → registre lectura raw. Calcule factor = (raw_con_peso - raw_tara) / peso_conocido_gramos.
  2. Guarde offset y factor en EEPROM / Preferences / archivo config.
  3. En operación: peso = (raw - offset) / factor.
  4. Verifique linealidad con 2-3 pesos distintos. Repita si deriva > 0.1%.

Código Base (Librería HX711_ADC – Recomendada)

#include 
const int HX711_DOUT = 3;
const int HX711_SCK = 2;
HX711_ADC LoadCell(HX711_DOUT, HX711_SCK);
float calibrationFactor = 420.50; // Calibre con peso conocido
void setup() {
  Serial.begin(115200);
  LoadCell.begin();
  LoadCell.start(2000); // Estabilización 2s
  LoadCell.setCalFactor(calibrationFactor);
  // LoadCell.tareNoDelay(); // Tara automática al inicio
}
void loop() {
  LoadCell.update();
  if (LoadCell.getDataReady()) {
    float weight = LoadCell.getData(); // Gramos
    Serial.print("Peso: "); Serial.print(weight, 1); Serial.println(" g");
  }
  // Comandos serie: 't' = tara, 'c' = calibrar nuevo peso
  if (Serial.available()) {
    char c = Serial.read();
    if (c == 't') LoadCell.tareNoDelay();
    if (c == 'c') { float known; Serial.print("Peso conocido (g): "); while(!Serial.available()); known = Serial.parseFloat(); LoadCell.refreshDataSet(); LoadCell.setCalFactor((LoadCell.getData() - LoadCell.getTareOffset()) / known); }
  }
}

Proyecto 2: Báscula Digital Raspberry Pi + HX711 (Green PCB)

Materiales

Conexión HX711 Green → Raspberry Pi (3.3 V Lógica)

HX711Raspberry Pi (GPIO BCM)
VCCPin 1 (3.3 V) o Pin 4 (5 V) – Use 3.3 V para lógica 3.3 V segura
GNDPin 6 / 9 / 14 / 20 / 25 / 30 / 34 / 39 (GND)
SCKGPIO 6 (Pin 31)
DTGPIO 5 (Pin 29)

Célula carga (4 hilos) → E+, E-, A+, A- (deje B+, B- sueltos).

Software Python (RPi.GPIO / gpiozero)

import RPi.GPIO as GPIO
import time
DT = 5
SCK = 6
GPIO.setmode(GPIO.BCM)
GPIO.setup(SCK, GPIO.OUT)
GPIO.setup(DT, GPIO.IN)
def read_hx711():
    # Esperar DOUT bajo (listo)
    while GPIO.input(DT): pass
    # Leer 24 bits + 1 pulso extra para ganancia 128 (canal A)
    value = 0
    for i in range(24):
        GPIO.output(SCK, 1)
        value = (value << 1) | GPIO.input(DT)
        GPIO.output(SCK, 0)
    # 25º pulso: ganancia 128 (canal A)
    GPIO.output(SCK, 1)
    GPIO.output(SCK, 0)
    # Complemento a 2 si bit 23 = 1 (negativo)
    if value & 0x800000:
        value = -(~value & 0xFFFFFF) - 1
    return value
# Calibración manual
offset = read_hx711() # Tara
print("Tara:", offset)
input("Ponga 1 kg y pulse Enter...")
raw_1kg = read_hx711()
scale = (raw_1kg - offset) / 1000.0
print("Factor escala:", scale)
while True:
    raw = read_hx711()
    weight = (raw - offset) / scale
    print(f"Peso: {weight:.1f} g")
    time.sleep(0.5)

Para producción: use librería hx711py o HX711 (pip install hx711) con filtrado media móvil, tara automática, y guardado config JSON.

Aplicaciones del HX711

Consejos Críticos para Precisión y Fiabilidad

Conclusión

El HX711 es el habilitador universal del pesaje digital de bajo coste. Su PGA 128x, 24-bit sigma-delta, rechazo 50/60 Hz, interfaz 2-wire simple, y precio (< $1 chip, < $2 módulo) lo hacen ubiquo. La clave no es el chip, sino la integración mecánica y eléctrica: célula de carga adecuada, montaje rígido con espaciadores, alimentación limpia, cableado blindado, y calibración software robusta (2 puntos, guardado persistente, filtrado). Con esto, alcanza precisión 0.01-0.05% FS (clase C3/C6) en proyectos caseros, educativos, IoT, y pequeña industria. Para aplicaciones legales/comerciales (balanzas verificadas), use indicadores certificados (OIML R76) con HX711 solo como frontend ADC. Para diseños nuevos de alta precisión: evalúe NAU7802 (24-bit, I2C, PGA 128, chopper stabilized, mejor ruido, 1.8-3.6 V) o ADS1232/1234 (TI, 24-bit, SPI, chopper, calibración interna). Pero el HX711 sigue siendo el rey del coste/rendimiento/facilidad para 99% de makers e ingenieros.

Tecnología Industrial

  1. Really Smart Box: Solución de Almacenamiento Inteligente IoT
  2. Técnicas de Acoplamiento de Entrada y Salida para Amplificadores: Métodos Capacitivos, Directos y con Transformador
  3. Potencia en Circuitos CA Resistivos y Reactivos: Análisis Completo
  4. Plan de los minoristas: optimizar mano de obra y operaciones en la era post-COVID
  5. Mecanizado NC: Definición, Proceso y Beneficios Clave
  6. Dominando el Diseño de PCB para Internet de las Cosas: Guía Completa
  7. Parámetros de Células Solares y Características de Paneles FV: Guía Completa
  8. Guía Paso a Paso: Cableado de Panel Solar a Carga DC 12V y Batería
  9. El 74LS74 Flip-Flop Dual: Referencia Completa y Patillaje
  10. Montaje de Arduino Protoshield: Guía Paso a Paso con Fotos
  11. Dominando Entrada y Salida en programación C