Creando una báscula básica con Arduino y HX711: Un tutorial paso a paso para principiantes

Introducción

Una báscula es una herramienta esencial en muchas áreas de la vida, desde la cocina hasta el laboratorio. Sin embargo, ¿sabías que puedes construir tu propia báscula digital utilizando componentes fácilmente disponibles y asequibles? En este tutorial, te mostraré cómo puedes utilizar una celda de carga de galgas extensométricas, el módulo HX711 y un Arduino para crear tu propia báscula digital de alta precisión.

HX711 

El HX711 es un convertidor analógico-digital (ADC) de 24-bits diseñado específicamente para sistemas de básculas y control industrial para interactuar directamente con un sensor de resistencia de puente de tensión (como una celda de carga). Este módulo incluye un preciso amplificador de ganancia programable interno.

El HX711 utiliza una interfaz de dos hilos para la comunicación con dispositivos como microcontroladores o microprocesadores. Puede operar a voltajes de alimentación tan bajos como 2.7V y tan altos como 5.5V, haciéndolo compatible con una amplia gama de plataformas, incluyendo Arduino y Raspberry Pi.

El principal propósito del HX711 es amplificar las señales de las celdas de carga (que suelen estar en el rango de los microvoltios) a un nivel que un microcontrolador pueda leer fácilmente. Con su alta resolución y su bajo ruido, el HX711 es ideal para aplicaciones de medición de precisión de peso.

Celda de carga

Una celda de carga es un tipo de transductor de fuerza, que es un dispositivo que convierte la energía de una forma a otra. En el caso de una celda de carga, convierte la fuerza o la presión en una señal eléctrica.

Cuando se aplica una fuerza a la celda de carga, causa una deformación en el material de la celda (generalmente una aleación de metal). Esta deformación luego cambia la resistencia de un elemento llamado galga extensométrica, que está adherida a la celda de carga. Este cambio en resistencia es proporcional a la fuerza aplicada, y se puede medir usando un circuito eléctrico.

Las celdas de carga son muy utilizadas en una variedad de industrias, desde la ingeniería y la construcción hasta la alimentación y la salud. Son la base de muchos dispositivos de medición de peso, como básculas de baño, básculas industriales, básculas de cocina y más.

Existen de varios tipos entre ellas : De galga extensométrica, de compresión, de tensión o de tracción,  tipo S y neumáticas e hidráulicas, en este tutorial usaremos una de galgas extensométricas en su presentación capaz de sensar hasta 20 kg.

Materiales necesarios

  • 1 Arduino
  • Computadora con Arduino IDE instalado
  • Celda De Carga
  • 1 Módulo Hx711
  • 4 jumpers Macho-Hembra
  • Cautín y soldadura 
  • 2 placas que seran la bases de la báscula
  • 4 tornillos M4 

Construyendo el circuito

1. Solda los cabezales de pin que vienen con el HX711 en los pines VCC, SCK, DT, GND.

2. solda la celda de carga al HX711 siguiendo el siguiente diagrama.
  • solda el cable rojo E+ de la celda de carga al pin E+ del HX711.
  • solda el cable negro E- de la celda de carga al pin E- del HX711.
  • solda el cable blanco A- de la celda de carga al pin A- del HX711.
  • solda el cable verde A+ de la celda de carga al pin A+ del HX711.
3. Usa los jumpers Macho-Hembra para conectar el HX711 al arduino.
  • Conecta el pin VCC del HX711 al pin 5V del Arduino.
  • Conecta el pin GND del HX711 al pin GND del Arduino.
  • Conecta el pin DT (Data output) del HX711 al pin digital 6 del Arduino.
  • Conecta el pin SCK (Serial Clock Input) del HX711 al pin digital 7 del Arduino.

 4. Fija la celda de carga a las bases usando los tornillos.

Programación del Arduino

Haremos uso de la librería "HX711" . Desde el IDE de Arduino ve a Sketch -> Include Library -> Manage Libraries, luego busca "HX711" en la barra de búsqueda y haz clic en "Install".

Antes de tomar lecturas es necesario medir el OFFSET y la escala, dos medidas que nos ayudaran a calibrar la báscula. 

Sube el siguiente código a tu arduino y abre el monitor serial a 9600 baudios y la configuración de NEWLINE.

 

Aquí tienes la explicación de cada parte:

Primero, incluyes la biblioteca HX711 y creas una nueva instancia de HX711 llamada Bascula. Reconoces los pines donde se conecta el módulo HX711 a tu Arduino (DT y SCKL).

En setup(), inicializas la comunicación serial a una velocidad de 9600 bps y comienzas la comunicación con el módulo HX711 utilizando los pines que definiste anteriormente.

En loop(), imprimes instrucciones para el usuario para calibrar la báscula. Primero le pides al usuario que retire cualquier peso de la báscula, luego se determina el "offset" de la báscula (el valor que lee cuando no hay peso sobre ella) usando el método tare(), que básicamente establece la báscula a '0'. Este offset se imprime en la consola.

Luego, le pides al usuario que coloque una carga conocida en la báscula e ingrese su peso en gramos en la consola. El código espera a que el usuario introduzca este peso y luego lo utiliza para calibrar la escala de la báscula utilizando el método calibrate_scale(), que ajusta la báscula para leer correctamente el peso de la carga conocida.

Finalmente, el código imprime la nueva escala, junto con las líneas de código que debes usar en tu propio programa para configurar la báscula con el offset y la escala que acabas de calcular.

Ahora carga este código simple modificando los valores de "offset" y "scale" obtenidos antes.

 En el setup se configura el monitor serial y los pines del HX711 además se establece el offset y la escala.

 scale.is_ready() Comprueba si el módulo HX711 está listo para proporcionar una lectura y si lo está, obtiene una lectura de peso con scale.get_units(1), finalmente se imprime en el Monitor Serial.

Coloca una carga y ve cuanto pesa por monitor serial.

Expandiendo el proyecto

¡Ahí lo tienes! Ahora tienes una báscula digital totalmente funcional construida con Arduino y HX711.  Puedes tomar de base este ejemplo e incorporar mas funciones tales como la adición de una pantalla LCD para mostrar las lecturas de peso, la adición de un sistema de alertas basado en el peso (por ejemplo, para alertar al usuario cuando un objeto excede un cierto peso), o la conexión de la báscula a la web para realizar un seguimiento del peso a lo largo del tiempo.

 

AdcArduinoHx711Peso

Deja un comentario