Haga clic para más productos.
No se encontraron productos.
Búsqueda de blogs
Artículos Recientes
Últimos comentarios

Tutorial trasmisor de celda de carga HX711, Balanza Digital

318716

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.

 

Celda de carga        Celda de carga 5Kg

   


Trasmisor de celda de carga HX711

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.

Modulo HX711

Armando la parte mecánica de nuestra Balanza Digital

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

 Diseño Balanza

 

Conexiones entre la Celda de carga, módulo HX711 y Arduino.

  

Conexión entre la Celda de carga y módulo HX711

Celda  De  Carga

 Módulo HX711

Cable Rojo

Pin  E+

Cable Negro

Pin E-

Cable Verde

Pin A-

Cable Blanco

Pin A+ 

 

Conexión entre HX711 y Arduino

Módulo HX711

Arduino UNO, MEGA, NANO

Pin GND

Pin GND

Pin DT

Pin A1

Pin SCK

Pin A0

Pin VCC

Pin 5V

 

La conexión final sería como se muestra en la imagen.

   

 Coenxiones Celda de carga HX711 Arduino

 

   

Librería HX711 para Arduino


Estamos utilizando la librería HX711 de Bogde el cual lo pueden descargar desde Github:

https://github.com/bogde/HX711

Una vez descargado hay que importarla a nuestro IDE de Arduino.

  

Explicaremos las funciones principales  de esta librería.

  

begin(byte PinData, byte PinClock)

Inicializa el HX711, se puede trabajar con cualquiera de los pines.

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;

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;

read()

Espera hasta que el dispositivo esté listo y devuelve la lectura del ADC del HX711

read_average(byte n)

Realiza n veces la lectura del ADC y devuelve el promedio

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.

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.

 

1. 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"
const int DOUT=A1;
const int CLK=A0;


HX711 balanza;
void setup() {
  Serial.begin(9600);
  balanza.begin(DOUT, CLK);
  Serial.print("Lectura del valor del ADC:t");
  Serial.println(balanza.read());
  Serial.println("No ponga ningún 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.

   

Calibracion con peso 4Kg

  

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.

   Datos calibracion

   

Con uno o el promedio de estos datos calculamos el valor de la escala que usaremos, para esto usaremos la siguiente formula:

Formula escala HX711

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:

Factor de escala HX711

Con este dato ya obtenido pasamos a programar el sketch que vamos a utilizar para pesar.

 

2. 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.

#include "HX711.h"

const int DOUT=A1;
const int CLK=A0;

HX711 balanza;

void setup() {
  Serial.begin(9600);
  balanza.begin(DOUT, CLK);
  Serial.print("Lectura del valor del ADC:  ");
  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: ");
  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.

   

Resultados

   

Como pueden ver el módulo HX711 es fácil de implementar en cualquier proyecto, la aplicaciones son varias y espero puedan sacarle provecho.

 

 

Productos relacionados
Artículos relacionados
334 Comentarios
  • Fermín

    Fermín 13/03/2021 Responder

    Felicitaciones y gracias al equipo de NAYLAMP tienen una página con mucha información de muy buena ayuda.
    Amigos soy nuevo en esta profesión, quiero hacer un proyecto en el cual pueda conectar dos celdas de carga de 40kg c/u al transmisor de carga HX711 y posteriormente a un Arduino. Me podrían apoyar con un diagrama de como conectar (puentear) o si necesito un HX711 por cada Celda de carga?
    Espero me puedan apoyar. Gracias
  • Manuel Dionisio Rodriguez

    Manuel Dionisio Rodriguez 06/01/2021 Responder

    Hola, antes que nada muchas gracias, tengo una celda de carga conectada a un amplificador H711 y a una arduino Leonardo, pude hacer la calibración y demas, esto a modo de probar, ahora mi proyecto y esto lo aclaro es sin saber, es reemplazar un potenciometro de una pedalera (freno) por esta celda de carga y es aca donde estoy trabado, que debo hacer para que la pc me lo reconozca como al potenciometro y el simulador tambien? gracias por el aporte
  • Marcelo Asorey

    Marcelo Asorey 30/11/2020 Responder

    Hola, como varios de los que han posteado aquí, obtengo valores negativos:
    Valor de lectura: -1259402, Valor de lectura: -1399676, Valor de lectura: -1452174
    Valor de lectura: -1530852, Valor de lectura: -1548049, Valor de lectura: -1598858
    Valor de lectura: -1606804, Valor de lectura: -1650856, Valor de lectura: -1672403
    Valor de lectura: -1684282, Valor de lectura: -1716024, Valor de lectura: -1738805
    Valor de lectura: -1651266, Valor de lectura: -1757675, Valor de lectura: -1772610
    Valor de lectura: -1788253, Valor de lectura: -1812463,Valor de lectura: -1823882
    Valor de lectura: -

    aunque en la tara: Lectura del valor del ADC: 5334813

    a parecería muy raro que haya malogrado la celda de carga pues la he tenido bien guardada desde que la compré.
    también he visto en algún post que las conexiones en la imagen están diferentes a las del cuadro. Evidentemente las han corregido pues están igual.
    Me da la impresión mas bien que es un tema de overflow. alguna idea?
    Gracias
  • Gabriel Santander

    Gabriel Santander 31/10/2020 Responder

    Buenas, queria saber si se puede hacer este mismo procedimiento, pero en un STM32 "bluepill". Lo estuve intentando pero no logro que lea bien los datos.
  • Gabriel Santander

    Gabriel Santander 28/10/2020 Responder

  • GERARDO REYES LOPEZ MAGAÑA

    GERARDO REYES LOPEZ MAGAÑA 29/09/2020 Responder

    TENGO UNA CELDA DE CARGA TIPO S, DE 500 KG, LA QUIERO PONER PARA UNA ENSAYE DE TRIAXIAL UU, COMO PUEDO OBTENER LOS DATOS DE LA PRUEBA DE CARGA HASTA LA FALLA DE LA PROBETA, Y PASARLOS A LA PC.

    SERIA CELDA DE CARGA + DATALOGGER + PC

  • Joshep

    Joshep 31/08/2020 Responder

    buena noche
    alguien sabe si puedo conectar la salida del hx711 a un conversor de TTL a RS232?
  • Karol

    Karol 24/08/2020 Responder

    Hola!primero que nada muchísimas gracias por ese aporte,está genial!!estoy haciendo un proyecto y esta parte me está dando muchos dolores de cabeza, a ver si alguien me puede ayudar!!
    Necesito que la báscula de 2kg cuando llegue a un peso de 300g paré un motorreductor (mediante el cierre de un relé) y no calibre la báscula ya que la llevaré encendida (es un comedero). Este sketch me va bien pero no sé como parametrizar lo demás y que me salga el peso en kg.
    Muchas gracias de antemano!!! un saludo
  • juan

    juan 06/08/2020 Responder

    Como puedo hacer para que me devuelva el peso con 3 decimales?, en la demostracion imprime con 3 decimales pero en la variable solamente guarda 2.
    saludos.
  • Alejandro Tapia

    Alejandro Tapia 26/06/2020 Responder

    Ésto no es correcto: "Una celda de carga es un transductor capaz de convertir una fuerza en una señal eléctrica"

    Lo que lleva es un par de galgas extensométricas. Las galgas extensométricas aprovechan el efecto piezzorresistivo (cuando se deforman varía su resistencia a la corriente eléctrica), de manera que midiendo la caída de tensión se pueden deducir deformaciones.
  • Angelo

    Angelo 17/06/2020 Responder

    Buenas. Tengo una balanza ohaus. Y lo raro es que la enciendo y me tira e. Intenté calibrar pero igual.
    Pero lo raro es que si pesa o muestra números cuando está inclinada incluso boca abajo.
    Será un tema de programación? Algo se rompió?
    Gracias
  • David

    David 02/01/2020 Responder

    Si alguien quiere usar la misma libreria pero en la Microbit, les dejo el enlace donde se pueden descargar la extensión para MAKECODE.

    https://github.com/daferdur/pxt-myHX711
  • Dany Yau

    Dany Yau 16/12/2019 Responder

    Hola a todos.
    He logrado que funciones mi balanza con una celda, sin embargo me encuentro en proceso de incorporar una segunda celda y como se comenta en un comentario más arriba, solo abría que ocupar el segundo canal por lo que entiendo, en este caso el Canal B seria la conexión hacia mi segunda celda y los demás irían tal cual como permanece hasta ahorita con la primera conexión de la celda 1.

    Pero al momento de realizar las pruebas, no me logra reconocer la segunda celda, alguien tiene alguna opción u ejemplo debido que no he encontrado nada al respecto en otros sitios.

    Pueden asesorarme, les agradecería de ante mano.
    Muchas gracias!!!
  • Miguel

    Miguel 30/11/2019 Responder

    Se podría usar un amplificador operacional para amplificar la señal (+A, -A) y luego llevarla al hx711 con el fin de poder tener lecturas de 0.01g o 0.001g con menor variaciones?
  • Ivan

    Ivan 23/11/2019 Responder

    Buenas, es que ando haciendo un proyecto parecido pero usando una celda de carga de 50 kg, y por algún motivo solo tiene tres cables (rojo, negro y blanco) habrá algún problema al momento de medir por eso?
    • Danny Yau

      Danny Yau 16/12/2019 Responder

      Durante mi investigación me encontre algo relación sobre que existen bascular con solamente 3 cables, En este caso la ultima debera de ir conectado sobre el canal positivo solamente, ejemplo E+ , E-, A+
      Solamente. Dejo el link de un video que estoy viendo ahora mismo y explica que existen basculas que traen 3 cables / 4 cables.
      https://www.youtube.com/watch?v=vgZPT_chY_A
    • Dany Yau

      Dany Yau 16/12/2019 Responder

      Me imagino que si por los input que van dentro en amplificador de celdas para que pueda realizar el proceso de lectura de la carga que se encuentre sobre la celda, de lo contrario no mostraría un resultado correcto.
  • raul gonzales reyes

    raul gonzales reyes 21/11/2019 Responder

    nas noches quisiera adquirir cuanto sldrria el precio de envio por las celdas decaga y el arduino
  • Alberto Aguado Fernández

    Alberto Aguado Fernández 15/11/2019 Responder

    muchas gracias por el tutorial lo que algo no me va bien por que cuando lo tengo todo bien configurado, y el peso me va bajando ligeramente solo.... a que puede ser debido? tengo que decir que en vez de 1 sensor tengo 3 sensores de basculas puesto (para mayor peso) conectados al controlador. me puedes ayudar porfavor?
    • Dany Yau

      Dany Yau 16/12/2019 Responder

      Como realizaste tus conexiones??
  • walter

    walter 02/11/2019 Responder

    El código que me funciono completo
    #include "HX711.h"

    #define DOUT A1
    #define CLK A0

    HX711 balanza;

    void setup() {
    balanza.begin(DOUT, CLK);
    Serial.begin(9600);
    Serial.print("Lectura del valor del ADC: ");
    Serial.println(balanza.read());
    Serial.println("No ponga ningun objeto sobre la balanza");
    Serial.println("Destarando...");
    Serial.println("...");
    balanza.set_scale(227891); // Establecemos la escala
    balanza.tare(20); //El peso actual es considerado Tara.

    Serial.println("Listo para pesar");
    }

    void loop() {
    Serial.println(balanza.read());
    Serial.print("Peso: ");
    Serial.print(balanza.get_units(2),3);
    Serial.println(" kg");
    delay(500);
    }
  • andres

    andres 09/10/2019 Responder

    A los que no les sirva solo cambien estas dos lineas:
    HX711 balanza; quitan la función balanza
    y despues del serial.begin(9600) agregan esta linea : balanza.begin(DOUT, CLK);
    • Miguel

      Miguel 13/05/2020 Responder

      Gracias, me sirvio su ayuda
  • Juse Cortez

    Juse Cortez 12/09/2019 Responder

    Gracias por el aporte!

    Tengo una duda. Sabes cual seria el tamaño máximo de la placa que se pone sobre el sensor. Quiero decir la placa donde se ponen los objetos para saber el peso.
    O si supieras de alguna pagina, etc. Estaría muy agradecido
  • Jose Flores

    Jose Flores 11/09/2019 Responder

    Hola tengo una celda de 2 toneladas, puedo usar este módulo? Otra pregunta, para interconectar 4 celas como las conecto? Gracias y saludos!
  • Diego

    Diego 02/07/2019 Responder

    Hola.
    Necesito realizar una celda de carga que se aguante 500 kg. Se puede con los mismos intrumentos que mencionas o necesito algo extra?.

    Con comprar la celda de esa capacidad y el modulo HX711 y el arduino es suficiente?
  • Antutu

    Antutu 16/06/2019 Responder

    Para quienes tienen el error en la compilación, acá les va la solución:

    En la inicialización de variables, el código dice HX711 balanza(DOUT, CLK); pero esto no es correcto. En esa línea debería decir HX711 balanza; y dentro del void setup() hay que agregar la línea balanza.begin(DOUT, CLK); y adiós problemas.

    Saludos
  • Jesús Gutiérrez

    Jesús Gutiérrez 22/05/2019 Responder

    Por favor necesito su ayuda, estoy usando tal cual el código que me dió y no me quiere imprimir en la lcd del proteus, y es el proyecto que tengo para la tesis de trabajo de grado agradecería pronta respuesta jesusfgl1993@gmail.com
  • Marco

    Marco 19/05/2019 Responder

    Hola que tal, disculpa, tengo un problema con el código, me sale este error y no sé a qué se deba

    no matching function for call to 'HX711::HX711(const uint8_t&, const uint8_t&)'

  • LuisAN

    LuisAN 03/05/2019 Responder

    Yo tengo una duda, este ADC funciona igual para una celda de carga tipo s Industrial? Lo conseguí para un proyecto de la universidad y vamos hacer una prensa y medir el peso que le aplica un pistón hidráulico, sin embargo al mandar las lecturas al Arduino, no son muy estables, ademas le puse un amplificador de instrumentación y aun así no es muy preciso, incluso arroja valores negativos. Una cosa mas, quisiera conectarle a este mismo ADC un traductor para medir la distancia, se puede hacer? o es necesario algún otro tipo de ADC?

    Me gustaría mucho su orientación, excelente tarde
  • Daniela Maldonado

    Daniela Maldonado 27/04/2019 Responder

    Hola, gracias por la excelente explicación, me podrías ayudar en un proyecto que estoy realizando en el que debo usar 4 celdas de carga pero no se como alimentarlas, las he conectado en paralelo pero cuando el código corre solo lee un sensor supongo que no estoy energizando bien a los demás sensores, me ayudarías con alguna idea para este problema por favor
  • cor leonis

    cor leonis 25/04/2019 Responder

    hola me podrias decir a que se debe este error? "no matching function for call to 'HX711::HX711(const uint8_t&, const uint8_t&)'"
  • Danny

    Danny 11/04/2019 Responder

    Hola,muy buen aporte de tu parte, estoy realizando pruebas pero tengo una, aunque no tenga ningun peso sobre la celda de carga, el valor mostrado por el monitor, va aumentando a poco su valor, inclusive cuando coloco el peso de un objeto, realiza el mismo proceso, el calculo que realiza va aumentando cada vez, sabes cual sea el motivo? Estoy usando una balanza de 120kg.
  • jesus

    jesus 25/03/2019 Responder

    Quisiera saber si este tipo de peso se le puede implementar a una maquina llamada amasadora.
  • jesus_puello15@hotmail.com

    jesus_puello15@hotmail.com 25/03/2019 Responder

    Hola muy Buenos dias, quisiera saber si este tipo de peso seria posible implementarla en maquina llamada amasadora, este es para un proyecto que esto realizando.
  • javier enrique leon soto

    javier enrique leon soto 19/03/2019 Responder

    Hola amigo, ¿que tal? , ¿cual es el peso máximo con el modulo funciona con celdas de carga?
    Ej. tengo una celda de carga de 300kg y el peso maximo que tengo a medir es de 100kg

    Saludos.
  • ruben

    ruben 09/03/2019 Responder

    Vaya, no respeta los espacion de linea. Pues bien, para que lo entendais donde pone HX711 balanza(DOUT, CLK);, que quede HX711 balanza;. Y luego en el void setup poneis balanza.begin(DOUT, CLK);
    • Joel G

      Joel G 01/04/2019 Responder

      hey compañero ,hice lo que explicas y me sigue dando error

      #include "HX711.h"


      #define DOUT A1
      #define CLK A0

      HX711 balanza

      void setup() {
      Serial.begin(9600);
      balanza.begin(DOUT, CLK);
      Serial.print("Lectura del valor del ADC: ");
      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: ");
      Serial.println(balanza.get_value(10),0);
      delay(100);
      }

      exit status 1
      expected initializer before 'void'
  • ruben

    ruben 09/03/2019 Responder

    Se debieron cambiar las funciones en la libreria y tira el siguiente error.
    no matching function for call to 'HX711

    Para ello tenemos que cambiar solo un par de cosas el codigo.
    Copio y pego el codigo del calibrado, acordarse que se debe cambiar tambien en el programa final.



    #include "HX711.h"

    #define DOUT A1
    #define CLK A0

    HX711 balanza; //aqui modificamos el codigo

    void setup() {
    Serial.begin(9600);
    balanza.begin(DOUT, CLK); //aqui agregamos esta linea de codigo
    Serial.print("Lectura del valor del ADC: ");
    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: ");
    Serial.println(balanza.get_value(10),0);
    delay(100);
    }
  • Jhonathan

    Jhonathan 28/02/2019 Responder

    Muy buenas, me sale un error de la librería.

    no matching function for call to 'HX711::HX711(const uint8_t&, const uint8_t&)'

    Alguno ha podido solucionarlo?
  • Alejandro

    Alejandro 27/02/2019 Responder

    Buenas noches, disculpe no se si me puedan ayudar con respecto a la librería HX711 me marca como si fuera un error la linea "HX711 balanza(DOUT, CLK);" no se si me pudieran ayudar, me imagino que es la instalación de la libreria, pero ya lo realice varias veces y sigue el mismo error...
    • Dunia Virto González

      Dunia Virto González 28/03/2019 Responder

      ha debido haber un cambio en la biblioteca y se soluciona asi:

      #include "HX711.h"

      const int LOADCELL_DOUT_PIN = 2;
      const int LOADCELL_SCK_PIN = 3;

      HX711 scale;

      float calibration_factor = -103434.00; //-103434.00 calibrados con 20 kg

      void setup() {
      scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
  • Saul

    Saul 27/02/2019 Responder

    Buenas noches, disculpe no se si me puedan ayudar con respecto a la librería HX711 me marca como si fuera un error la linea "HX711 balanza(DT, SCK);" no se si me pudieran ayudar, me imagino que es la instalación de la libreria, pero ya lo realice varias veces y sigue el mismo error...
  • Joshua Shadday

    Joshua Shadday 27/02/2019 Responder

    Buenas noches, disculpe no se si me puedan ayudar con respecto a la librería HX711 me marca como si fuera un error la linea "HX711 balanza(DT, SCK);" no se si me pudieran ayudar, me imagino que es la instalación de la libreria, pero ya lo realice varias veces y sigue el mismo error...
  • Alex

    Alex 19/02/2019 Responder

    Hola ! Tengo un problema y es que mi sensor mide valores muy distintos variando muy rápido de unos a otros. Creo que esto es porque hay algún cable mal conectado.
    ¿Como conectaste los cables de la celda de carga con el módulo?¿Y los del módulo con arduino?
    Muchas gracias
  • Alex Garcia

    Alex Garcia 19/02/2019 Responder

    Hola ! Tengo un problema y es que mi sensor mide valores muy dispares en vez de quedarse en uno fijo. Creo que es porque algún cable hace mal contacto.
    ¿Como hiciste para conectar los cables de la celda de carga al módulo hx711?
  • Alex

    Alex 19/02/2019 Responder

    Hola ! Me gustaría saber, ¿Como hiciste para unir los cables de la celda de carga con el módulo HX711? Y del módulo a arduino ?
    Mi sensor mide valores muy dispares entre sí y deduzco que es porque algún cable hace mal contacto
    Muchas gracias !
  • Marcelo Santibañez

    Marcelo Santibañez 28/01/2019 Responder

    Hola la ganancia del hx711 como se cambia?
  • Xenpaul

    Xenpaul 09/01/2019 Responder

    Hola Amigos,
    Estoy utilizando el Arduino pro mini de 3.3v en un sensado remoto de peso al cual tengo conectada la celda con el HX711 y todo anda perfecto. El problema es que utilizando la modalidad de sueño de Arduino y con el código actual posteado, dado que el peso es incremental con el paso tiempo, al despertar me destara la carga útil y me vuelve el dato a cero cuando debería continuar desde el valor anterior. Es por esto que estoy necesitando una variante del código que me permita continuar con la medición de la carga útil del sistema sin tarar. He modificado el código quitándole el destarado de peso ya que una vez conocido este lo dejo fijo pero este no pesa correctamente luego del ciclo dormir/despertar. Como desconozco en profundidad el código de la librería y tampoco soy experto codificador, no se como salir de este problema.
    Gracias por su ayuda y abrazo
  • ivan jimenez

    ivan jimenez 06/01/2019 Responder

    buenas tardes, el proyecto es bueno, mi interés es el de controlar 10 celdas de cargas independientes para a si realizar una combinación y tener como resultado un peso especifico, con el modulo HX711 se puede realizar un sumador, para asi controlarlo atra vez de un arduino mega'. Gracias.
  • Edson

    Edson 23/12/2018 Responder

    Que tendría que modificar si se quieren medir fuerzas?
  • sergio

    sergio 13/12/2018 Responder

    hola buen dia, como podria modificar el programa para que al momento de sobrepasar un peso deseado me encienda un buzzer?

    saludos
  • Raul

    Raul 04/12/2018 Responder

    Hola amigos, una consulta, ley los tutoriales de este proyecto, lo probe con una celda de carga de 10 kg. funciono perfecto. Desero hacer lo mismo pero con una celda de carga de 1000 kg. mi consulta es sobre el calibrado. Como el turorial menciona que hay que realizarlo con un peso conocido y cercano al valor maximo, se me presenta el inconveniente que no tengo peso cercanos a ese valor, entonces puedo llegar a realizar dicha calibracion de otra manera, modificando alguno de los valores? Disculpen la pregunta, tal vez este preguntando algo basico y no me doy cuenta. Desde ya muchas gracias.
  • Matias

    Matias 30/11/2018 Responder

    Hola, tengo este problema en el "void loop": "Serial.println(balanza.get_value(10),0);"

    Me tira error: "'balanza' was not declared in this scope".

    Ayuda, por favor. Gracias.
  • wuemdell martinez

    wuemdell martinez 16/11/2018 Responder


    hola sera que eme podrían ayudar con este error de compilación 'hx711' does not name a type en la linea de codigo

    hx711 balanza(DOUT, CLK);


  • Alfredo

    Alfredo 03/11/2018 Responder

    Hola buenas quisiera conectar una celula de carga package 1000kg mide en compresion y extension se conecta igual? Gracias
  • wuemdell

    wuemdell 17/10/2018 Responder

    que hace el nuemro 20 en esa linia de codigo -balanza.tare(20);
  • martin

    martin 09/10/2018 Responder

    amigo estuve siguiendo el tutorial con una celda de carga muy parecida, y funciona bien pero da valores negativos, la instalo como indica la flechita, vos crees que puede estar mal indicada o vino con las conexiones invertidas, me sugieres dar vuelta la celda, invertir los cables o modificar el codigo?
  • Dante Ramiro Cruz Mamani

    Dante Ramiro Cruz Mamani 23/09/2018 Responder

    En esta parte me genera error:
    HX711 balanza(DOUT, CLK); en mi programación dice que esta mal esta parte :/
  • Jose F

    Jose F 19/09/2018 Responder

    Tengo dos problemas con esta balanza, los valores me salen en negativo ej: -1.340 kg y no me pesa exacto el peso, le pongo un kilo y me arroja -0.90 kg. alguien me puede ayudar por favor
  • Luis Sacha Arancibia Bazan

    Luis Sacha Arancibia Bazan 06/09/2018 Responder

    Cuantas celulas podria conectar a una tarjeta arduino UNO??

  • Miguel Solano Cornejo

    Miguel Solano Cornejo 05/09/2018 Responder

    Una consulta como puedo programar este proyecto de manera que registre de forma continua un aumento de peso constante sobre un material hasta que este material se fracture y queden registrados los pesos en una hoja de Excel o de alguna otra forma.
    Gracias por el apoyo.
  • Nicolás Ariza

    Nicolás Ariza 27/08/2018 Responder

    Buenos días,
    Quisiera saber si al HX711 le puedo conectar una celda de carga en S con voltaje de alimentación entre 10 y 15 voltios.
    Gracias,
    • Oscar

      Oscar 15/08/2019 Responder

      Hola, disculpa pudiste solucionar tu problema, yo tengo la misma situación, tengo una celda de carga que se alimenta de 10 a 15 V y no me funciona con el HX711, estoy tratando de buscar algún diagrama o algo...
  • DAVID AGUIRRE

    DAVID AGUIRRE 26/08/2018 Responder

    hola me podrias colaborar con este error
    exit status 1
    'HX711' does not name a type
    aparece en esta linea de codigo
    HX711 balanza(DOUT,CLK);
    • wumdell martinez

      wumdell martinez 16/11/2018 Responder

      hola ,pudiste solucionar el problema,¨?
      tengo el mismo error
  • David ortega

    David ortega 04/08/2018 Responder

    buenos días y cordial saludo, quisiera saber que significa la palabra destarando ?????
    y lo otro no me sale en el valor de la lectura un numero constante igual salen muchos valores entonces según su ejemplo debes debe salir un solo valor lo mas aproximado posible y ya uno sacaría una media en ultima instancia si no sale igual que debo hacer con este error gracias.
  • Alejandro Vázquez

    Alejandro Vázquez 26/06/2018 Responder

    Hola a todos, estoy usando una celda de 50kg que son cuadraditas aplanadas, he visto muchos tutos donde muestran como usarlas, pero no me funciona ninguno, las celdas empiezan a dar valores de menores a mayores, como en tendencia senoidal, alguien que me pueda ayudar?
  • juan lopez

    juan lopez 14/06/2018 Responder

    tengo un problema al momento de leer los datos, siempre me marca 0 el valor de lectura e intentado de todo y no se que sucede, segui los paso
    • Vicente Steinmetz Cotton

      Vicente Steinmetz Cotton 13/07/2018 Responder

      Lo más probable es que tengas conectados los pin en Digital, y deben estar en Análogo. Revisa eso
      • Daniela Maldonado

        Daniela Maldonado 11/12/2018 Responder

        disculpa, solucionaste el problema?, tengo el mismo error y si están bien conectados los pines.
  • Esvin Rivas

    Esvin Rivas 28/05/2018 Responder

    Disuculpe, hay alguna forma de detectar peso con hx711 arduino pero con la condicion de sensor infrarrojo que si detecta objeto si puede pesar de lo contrario no siga pesando?
  • Aleps

    Aleps 03/05/2018 Responder

    si quiero calcular la presion ¿Como le hago?
  • andres villadiego

    andres villadiego 03/05/2018 Responder

    Muy buenos dias estoy colocando el programa para una gramera de capacidad de 7000 g logro establecer el valor de la escala pero el valor de la lectura me ocila es decir me queda si coloco 500 gramos me queda en valores cambiantes de 449, 490 como hago para fijarlo en 500 gr.
    Muchas gracias
  • Jairo Gallego

    Jairo Gallego 21/04/2018 Responder

    Buen día Naylamp:
    Para implementarlo en PIC 18F4550 como debe ser la conexión y configuración del mismo ya que no contaría con las librerías.
    Saludos y gracias
    • Eduardo Cerda

      Eduardo Cerda 03/03/2019 Responder

      buenas noches, tambien deseo implementarlo con el pic 18f4550 pero no hay muchas informacion en la web, es para un proyecto de la universidad. muchas gracias
  • Alexia

    Alexia 11/04/2018 Responder

    Hol buen dia, me marca un error el programa probablemente es con la libreria ya la descargue y me sigue marcando error me podrias ayudar, lo agradeceria bastante es para un proyecto importante
  • Valentino Juan

    Valentino Juan 31/03/2018 Responder

    La semana pasada leí acerca de Jameson Finance en una página cristiana, leí cómo Jameson Finance ayudó a tanta gente en México y Argentina, así que decidí contactarme con Jameson Finance para obtener asistencia financiera. Justo ayer después del almuerzo, el banco me informó que había recibido un préstamo de 15,000 dólares de Jameson Finance. Estoy muy contento ahora que finalmente he recibido un préstamo de mi sueño, estoy compartiendo esto con ustedes porque también quiero que se beneficien de esto. puede ponerse en contacto con Jameson Finance a través de Whatsapp +2348058302338 o por correo electrónico theodorejamesonfinance@hotmail.com
  • Jorge hernandez

    Jorge hernandez 20/03/2018 Responder

    Que tal, muy interesante... estoy haciendo un proyecto y necesito, activar un motor a pasos o un servomotor cada que exista cierto peso, mi duda es en que parte del programa puedo agregar la condición y maso menos como seria?
  • Leslie

    Leslie 05/03/2018 Responder

    hola disculpa existe otra manera de descargar la librería HX711 el link no me carga, por favor
  • jorge perez

    jorge perez 05/03/2018 Responder

    hola

    Sabes si esto se puede hacer con un PLC ?
  • ivan233

    ivan233 27/02/2018 Responder

    Hola me gusto mucho tu tutorial buen aporte pero quisiera saber como tomar lecturas lo mas rápido posible con la celda de carga, ya he probado moviendo los retardo pero el tiempo entre lecturas sigue igual agradeceria algún consejo para lograr el objetivo
  • Ignacio Ibañez

    Ignacio Ibañez 05/02/2018 Responder

    Hola, tengo una consulta, necesito que la medición que genere la celda al objeto pesado se envie a un equipo celular mediante conexión a Internet, se podrá si tengo el shield ethernet para arduino? algun consejo? gracias!
  • Ariel

    Ariel 16/01/2018 Responder

    Hola, tengo una consulta, este tipo de celdas requieren que se calibre cada cierto periodo de tiempo? esta pregunta apunta a si tengo que ajustar el valor de la escala cada tanto o si se ajusta una sola vez y listo. Muchas gracias.
  • Daniel

    Daniel 22/12/2017 Responder

    Buenas!
    Sé que seguramente está bien explicado en el tutorial, pero soy casi nulo programando y no me aclaro. En el caso que yo quiera que de 36 lecturas, las 7 primeras sean las buenas (a hacer promedio, a escalar...) y las otras se consideren como tara, ¿como tendría que indicarlo en el código?
    Gracias!
  • Fernando

    Fernando 12/12/2017 Responder

    Ante todo gracias por iluminarnos .
    Tengo el valor de un celda de carga y h x711 con móde mcu
    Y quiero leer el peso con un servidor , es posible por favor orientame
  • camila meneses

    camila meneses 11/12/2017 Responder

    hola, requiero hacer una con 180 kg pero el programa no corre , saca muchos errores ( error: 'hx711' does not name a type sketch_oct25a.ino: In function 'void setup()': sketch_oct25a:11: error: 'balanza' was not declared in this scope sketch_oct25a.ino: In function 'void loop()': sketch_oct25a:23: error: 'balanza' was not declared in this scope) podrias ayudarme
  • mauro rivera

    mauro rivera 05/12/2017 Responder

    no me funciono de ninguna manera, cambie la tarjeta HX711 y listo.
  • Frank

    Frank 28/11/2017 Responder

    Buenas noches..... la salida del transmisor HX711 esta conformador por VCC, GND y DATA Y CLOCK... Tengo una duda con respecta a estas salidas DATA Y CLOCK... entran a señales analogas del arduino.?? He estado interpretando el esquema, posee un ADC de 24 bits. La salida de este transmisor no tendria que estar a los pines digitales.?... he estado averiguando en videos tutoriales. he observado que lo conectan a entrada digital .... no analoga.. me podria explicar porfavor.
    • Enrique

      Enrique 16/12/2017 Responder

      Hola, en este caso me imagino que por simpliciada en el cableado lo conectaron a los pines A0 y A1,pero segun se indica en la descripcion de las funciones de la libreria (en la del conductor especifiacmente) se pueden utilizar cualesquiera dos pines
      • ALVARO ASTORGA

        ALVARO ASTORGA 31/08/2018 Responder

        oy estudiante de Ingeniería civil de la universidad Tecnológica de Panamá y para el desarrollo de mis investigación de tesis tengo que medir fuerza y deformaciones en bloques... sin embargo he adquirido una celda de carga de 25000 kg la cual viene con 6 hilos, sin embargo quisiera consultar si tiene algún tutorial o esquema para celda de carga con 6 hilos ya que esta me registra datos, pero por alguna razón se mantiene oscilando en las mediciones...y creo que es debido a las conexiones no están correctas. Le agradecería mucho su asesoría, Muchas gracias y éxitos en sus proyectos.
  • Wendy Ajelet Escamilla González

    Wendy Ajelet Escamilla González 28/11/2017 Responder

    Oye, necesito una interfaz para processing!
    Es proyecto escolar
  • Julian

    Julian 23/11/2017 Responder

    Hola,
    Soy nuevo en esto y necesito ayuda. Como puedo agregar la libreríaHX711 a mi IDE arduino. Gracias
  • Brian

    Brian 22/11/2017 Responder

    Hola Naylamp tengo un proyecto en el cual estoy usando el sensor en una línea de producción y quisiera que un led me indicara si el producto esta dentro de un rango establecido es decir si pesa mas o menos del peso establecido encienda el LED espero me puedan ayudar gracias. PD su tutorial esta bastante bien explicado.
  • Héctor

    Héctor 20/11/2017 Responder

    hola, quisiera saber como podría hacer para operar dos celdas de carga al mismo tiempo y de esas dos sacar un promedio para entregar una sola lectura, que sería la que mandaría el monitor serial
  • Miguel Pacheco

    Miguel Pacheco 03/11/2017 Responder

    naylamp amigo te habla un arequipeño q esta estudiando electronica industrial en un nstituto una consula al momento de copilar en arduino saves tengo un problema sketch_oct25a:6: error: 'hx711' does not name a type sketch_oct25a.ino: In function 'void setup()': sketch_oct25a:11: error: 'balanza' was not declared in this scope sketch_oct25a.ino: In function 'void loop()': sketch_oct25a:23: error: 'balanza' was not declared in this scope me aprece estos errores ya descargue la libreria correctamente y nc aver si pudieras ayudarme a soluconar este problema
    • Juan

      Juan 14/11/2017 Responder

      Quiero agradecer enormemente a este bloguero Naylamp por explicar este proyecto tan practicamente, un saludo desde México y hay que entender que lo que hacen estos hombres no es hacernos el proyecto sino orientarnos y nosotros mismos por nuestros medios, lógica e interpretación debemos tratar de darle seguimiento al programa así aprendemos más, recuerden que hay muchas maneras de llegar al mismo resultado, pero eso cada quien lo elige, lo importante es llegar.
    • Juan

      Juan 14/11/2017 Responder

      Tienes instalada la librería del HX711? Puede ser probable que sea ese tú error, saludos.
  • jose mata

    jose mata 27/10/2017 Responder

    muy buen aporte,y deantemano gracias por todos los consejos a qui brindados.
    mi pregunta en especifico se puede conectar 4 celdas con capacidad de 5t cada una mediante una cada de sumas usando el HX711 al ardunio??
  • Ana Maria

    Ana Maria 27/10/2017 Responder

    Hola, me puedes ayudar con un proyecto para el colegio porfa: tengo un programa de un ascensor y lo que quiero es añadirle el sensor de peso para que cuando llegue a un determinado peso por ejemplo 1kg, todo el programa se apague. Tal vez me puedas dar un tutorial para eso, Gracias.
  • Andres Velez

    Andres Velez 13/10/2017 Responder

    Hola, el HX711 tiene otras dos lineas de entrada llamadas B- y B+, podria conectar otra celda de carga ahi? como sería la modificación en el código para acceder a dichos pines.?

    Gracias por responder y felicitaciones por este tutorial. ya lo probé y funcionó perfecto.
    • raytony

      raytony 25/10/2017 Responder

      naylamp amigo te habla un arequipeño q esta estudiando electronica industrial en un nstituto una consula al momento de copilar en arduino saves tengo un problema
      sketch_oct25a:6: error: 'hx711' does not name a type
      sketch_oct25a.ino: In function 'void setup()':
      sketch_oct25a:11: error: 'balanza' was not declared in this scope
      sketch_oct25a.ino: In function 'void loop()':
      sketch_oct25a:23: error: 'balanza' was not declared in this scope
      me aprece estos errores ya descargue la libreria correctamente y nc aver si pudieras ayudarme a soluconar este problema
  • Gustavo

    Gustavo 18/09/2017 Responder

    Boa noite, vou falar em português pois meu espanhol é péssimo. Primeiramente parabéns pela publicação, gostaria de utilizar o HX711 em célula de pressão total, um tipo de transdutor instalado dentro do dolo para medir a pressão/tensão que chega no interior do solo, são muito similares a células de carga, o que muda é que são hermeticamente fechadas e envoltas por um líquido. Sabes me dizer se o HX711 funcionaria para isto? Abraço
  • Diego

    Diego 15/09/2017 Responder

    Necesito calcular un peso en movimiento de un objeto en una cita transportadora. Explico:
    Si sobre la cinta circula un objeto de 100 grs al pasar sobre la celda de carga tengo un grupo de valores que pueden ir desde 30 a 110 grs por ejemplo por lo que sacar un promedio no me daría un valor muy lejano al real.
    Se me ocurre que debe existir una forma para obtener por ejemplo el grupo de los 5 valores máximos y esos si promediarlos, pero no se como sería el código (partiendo de la base que el objeto no esta mas de medio segundo sobre la celda)
  • yeison reyes

    yeison reyes 15/09/2017 Responder

    Una pregunta como le conecto una pantalla lcd que me muestre el valor. Gracias disculpen mi ignorancia.
    • Gustavo

      Gustavo 18/09/2017 Responder

      https://www.youtube.com/watch?v=VXcKLuOlXFA&index=46&list=PL07515AEF887421B2
  • Roman

    Roman 11/09/2017 Responder

    hola amigos Naylamp, mire quisiera saber si hay forma de guardar el valor de la ESCALA (cuando divides la lectura del ADC entre el peso conocido) en una variable de tipo float, pues al guardar un valor con digitos muy grandes en la eeprom es imposible obtener un resultado igual al que se guarda. Podrian porfavor guisrame en esto. Muchas gracias por su atencion amigos... y bendiciones!!!
    • Naylamp

      Naylamp 24/09/2017 Responder

      Hola Roman, ESCALA es de tipo flotante, solo declara una variable tipo flotante y asigna dicho valor, recuerda que hay funciones para guardar en la epprom determinado tipo de variable ( EEPROM.put y EEPROM.get ).
  • Jorge

    Jorge 30/08/2017 Responder

    Hola mi proyecto se basa en armar una embolsadora la cual tenga una entrada digital para un sensor de posicion y la cualidad de que al llegar el peso o de 25 kg me active una salida digital es posible ? Gracias por la ayuda
  • Paul Efford

    Paul Efford 25/08/2017 Responder

    Muchas gracias! Esta super bien explicado, y me ha sido de mucha ayuda!
  • agustin

    agustin 24/08/2017 Responder

    Hola, una consulta, para calibrar la balanza debo tener en cuenta el peso del soporte o base que vaya a colocar en la celda ? o solamente el peso que le coloque despues de calibrarla? Muchas gracias
    • Naylamp

      Naylamp 27/08/2017 Responder

      Hola Agustin, la base o soporte de la balanza no se considera, esto es considerado tara al iniciar el programa.
  • Sebastian garcia madrid

    Sebastian garcia madrid 24/08/2017 Responder

    excelente tutorial, me aclaro muchas dudas y esta muy bien explicado. tengo una duda en:

    void loop() {

    Serial.print("Peso: ");

    Serial.print(balanza.get_units(20),3);

    Serial.println(" kg");

    delay(500);

    cuando se esta calibrando en el 3 se pone 0 y luego cambia a 3. me podrías explicar por favor que significa ese 3 ya que arriba pones double get_value(byte n) donde n en este caso seria 20. gracias y excelente tutorial :3
    • Naylamp

      Naylamp 27/08/2017 Responder

      Hola Sebastian, el 3 es un parámetro para el serial.print(), es para indicarle la cantidad de dígitos decimales que queremos que envíe.
  • jose luis

    jose luis 15/08/2017 Responder

    excelente explicaciones, yo estoy haciendo un proyecto similar pero yo ocupo sensores de presion y mi consulta era que quiero colocar un boton para la tara o cero le agradeseria de mucho su ayuda . gracias
  • Steven

    Steven 23/07/2017 Responder

    si deseo guardar el valor de la balanza en una variable esta variable seria tipo dounble, float o cual? porque con estos dos me coloca un error, o como seria la linea del codigo para almacenar en una variable?
    • Naylamp

      Naylamp 30/07/2017 Responder

      Hola Steven, la variable tiene que ser de tipo flotante: float peso=balanza.get_units(20);
      • Eduardo

        Eduardo 31/10/2017 Responder

        ¿Y dónde iría colocada esa linea?
  • Román Borghiani

    Román Borghiani 18/07/2017 Responder

    Hola para poder pesar 800kg puedo usar 4 celdas de 200? El código en arduino como seria, leer celda x celda y luego sumar para saber el total? Y otra cosita si la celda la voy a colocar debajo de una jaula para pesar un animal, esa jaula cuanto debería pesar, es decir si la celda es de 200 kg la jaula debe pesar menos q eso? O si uso 4 celdas de 200, el.peso de la jaula debo dividirla x cuatro y no debería superar los 200? O si la celda es de 200 y la jaula pesa 150 hay algún inconveniente? Bueno algo largo fue la consulta, espero q se entienda, desde ya las gracias, saludos
    • Naylamp

      Naylamp 20/07/2017 Responder

      Hola Roman, si pones más de una celda el peso total seria la suma de las lecturas individuales de cada celda. EL valor de la celda es el máximo peso que la celda puede soportar, Por ejemplo si to celda es de 200Kg, la celda puede medir pesos de 0 a máximo 200Kg, si excedes los 200kg corres el riesgo de malograr la celda. Los 200Kg se consideran el total del peso incluido la tara.
  • sergio

    sergio 26/06/2017 Responder

    hola buenas excelente pagina una consulta yo estoy tratando de que la comunicacion sea inalambrica me podrías decir si puedo conectar un modulo de radiofrecuencia al hx711 o diretarmete de blueetoth y recepcionarla en un cabesal
  • ALEXIS

    ALEXIS 24/06/2017 Responder

    Hola! Me interesa tus productos pero de igual me forma me surge una duda, ¿tienes una celda de carga que soporte hasta 100 o 200 Kilogramos?
  • Esteban

    Esteban 12/06/2017 Responder

    Hola.

    podrias comentar por favor que tipo de unidad es la que se arroja como resultado en el programa de calibracion?
    se puede obtener el valor del voltaje de la celda?

    gracias!
    • Naylamp

      Naylamp 19/06/2017 Responder

      Hola Esteban, get_value() devuelve el valor del ADC del módulo pero restando el peso de tara. Puedes usar read_average() para leer el ADC sin considerar la tara y escalar la lectura a voltaje teniendo en cuenta que el ADC es de 24 bits y su rango de entrada es de ±0.5(VCC/GAIN) donde GAIN por defecto es 128.
  • Josue

    Josue 07/06/2017 Responder

    Amigo si quisiera poner un display lcd para visualizar la información como lo conecto?
  • Luis Enrique

    Luis Enrique 05/06/2017 Responder

    Hola, excelente tutorial, solo una pregunta, porque los valores tara (los que el sensor sin peso me arroja) son negativos, y cuando le pongo peso, se disparan los valores, y aunque son similares, todos son negativos, espero puedas ayudarme. Saludos
    • Naylamp

      Naylamp 19/06/2017 Responder

      Hola Luis, hay dos razones por lo que las lecturas son negativos, una razón es porque la celda está instalada en la dirección opuesta a la que indica. Aplicar la fuerza en el sentido contrario podría dañar la celda. La segunda causa puede ser por invertir los cables verde y blanco. En este caso solo se puede cambiar los cables o multiplicar por -1 la lectura
  • Daniel

    Daniel 02/06/2017 Responder

    Muy buen aporte amigo y me ayudo bastante para el inicio de un proyecto que estoy realizando para la Universidad, lo que si me gustaria agregarle un sistema de pesaje automático por decirlo así, por ejemplo,cuando mi balanza está en 0 se pueda activar una salida (motor) para dosificar algo, cuando llegue a mi peso meta esa misma salida se desactive, y active otra salida (compuerta con un servo) para descarga de lo dosificado y esta secuencia se pueda repetir un par de veces, es factible eso?, y si es así que se necesita y como se podria llegar a eso??
    Agradeceria mucho tu ayuda y asesoría ya que soy nuevo en esto
    • Naylamp

      Naylamp 18/06/2017 Responder

      Hola Daniel, es totalmente factible, solo son simples comparaciones del peso. Has un diagrama de flujo antes de implementar el código.
  • Laura

    Laura 27/05/2017 Responder

    Buen dia tu proyecto es genial lo eh echo al pie de la letra y adicional e agregado una lcd , pero tengo un problema me puedes orientar a como usar la memoria eeprom para guardar el ultimo valor que la balanza tome al reiniciar el sistema me lo visualice . Muchas gracias.
    • Naylamp

      Naylamp 28/05/2017 Responder

      Hola Laura, Tienes que guardar la el valor del peso después de cada lectura, el programa no sabe cunado se va a reiniciar el arduino así que debes de asegurarte de estar guardando de forma constante dicho valor en la misma posición para guardar puedes usar la función EEPROM.put(10,ultimo_peso); y en el void setup()o al inicio de tu programa debes de leer dicha posición con EEPROM.get(100,utimo_peso); esto actualizará la variable ultimo_peso con el valor guardado en la posición 10 de la EEPROM
  • toxico

    toxico 26/05/2017 Responder

    hola buenas, quisiera saber como hacer para poder medir en gramos, ya que he modificado la escala y al medir 160 g me sale 0.2 g, que mas deberia hacer ? ayuda porfavor
    • Naylamp

      Naylamp 28/05/2017 Responder

      Cuando hagas la calibración en lugar de poner en la ecuación el valor de 4 (para 4kg) usa 4000 o el peso en gramos que estés usando, o también, si ya tienes calculado la escala, simplemente divídela entre 1000.
  • dylan quintero

    dylan quintero 16/05/2017 Responder

    excelente proyecto, a mi me gustaria implementarlo para un sensor de impacto, esto me demanda una lectura mas rapida, ¿como puedo hacer que las lecturas del peso se efectuen con una mayor frecuencia?.
    Gracias.
    • Naylamp

      Naylamp 28/05/2017 Responder

      Hola Dylan, la máxima velocidad de lectura es eliminando la pausa en el bucle, y realizando una sola lectura con balanza.get_value(1). Pero aun así podría ser lento para tu aplicación, el chip funciona con una velocidad de salida de datos de 10Hz, esto si el pin 15 del chip está en GND, puedes intentar poner el pin 15 a VCC y con esto aumentar la velocidad a 80Hz.
  • witman

    witman 12/05/2017 Responder

    el modulo de carga HX711, funciona con celdas de carga de 100kg o mas?
  • Jessica

    Jessica 10/05/2017 Responder

    hola intente desarrollar el proyecto y me sale un error en la programacion en la parte de balanza.set_scale me sale esto 'Clase Q2HX711' no tiene ningún miembro llamado 'set_scale' me podrias ayudar
    • Naylamp

      Naylamp 14/05/2017 Responder

      Hola Jessica, es un problema de librería, verifica si tu librería es la misma del tutorial, intenta volver a instalar la librería.
  • Lina

    Lina 08/05/2017 Responder

    Gracias por tu aporte , lo eh realizado al pie de la letra como tu tutorial lo demanda , las primeras pruebas me ah funcionado de maravilla pero ahora no , resulta que ya sea para evaluar mi valor tara o mi peso real solo me muestra O (cero) , y cuando cambio los pines A1 y A0 si me muestra un valor aunque sea negativo . Me podrias indicar porque sucede esto si es que alcazo el modulo o la galga se daño . Gracias .
    • Naylamp

      Naylamp 14/05/2017 Responder

      Hola Lina, es un problema de celda, revisa si las conexiones no se han movido sino posiblemente tu celda se ha roto, algunas celdas no soportan compresión y tención a la vez y traen un indicador especificando el sentido en el que se deben de aplicar el peso. En este caso es fundamental que celda tenga la orientación correcta. Otra causa por las que la galga se rompe es que se le haya aplicado peso en exceso, o la celda no sea de la capacidad que indica.
  • ricardo

    ricardo 07/05/2017 Responder

    Disculpas, la celda de carga es de 200 kg. no sé porqué salió 10 kg. Gracias..
    PD: Encontré el link del fabricante y aquí lo dejo:
    https://es.aliexpress.com/item/New-Arrival-1PCX-200kg-electronic-platform-scale-load-cell-pressure-balanced-cantilever-load-weight-sensor-New/32703877639.html?spm=2114.43010208.4.70.VbjKRt
  • JAIR GONZALEZ

    JAIR GONZALEZ 07/05/2017 Responder

    Excelente aporte, podrías resolverme la siguiente duda, ¿funcionaria este modulo para una celda de carga de 6 hilos ?
    deseo usarla para 4 celdas de carga de 1000kg, para una bascula ganadera.
    • Naylamp

      Naylamp 14/05/2017 Responder

      Hola Jair, la entrada de HX711 es de puente Wheatstone, (dos pines de alimentación y dos para medir el voltaje), si la celda de carga es un puente Wheatstone va a funcionar normal, en tu caso si tu celda es de 6 pines averigua cual es la función de los otros dos pines, posiblemente sean para compensar la caída de voltaje en los cables.
  • ricardo

    ricardo 07/05/2017 Responder

    Buen día Naylamp. He comprado una celda de carga de 10 Kg. y conectado todo tal y como está en tu sitio. Cargo las librerias y tu codigo para calibrar la futura balanza y lo que obtengo como respuesta en la terminal es:Lectura del valor del ADC: 8388607
    No ponga ningun objeto sobre la balanza
    Destarando...
    Coloque un peso conocido:
    Valor de lectura: 0
    Valor de lectura: 0
    Valor de lectura: 0
    Valor de lectura: 0
    HAgo presión sobre la celda y siempre 0 en la lectura
    Si me das una mano, agradecido..!
    • Jose

      Jose 02/08/2017 Responder

      Ricardo, yo me encontré con un problema similar. Resulta que en la celda que usé, la excitación positiva no es el cable rojo, sino el verde. así, los cable me quedaron: verde (E+), negro (E-), rojo (A-) y blanco (A+)
    • Naylamp

      Naylamp 14/05/2017 Responder

      Hola Ricardo, lo más probable es que tengas mal conectada la celda o tengas una celda defectuosa, intenta probar con otra celda.
  • fabianpi

    fabianpi 02/05/2017 Responder

    Amigo, he estado investigando y según he leído es posible utilizar el HX711 para sensar transductores con mayor capacidad de peso, en este caso pienso utilizarlo con 2000kg.

    Piensas que sea posible?
  • CRISS

    CRISS 23/04/2017 Responder

    Me varia mucho la lectura del ADC, y eso hace que varíe mis pesos cada que abro el monitor serial...que me recomiendas?
    • Naylamp

      Naylamp 30/04/2017 Responder

      Hola Criss, intentas identificar la causa del ruido, podría ser la fuente, la conexión con la PC, algún sensor u actuador externo, la celda, o el objeto en la balanza. Puedes tomar más muestras para obtener un peso más estable, por ejemplo con balanza.get_units(50) o balanza.get_units(100), si el ruido persiste puedes tomar las lecturas por separado y aplicar algún filtro digital, puesto que la librería solo saca un promedio aritmético con las muestras tomadas.
      • yañez

        yañez 02/05/2017 Responder

        hola. me gustaria saber si me podrias ayudar en algo. yo tengo un proyecto parecido solo que el problema es que el hx711 yo lo tengo que hacer. osea tengo que hacer un opamp que funcione igual, yo compre el hx11 para ver que funciones tenia y que componentes tenia pero la verdad estoy en balnco. sabes como podria hacerlo ?
  • Lenin

    Lenin 23/04/2017 Responder

    Hola, yo lo intento con una celda de carga de 50kg de las cuadradas planas, pero no me sale ningùn valor, què me recomiendas?
    • Naylamp

      Naylamp 30/04/2017 Responder

      Hola Lenin, ¿en el monitor serial no te imprime nada o no te muestra el valor correcto de las lecturas? si no te muestra anda podría ser la velocidad de trasmisión de tu monitor serial, si tienes problemas con las lecturas, usando el primer programa te debe mostrar algún valor diferente de 0, sino puede que tu HX711 esté defectuoso o mal conectado, si te muestra valores pero estos no cambia con el peso, es porque tu celda está mal conectada o defectuosa.
  • Pedro

    Pedro 19/04/2017 Responder

    Hola, excelente trabajo, felicidades, es de gran ayuda. Solo una pregunta, como puedo agregar el boton de sestear a 0 kg o de tara.
    • Naylamp

      Naylamp 30/04/2017 Responder

      Hola Pedro, utiliza la función balanza.tare(n); donde n es el número de muestras para obtener la tara. Ejemplo:

      if (buttonState) {

      Serial.println("Destarando...");

      balanza.tare(30);

      }
  • collado

    collado 17/04/2017 Responder

    hola una pregunta sera posible adaptarle un buzzer que se prenda a cierto peso y que no se apague asta que se le quite peso gracias de antemano
    • Naylamp

      Naylamp 30/04/2017 Responder

      Hola Collado, solo compara el peso con un valor de referencia. Puedes también almacenar previamente el peso en una variable flotante si vas a utilizar más adelante la variable. Ejemplo:

      if(balanza.get_units(20)>8.0){

      //buzzer on

      }

      Else {

      //buzzer off

      }
  • David

    David 16/04/2017 Responder

    Amigo yo tengo una celda, pero es la que solo contiene tres cables(rojo, blanco y negro), como puedo hacerla funcionar con este modulo?
    • Naylamp

      Naylamp 30/04/2017 Responder

      Hola David, ese tipo de celdas no tienen salida de puente wheatstone, necesitas 4 de esas para poder usar el módulo.
  • Jesly

    Jesly 08/04/2017 Responder

    Otra preguntita...
    Cuando busco en el Fritzin esta Celda de Carga, no aparece, eso a que se debe, que mi version de Fritzing está muy desactualizada, porque la busque por ej:
    1.-) Cell Load
    2.-) Celda de Carga
    3-) Trasmisor HX711 etc..............
    • Naylamp

      Naylamp 30/04/2017 Responder

      Hola Jesly, la imagen que usamos no es de fritzing, es una imagen editada.
  • Cube

    Cube 28/03/2017 Responder

    Hola grandioso trabajo
    Estoy trabajando en un proyecto el cual necesito saver el peso en cuatro puntos distintos simultaneamente, me pueden ayudar de como realizarlo. En un punto lo tengo claro.

    Gracias
    • Naylamp

      Naylamp 04/04/2017 Responder

      Hola Cube, Puedes conectar más de una celda al arduino, pero cada una con su transmisor, en el programa tendrías que crear un objeto para cada celda. De esta forma puedes saber el peso en cada punto o celda. También puedes usar cuatro celdas de 3 hilos y con una configuración de puente wheatstone usar un solo HX711, pero esta forma obtendrás el peso total de las 4 celdas.
  • Enzo

    Enzo 23/03/2017 Responder

    Hola es necesario usar siempre ese transmisor?, que pasa si lo hago de la celda de carga directo al PIC
    • Naylamp

      Naylamp 04/04/2017 Responder

      Hola Enzo, una celda de carga tienen configurado internamente una galga en un puente wheatstone, teóricamente el voltaje medido en dos de sus terminales es proporcional al peso, utilizando dos canales analógicos podrías medir la diferencia de voltaje y con esto estimar el peso; pero el problema es en la precisión que vas a tener, el HX711 tiene un ADC de 24 bits muy superior en comparación con el ADC de un Arduino o PIC de 10bits.
  • Gonzalo Borja

    Gonzalo Borja 22/03/2017 Responder

    Que tal, este proyecto ha sido de gran ayuda para un proyecto que tenemos, solo que he tenido varias dudas con respecto a esto espero puedas ayudarme.

    Tengo una maquina de tension universal, para realizar pruebas de despegado en zapatos.
    El problema reside que en otras maquinas los registros de kg son mayores, en cuanto a mi maquina no me da los valores que esperaria
    Cabe resaltar que se realiza una grafica de "kg vs desplazamiento" y es ahi donde reside el problema, tendre que hacer alguna conversion para que me de los kilogramos que me dan en otras maquinas?

    Espero me haya dado a entender, saludos!
    • Naylamp

      Naylamp 31/03/2017 Responder

      Hola Gonzalo, Calibra nuevamente con un muestra patrón que haya sido también verificada en las maquinas que mencionas. Podría estar mal calibrada o con errores al calcular la tara.
  • Jorge Grillo

    Jorge Grillo 12/03/2017 Responder

    Hola Naylamp, quería consultarte lo siguiente, es normal que las lecturas varíen tanto.
    En el ejemplo que das para calcular la escala decís que "Con uno o el promedio de estos datos calculamos el valor de la escala que usaremos", pero varían los últimos 3 dígitos de las lecturas, no es mucho?
    Desde ya muchas gracias.
    Saludos
    • Naylamp

      Naylamp 18/03/2017 Responder

      Hola Jorge, Si es normal, esto es porque la resolución del ADC del HX711 es de 24bits, con esto detecta variaciones en la celda que pueden ser bien pequeñas. Usando filtros digitales se podría reducir o eliminar estas variaciones, pero mientras estas no sean significativas en el peso, no es necesario.
      • Felipe

        Felipe 06/07/2017 Responder

        Hola, cuando hablas de filtro digital se refiere a software o hardware nunca EH implementado un filtro digital
  • Jesly

    Jesly 22/02/2017 Responder

    Ya me arrojó el valor pero en este caso me sale así por ejemlo si yo quiero el peso de 1Kg de una Sal me arroja un valor de 0.720 Kg ; osea no es lo que quiero NAYLAMP, POR Ejemplo si yo quiero el peso de 1kg tiene que salir 1.0 Kg y si quiero el peso de un objeto que pesa 3.5 Kg tinene que salir el resultado correcto!!!
    • Gonzalo

      Gonzalo 22/03/2017 Responder

      En mi experiencia en este proyecto te puedo decir que debes poner en el peso patron como minimo un valor del 10% del valor total de tu celda de carga, abajo de ese porcentaje el valor empieza a variar considerablemente..
    • Naylamp

      Naylamp 18/03/2017 Responder

      Hola Jesly, solo es un error de calibración, vuelve a calibrar la celda, usa un peso patrón cuyo peso exacto sea conocido.
      • Jesly

        Jesly 18/03/2017 Responder

        SI es verdad si salió pero ahora tengo el último problemita.
        Lo que pasa es que yo quiero comparar esto: que a lo que ponga un peso de un objeto de 1Kg, llame a la funsión Llamar ( Valga la redundancia, llamar hace una llamada por teléfono, porque estoy trabajando con el Módulo sim 900 ). tengo una Celda de 20KG y estoy trabajando tambien con una LCD 16x2... Hice diferentes pruebas como así...

        #include
        #include
        #include

        #include
        //SoftwareSerial SIM900(7, 8); // Configura el puerto serial para el SIM900
        SoftwareSerial SIM900(12, 13); // Configura el puerto serial para el SIM900

        char incoming_char=0; //Variable que guarda los caracteres que envia el SIM900
        int salir = 0;


        #define DT A1 // Pin analógico A1 para el pin DT del transmisor de celda de carga HX711
        #define SCK A0 // Pin analógico A0 para el pin SCK del transmisor de celda de carga HX711

        // Creación del objeto para el transmisor de celda de carga HX711
        HX711 balanza(DT, SCK);


        LiquidCrystal lcd(4, 5, 6, 7, 8, 9 );


        void setup()
        {
        //Serial.begin(9600); // Comienzo de la comunicación con el monitor serie
        lcd.begin(16, 2);
        lcd.println(balanza.read());
        // lcd.print("Peso en KG...");
        // balanza.set_scale(26214.5); // Para 2 kg
        balanza.set_scale(52429); // Para 1 kg
        balanza.tare(1); // El peso actual es considerado Tara.
        lcd.setCursor(0, 0);
        delay(1000);

        SIM900.begin(19200); //Configura velocidad serial para el SIM900
        delay(25000); //Retardo para que encuentra a una RED
        Serial.begin(19200); //Configura velocidad serial para el Arduino
        Serial.println("OK"); //Mensaje OK en el arduino, para saber que todo va bien.


        }

        void loop()
        {

        lcd.setCursor(0, 0);
        lcd.print("Valor de lectura: t");
        lcd.setCursor(0, 1);
        //lcd.println(balanza.get_value(10),0); // Se obtiene el valor necesario para calcular la ESCALA

        lcd.print(balanza.get_units(20),0);
        lcd.print(" Kg " );

        delay(5000);

        //Prueba 1
        if(balanza.get_units(20),0)==1 {

        llamar();

        }
        }



        /*
        * Prueba 2
        * balanza.set_scale(52429); // Para 1 kg
        if(balanza.get_units(20),0)==52429 {

        llamar();

        }
        }

        */

        /*
        * Prueba 3
        * balanza.set_scale(52429); // Para 1 kg
        if(52429) {

        llamar();

        }
        }

        */



        /*
        * Prueba 4
        * balanza.set_scale(52429); // Para 1 kg
        if(1) {

        llamar();

        }
        }

        */


        void llamar()
        // Función que permite llamar a un celular local
        {
        // SIM900.println("ATD 10725275;"); //Numero local
        SIM900.println("ATD+ + 593977810523;"); //Celular


        delay(100);
        SIM900.println();
        delay(30000); // wait for 30 seconds...
        SIM900.println("ATH"); // Cuelta el telefono
        delay(1000);
        }

  • Sergio Pluchinsky

    Sergio Pluchinsky 22/02/2017 Responder

    Hola, pude hacer funcionar mi proyecto, pero necesito mas lecturas por segundo. Ahora con balanza.get_value(1) estoy en unas 10 lecturas/seguno, como podria aumentar este numero? Saludos
    • Carlos

      Carlos 16/07/2017 Responder

      El HT711 tiene un pin que establece la cantidad de valores que entrega por segundo.. Este pin puede estar en HIGH o LOW y entrega 10 SPS u 80 SPS (con aumento del ruido).
    • Naylamp

      Naylamp 18/03/2017 Responder

      Hola Sergio, para saber el tiempo exacto que demora en realizar una lectura, puedes hacerlo de la siguiente forma

      Serial.print("t=");

      long Ti=millis();

      float p=balanza.get_value(1);

      Serial.println(millis()-Ti);


      Si el resultado inferior 100ms ( 10lect/s) significa que en tu proyecto lo que está demorando en realidad no es la lectura sino el resto de tu programa, una de las funcionalidades que quita tiempo al procesador es la transmisión serial, evita enviar mucho texto y aumenta la velocidad de transmisión
  • Alejandro Calfani

    Alejandro Calfani 20/02/2017 Responder

    Que tal NAYLAMP, desde ya agradezco tu aporte pues he aprendido un montón de cosas con tu proyecto y las explicaciones que les as dados a todas las personas que te preguntan distintas cosas.
    Soy bastante novato con respecto a programa en arduino
    Mi pregunta es saber si me podrías iluminar ayudándome con mi proyecto la idea del mismo es que la celda de carga cuando tome el peso de 500g mande la orden de girar un motor paso a paso una cierta cantidad de pasos (lo digo así por que aun no tengo claro cuantos pasos ) desde ya te agradezco nuevamente por brindar tus conocimientos
    • Naylamp

      Naylamp 11/03/2017 Responder

      Hola Alejandro, podrías almacenar el peso en una variable flotante para después comparar, o también puedes comparar directamente si ya no vas a utilizar más adelante el peso. Por ejemplo:

      if(balanza.get_units(20)>0.5){

      funcion_mover_pap();

      }

  • Juan José

    Juan José 18/02/2017 Responder

    Buen día.

    Estoy haciendo un proyecto de báscula, ya logré implementar el circuito con la celda de carga de 6kg.
    Utilicé HX711 y el peso lo muestro en un LCD 16x2. Todo marcha bien, ya logré calibrar el peso, con una tara de 2Kg.
    Lo que no logro hacer es mantener el peso estable, por ejemplo tengo una división de 0.01g y se mueve el peso muy constante, como puedo lograr que el peso esté estable??
    • Naylamp

      Naylamp 11/03/2017 Responder

      Estimado Juan, es muy común que después de realizar un peso la balanza no llegue exactamente a cero, pero este error debería ser pequeño o despreciable, esto se debe a la elasticidad de la estructura de la balanza e incluso al de la celda o tan solo por mover la balanza. Por lo general se agrega un botón para sestear a 0kg cuando pase esto.
  • Joel

    Joel 16/02/2017 Responder

    Hola, quería saber si funciona con placa raspberry, gracias!
  • Enrique M

    Enrique M 15/02/2017 Responder

    Cuanto tiempo se puede dejar la carga o el objeto a pesar sobre la balanza encendida???
    • Naylamp

      Naylamp 18/02/2017 Responder

      Hola Enrique, va a depender de la calidad de la celda, si lo operas en el rango adecuado teóricamente no debería tener límite de tiempo, con respecto al HX711 y el arduino no habría ningún problema.
  • Jesly

    Jesly 14/02/2017 Responder

    Muy buena la explicación, la pregunta es como puedo obtener el valor del peso de unbojeto mediante una LCD,(No en monitor Serial del Arduino), como lo obtendría mediante los pines!!
    • Naylamp

      Naylamp 18/02/2017 Responder

      Hola Jesly, remplaza los Serial.print() por lcd.print(), puedes guiarte de nuestro TUTORIAL LCD
      • Jesly

        Jesly 20/02/2017 Responder

        Y en este caso que pines obtendría de la LCD, para sacar sus resultados en el Arduino mmmmm!!!
  • cesar

    cesar 14/02/2017 Responder

    Tengo una balanza de 1500 kg de tedea y cuando copio los programas al arduino no me sale ningun valor cuando uso la celula carga. La celula carga es de 6 hilos. Subiendo el programa tendria que funcionar? o tengo que escribir mas funciones o unir los dos programas?
    • Naylamp

      Naylamp 18/02/2017 Responder

      Hola Cesar, debería funcionarte cualquiera de los dos programas de forma independiente, Posiblemente tengas mal conectado la celda, ten en cuenta que en el HX711 los pines (E+ y E-) es salida de voltaje para la celda y (A+ y A-) son entradas por donde se realiza la lectura de la celda. Si tu celda es de 6 pines, Identifica bien los terminales los dos que sobran deben ser para compensar la caída de voltaje de los cables.
  • Luis

    Luis 06/02/2017 Responder

    Hola,
    Muy buen tutorial! Pero tengo una duda, por qué antes de calibrar la balanza "balanza.tare(20)" ? qué significa el 20? también, qué significa el 10 en "balanza.get_value(10),0)"? Por lo que lei en el modulo de GitHub para calibrar la balanza tare() y get.value() no deben de tener parametros.
    Saludos
    • Naylamp

      Naylamp 13/02/2017 Responder

      Hola Luis, en ambos casos es el número de lecturas que va a tomar el sensor, por ejemplo balanza.get_value(10),0) significa que tomara 10 lecturas y te devolverá el promedio de estas, esto es útil para eliminar el ruido en el peso. Si no ponemos ningún parámetro por defecto es 1.
  • Naylamp

    Naylamp 01/02/2017 Responder

    Hola Luis, efectivamente hay un error en la imagen, la tabla esta correcta. Esos dos pines son la salida de la galga, si se conectaran al revés la lectura saldría negativa, y disminuiría cuando se le agrega peso. Lo correcto es invertir los cables y no la posición de la celda, puesto que no todas las celdas suportan compresión y tención a la vez, verifique que la fuerza del peso esté en la dirección que la celda indica.
  • Luis Alberto Mata Carvajal

    Luis Alberto Mata Carvajal 31/01/2017 Responder

    Buenos días,

    En la tabla indica A- Verde y A+ Blanco, pero en la imagen están al revés. Revise un poco y creo que lo correcto es lo de la imagen. ¿Existe alguna medición que pueda hacer sobre la celda de carga que me permita estar 100% seguro que los colores tienen esa conexión?

    Quiero hacer una aplicación para una balanza ganadera de 1500 KG, ¿considera que con un punto de calibración es suficiente o valdría la pena hacer un programa con múltiples puntos?

    Saludos.
    • Naylamp

      Naylamp 01/02/2017 Responder

      Hola Luis, efectivamente hay un error en la imagen, la tabla esta correcta. Esos dos pines son la salida de la galga, si se conectaran al revés la lectura saldría negativa, y disminuiría cuando se le agrega peso. Lo correcto es invertir los cables y no la posición de la celda, puesto que no todas las celdas suportan compresión y tención a la vez, verifique que la fuerza del peso esté en la dirección que la celda indica.
  • Santiago

    Santiago 23/01/2017 Responder

    Quiero hacer ese proyecto pero utilizando un PIC utilizando lenguaje C. Para ello necesito saber que tipo de comunicación utilizaria. muchas gracias
    • Naylamp

      Naylamp 01/02/2017 Responder

      Hola Santiago, si revisas la librería que utilizamos utilizamos https://github.com/bogde/HX711/blob/master/HX711.cpp esta implementada en lenguaje C y no usa ningún protocolo de hardware, con un shiftIn es suficiente para leer datos, En CCS podrías implementarlo fácilmente.
  • Miguel

    Miguel 21/01/2017 Responder

    Genial tutorial, me pregunto, si deseo poner 4 sensores al mismo tiempo...es posible? y si es asi, cual seía la configuración de las conexiones? Gracias!!!!
    • Naylamp

      Naylamp 01/02/2017 Responder

      Hola, Sí puedes conectar más de un sensor pero cada uno con su transmisor, las conexiones serían las mismas pero los pines DT y CSK en diferentes pines del arduino. En el programa también declaras 4 objetos unos para cada celda.
  • alejandro

    alejandro 17/01/2017 Responder

    amigo que buen tutorial muchas gracias, me gustaria saber como hacer para que me arroge el peso de manera mas rapida ya que al agregar unas condiciones indica los valores demaciado lento muchas gracias
    • Juan

      Juan 20/02/2017 Responder

      Buenas, quizá también puedas utilizar una caja sumatoria, las venden por internet, aquí se pueden conectar 4 celdas y sale una señal de la suma de las 4, hay también para 8 celdas. Saludos.
    • Naylamp

      Naylamp 01/02/2017 Responder

      Hola Alejandor, evita usar pausas, o disminuye los delay() que tengas.
  • juan david

    juan david 14/01/2017 Responder

    ha sido de gran ayuda este turiual, hasta el momento todo va muy bien, estoy usando una celda de carga de 3 kg,despues de hacer todos los procedimientos dichos, coloco el peso conocido y lo arroja, lo que no he podido es poner correctamente las condiciones y poder activar un led, quiero que si la entrada analoga es mayor o menor que dicho peso se prenda o se apague, de que forma coloco las condiciones para peso
    • Naylamp

      Naylamp 01/02/2017 Responder

      Hola Juan, solo realiza la lectura y almacena el valor en una variable flotante, o también puedes comparar directamente si ya no vas a utilizar más adelante la variable. Por ejemplo:


      if(balanza.get_units(20)>2.0){

      //Led on

      }

      Else {

      //led off

      }

      • Alejandro9114

        Alejandro9114 19/12/2018 Responder

        Hola buen día , Para ese ejemplo 2.0 vendrían siendo 2 kilos ? , porque tengo problemas de esa índole , no se en que escala trabaja el get. Units , saludos!
      • martin

        martin 25/01/2018 Responder

        hola. muchas gracias por sus tutoriales ,son muy explicables . queria saber como podria hacer que envez de que prenda y se apage la led ,mande una señal con un módulos de RF de 433Mhz.
        y que otro arduino prenda el led..(lo que necesito que sea Comunicación Inalámbrica con módulos de RF de 433Mhz) Que ponga un peso y que pueda prender el led inalambrico..
        Muchisimas gracias por su tiempo..
  • Julio

    Julio 09/01/2017 Responder

    Buenas.
    Estoy haciendo un proyecto y necesito tomar unas mediciones de carga con los ciclos de un motor el encoder funciona a 12 voltios tengo una fuente para alimentar este y el arduino aparte en el momento que conecto el modulo como se indica en el tutorial al arduino alimentado con la fuente de 12 voltios este deja de funcionar y se bloquea la comunicación con el pc,
  • Valdir

    Valdir 04/01/2017 Responder

    Olá,

    Parabéns pelo o trabalho. Gostaria que saber como posso fazer para mostrar os dados em 4 displays de sete segmentos multiplexados. Quando coloco só o código do display na função loop, os displays funcionam. Quando coloco o código da balança, os displays ficam só piscam e apagam rapidamente.



  • Jorge Luis

    Jorge Luis 03/01/2017 Responder

    Hola, una consulta, el HX711 para comunicarse con el arduino que protocolo de comunicación utiliza?? quiero hacer el enlace entre HX711-PIC pero no se que protocolo usar, es RS232, SPI, I2C
    • Naylamp

      Naylamp 01/02/2017 Responder

      Hola Jorge, el HX711 usa su propio protocolo, es fácil de implementar, solo usa un pin de reloj y uno de datos, para leer datos necesitas hacer shiftIn.

      La librería que utilizamos https://github.com/bogde/HX711/blob/master/HX711.cpp esta implementada en lenguaje C, podrías implementarlo en CCS
  • kennedy

    kennedy 02/01/2017 Responder

    amigos estoy buscando la ficha tecnica de la celda de carga
  • HERIBERTO VARGAS

    HERIBERTO VARGAS 28/12/2016 Responder

    Cada vez que enciendo la celda de carga utilizando los codigos que estan en el foro me da valores diferentes se descalibra la celda (200kg), la calibro con la escala y tambien hice una curva de calibracion, pero a los minutos o al apagar y encender el arduino ya se descalibra. que debe ser?
  • Guillermo

    Guillermo 26/12/2016 Responder

    Estimado Naylamp
    No encuentro manera de que la librería HX711 funcione ,probé todas las posibilidades que se me ocurrieron y lo único que cambia es el tipo de error pero siempre el error, el que puedo describir en algunos casos es "error de compilación y algo en ingles que no lo entiendo (me refiero al idioma ingles) y termina el párrafo con "SCALE".
    Cambiando el nombre de la librería HX711 , hx711, Hx711 y no hay caso.
    Muchísimas gracias por prestarme atención y ver si puedes indicarme posibles erroes que este cometiendo. Abrazo grande. Felices Fiestas. Guillermo.
    • Lucero

      Lucero 09/07/2018 Responder

      Hola, disculpa pudiste resolver el error del programa es que a mi me pasa exactamente lo mismo
  • Joel Korb

    Joel Korb 21/12/2016 Responder

    Hola que tal, logre hacerlo andar en una pantalla tipo Tv y la medicion se va actualizando y va mostrando la nueva medición que hace una abajo de la otra infinitamente, como tendría que hacer para que se actualice en el lugar? Muchas Gracias espero tu respuesta!
    • Naylamp

      Naylamp 23/12/2016 Responder

      Hola Joel, En el monitor serial de Arduino no se puede realizar lo que solicitas, pues solo es monitor serial, En un LCD por ejemplo si se puede, pues allí se trabaja con un cursor, para escribir una nueva lectura se limpia la pantalla, posteriormente se ubica el cursor en la primera posición y se escribe el nuevo valor.
      • Joel Korb

        Joel Korb 07/01/2017 Responder

        Ya intente pero no logre hacerlo andar, si no es mucha molestia, podria escribirmelo brevemente con el idioma del sktech? gracias
  • manuel quezada

    manuel quezada 20/12/2016 Responder

    que tal amigo seria posible unir dos celdas de 10kg para poder pesar hasta 20 kg . no puedo conseguir una celda de 20kg :(
    • Naylamp

      Naylamp 23/12/2016 Responder

      Hola Manuel, Tendrías que ubicar cada celda en dos puntos de tu balanza, el peso se distribuiría en esos dos puntos de apoyo, el peso total seria la suma de cada celda. Pero tendrías que usar un transmisor hx711 para cada celda.
  • Miguel

    Miguel 18/12/2016 Responder

    Hola queria preguntar si alguien a intentado usar los dos canales de lectura que trae el modulo, sera posible? Gracias
  • Mario

    Mario 15/12/2016 Responder

    Hola, no soy capaz de agregar una condicion a la varialble balanza.gets_units(20); lo hago de esta manera: " if (peso >11)
    {
    Serial.print("ok");
    }

    else
    {
    Serial.print("x");
    }"

    y no me sigue las acciones
    • Naylamp

      Naylamp 23/12/2016 Responder

      Hola Mario, balanza.gets_units(20) te devuelve un valor de tipo flotante si estas usando una variable tiene que ser del mismo tipo. En Operaciones las constantes tambien se trabajan como flotante, por ejemplo 11.0 en lugar de 11 saludos.
  • Rubén

    Rubén 14/12/2016 Responder

    Perdón, desde -180 hasta -53000. y sigue bajando.
    • Naylamp

      Naylamp 23/12/2016 Responder

      Podría ser por el ruido o instalación, tendrías que ver si después de escalar ese error es significativo, por ejemplo si es mayor a 10g o 100g entonces podría estar defectuosa tu celda.
    • Rober_1290@hotmail.com

      Rober_1290@hotmail.com 23/12/2016 Responder

      Podría ser por el ruido o instalación, tendrías que ver si después de escalar ese error es significativo, por ejemplo si es mayor a 10g o 100g entonces podría estar defectuosa tu celda.
  • Ruben

    Ruben 14/12/2016 Responder

    Mi programa desciende desde -180 hasta 53000 y sigue bajando con cada lectura, alguna idea de lo que pasa?
    • Miguel

      Miguel 18/12/2016 Responder

      Hola Ruben, es posible que tengas conectada o la alimentacion de la celda , o la señal , invertidos, prueba cambiando entre si los cables verde y blancos. Saludos
  • Naylamp

    Naylamp 14/12/2016 Responder

    Hola Javier, la sensibilidad HX711 es de 12bits, y tranquilamente podrías realizar lecturas en milivoltios. Pero mejor es usar un ADC, he incluso directo al arduino si usas el voltaje de referencia interno, la entrada analógica tendría una resolución de 1.1V/1024=0.00107V = 1mV
    y si deseas más resolución, amplifica la señal con un LM358.
  • javier

    javier 29/11/2016 Responder

    Hola que tal gracias primero por todo, muy entendible, tengo una duda cuanto es la sensibilidad de lectura en volt, ejemplo quiero leer una señal de 30 mv crees que me pueda amplificar y poder leer de mv en mv en el arduino? de antemano gracias
    • Naylamp

      Naylamp 14/12/2016 Responder

      Hola Javier, la sensibilidad HX711 es de 12bits, y tranquilamente podrías realizar lecturas en milivoltios. Pero mejor es usar un ADC, he incluso directo al arduino si usas el voltaje de referencia interno, la entrada analógica tendría una resolución de 1.1V/1024=0.00107V = 1mV
      y si deseas más resolución, amplifica la señal con un LM358.
  • Odair

    Odair 27/11/2016 Responder

    Boa noite!

    Meu nome é Odair e sou do Brasil / Santa Catarina, e sou de Içara, que fica 200km de Floripa. Estou tentanto comunicar o HX711 com um PIC16F877A, mas estou um pouco confuso. Por acaso o amigo tem algúm exemplo de rotinas PIC Assembly ou CCS.

    Grato, Odair
    • Naylamp

      Naylamp 14/12/2016 Responder

      Hola Odair, EL protocolo de comunicación del HX711 es fácil de implementar, revisa la librería que usamos allí está la implementación de las rutinas necesarias. Como observas la librería https://github.com/bogde/HX711/blob/master/HX711.cpp esta implementada en lenguaje C, podrías implementarlo en CCS
  • Fernando

    Fernando 25/11/2016 Responder

    ante todo gracias por compartir tu excelente trabajo .MI pregunta va por el tema de cambiar de placa de arduino por nodemcu esp8266 12e si se podria y que tengo que cambiar en tu codigo

    saludos Fernando
    • Naylamp

      Naylamp 14/12/2016 Responder

      Hola Fernando, puedes cambiar de placa y el programa no cambia, solo declara el pin al GPIO en donde lo has conectado.
      • Fernando

        Fernando 28/12/2017 Responder

        Muchas gracias
  • Jaime Orea

    Jaime Orea 24/11/2016 Responder

    Tambien me gustaria saber su opinio si seria mejor manejarlo directamente en forma serial para tener mayor precision y sea mas rapida la lectura que sea enviada en forma serial a una tarjeta serial del plc? Me recomienda esta opcion y si podria apoyarme como desarrollarla por favor tengo un arduino uno.

    Muchisimas gracias por su apoyo

    Jaime
  • Jaime Orea

    Jaime Orea 24/11/2016 Responder

    Hola buen dia a todos primeramente quiero darle las gracias a autor de esta pagina y decirle q esta padre su proyecto, quisiera su apoyo para ver si es posible q la lectura q estoy leyendo me la convierta a un voltaje de salida de 0-5 VDC utilizando un DCP4921 ya tengo funcionando gracias a su proyecto la celda y el display solo me falta dar esa salida con DCP4921 pero aun no lo logro la celda de carga es de 5 KG. Esta Señal necesito enviarla al PLC a travez de una Tarjeta analogica q tiene resolucion de 4095 paso en unidades de ingenieria, Me podrian hacer favor de apoyar en mi proyecto.
    Muchas gracias a todos y espero me puedan brindar su apoyo.
    Saludos
    Jaime
  • Pablo

    Pablo 22/11/2016 Responder

    Hola, esta muy bueno, quería saber como podemos saber la resolusión minima en base a la celda de carga que se seleccione, no se si estoy en lo correcto, pero puede ser que sea el peso Maximo de la celda dividido 2^24 o es un parametro de la propia celda?
    Gracias!!
    • Naylamp

      Naylamp 26/11/2016 Responder

      Hola Pablo, efectivamente la resolución está definida por el ADC del HX711 que es de 24bits, y se determina como mencionas, pero la precisión si depende de la calidad de la galga o celda.
  • diego

    diego 19/11/2016 Responder

    Buenas tardes

    Una pregunta como puedo hacer para visualizar el peso en una LCD 16X2.

    Gracias
    • Naylamp

      Naylamp 26/11/2016 Responder

      Hola Diego, para trabajar con un LCD solo reemplazado agrega junto a los Serial.print() un LCD.print(), puedes guiarte de nuestro Tutorial LCD
  • alejandro gutierrez

    alejandro gutierrez 16/11/2016 Responder

    y si la celda de carga solo tiene 3 cable que hago ? gracias
    • Naylamp

      Naylamp 16/11/2016 Responder

      Hola Alejandro si la celda tiene 3 terminales entonces no tiene una salida de puente wheatstone, requisito para poder trabajar con el HX71. Para poder trabajar necesitas conseguir 4 celdas y armar el puente wheatstone, como es el caso de las celdas tipo botón que se encuentras en las balanzas digitales.
  • Ivan Moreno

    Ivan Moreno 11/11/2016 Responder

    Hola, me gustaria saber si puedo usar el Hx-711 con una celda de carga de 4 toneladas y como hago para realizar la tara de este. Muchas gracias por tu ayuda.
    • Naylamp

      Naylamp 16/11/2016 Responder

      Hola Ivan, el HX711 internamente realiza la lectura de un puente wheatstone que conforma la galga de la celda, amplifica y digitaliza la lectura. Si tu celda tiene salida de puente wheatstone deberías poder trabajar normalmente.
  • Cesar Diaz

    Cesar Diaz 01/11/2016 Responder

    Excelente Aporte amigo !!!
  • Enrique Arvizu

    Enrique Arvizu 29/10/2016 Responder

    Hola, me gustaría hacer este proyecto pero que se pueda hacer la calibración directamente desde un teclado, ya instalado todo. Tengo una idea de cómo hacerlo (Tendría que leer y sustituir valores en el programa automáticamente, es decir que el balanza.set_scale inicialmente sea X y después se remplace por el valor obtenido) . ¿Me podrian ayudar? GRACIAS.
    • Naylamp

      Naylamp 16/11/2016 Responder

      Hola Enrique, lo que planteas es la forma correcta de trabajar, nosotros lo separamos en dos programas para una mejor comprensión. Tendrías que implantar una función para el calibrar donde el operario ponga un peso patrón por ejemplo de 10Kg y el programa calibre de forma automática, el valor de la escala nueva se debe guardar en la eeprom. Y antes de inicializar la balanza debes de leer desde la eeprom el valor de la escala.
  • Rodolfo

    Rodolfo 24/10/2016 Responder

    Buen día
    Oye quisiera saber si se pueden conectar 4 celdas de carga simultáneamente a un solo arduino
    • Naylamp

      Naylamp 28/10/2016 Responder

      Estimado Rodolfo, si es posible, pero cada uno con su propio transmisor HX711, En el programa deberás crear un objeto diferente para cada celda por ejemplo: HX711 balanza2(Pin_DOUT2, Pin_CLK2); Te recomiendo calibrar las celdas de forma individual.
  • Javier

    Javier 23/10/2016 Responder

    Hola quería saber si se puede hacer sin el módulo HX711,colocando directamente los dos cables de señales de la celda de carga al Arduino,uno en la entrada analógica y otro en gnd.Los otros dos cables E+ y E- conectarlos en +5 y gnd del Arduino o con una fuente aparte.
    • Naylamp

      Naylamp 28/10/2016 Responder

      Estimado Javier. Los 4 cables de la celda corresponden a un Puente wheatstone, dos pines son para alimentar el puente y en los otros 2 debes medir la diferencia de voltaje, si uno de esos pones a gnd estarías afectado la configuración del puente. Puedes intentar medir las dos salidas y hacer una resta para obtener el voltaje. Ten en cuenta la precisión y resolución que deseas obtener. Un transmisor HX711 tiene un ADC de 24bits en cambio el ADC de arduino es de solo 10bits.
  • yony llorente

    yony llorente 21/10/2016 Responder

    amigo estoy interesado en algunos elementos.
    solo quería pregunta si me puede ayudar con la programación de la misma pero anexando un diplay
    • Naylamp

      Naylamp 28/10/2016 Responder

      Estimado Yony, para trabajar con un LCD sigue la misma lógica, reemplaza los Serial.print() LCD.print(), puedes guiarte de nuestro Tutorial LCD
  • Christian

    Christian 12/10/2016 Responder

    hola.... Yo quisiera adquirir los materiales. Me supongo que me servirá para una celda de carga de 1000 kg.

    Excelente todo

    saludos
    • Naylamp

      Naylamp 14/10/2016 Responder

      Hola Christian, puedes trabajar con cualquier celda que tenga 4 hilos, estos internamente tienen una galga en configuración de puente Wheatstone. Actualmente solo vendemos nuestros productos en Perú, esperamos en el próximo año empezar a realizar ventas en otros países.
  • Jesus Ortega

    Jesus Ortega 10/10/2016 Responder

    Que tal, excelente trabajo.
    Existe alguna manera de mandar los datos del monitor serial automaticamente a arduino?
    Gracias
    • Naylamp

      Naylamp 14/10/2016 Responder

      Hola Jesus, Si, nosotros trabajamos con el monitor serial para que sea fácil de implementar y probar el tutorial. Pero puedes usar botones e indicadores led o una pantalla LCD como interfaz.
  • steven

    steven 09/10/2016 Responder

    Que interesante proyecto, también lo puedo usar con una celda de carga de 40kg?
    • Naylamp

      Naylamp 14/10/2016 Responder

      Si Steven, siempre y cuando la celda se de 4 hilos.
      • Camila

        Camila 18/07/2018 Responder

        Hola comento esto ya que estoy haciendo un proyecto con una celda de carga es de 50 kilos y tiene tres hilos este proye to no me sirve? en ese caso algún tutorial de como hacerlo?
  • Juan David

    Juan David 07/10/2016 Responder

    Hola Naylamp, muchas gracias por compartir tu conocimiento. Ya realice el montaje de los elementos, hice la calibración y pude obtener el peso. Sin embargo, cuando no hay ningún elemento sobre la balanza no se queda estable en cero y se muestran valores cercanos a el. Creo que existen problemas de ruido quisiera saber si por favor me puedes ayudar a solucionarlo. Muchas gracias!
    • Naylamp

      Naylamp 14/10/2016 Responder

      Hola Gustavo, como mencionas puede ser por ruido, eso significa que los valores oscilan alrededor de cero esto lo solucionas con un filtro pero si el valor está lejos de cero se debe a la calidad de tu celda, dejando un botón para Tara se puede solucionar eso.
      • Mariano

        Mariano 06/10/2017 Responder

        Hola como se hace la conección del botón de tara para no tener que apagar la balanza para volver a cero Gracias
  • Gustavo Espínola

    Gustavo Espínola 03/10/2016 Responder

    Holaa no me pesa nada. Estoy usando una celda de carga de 20 kg de capacidad y al momento de calibrar me aparece el peso de 0 por mas de que le cargue 19 kg en la celda .
    • Naylamp

      Naylamp 14/10/2016 Responder

      Hola Gustavo, si los valores no cambian al cambiar el peso puede ser que tengas un error de conexión o que la galga de tu celda esté rota.
  • Gonzalo Borja

    Gonzalo Borja 26/09/2016 Responder

    Que tal Naylamp, excelente proyecto, ando haciendo una maquina de tensión universal operada por un motorreductor.
    El problema es que cada que cambio el sentido de giro del motor por un interruptor de giro el arduino se cuelga y necesito reiniciarlo para que vuelva a funcionar, ojala puedas ayudarme en este problema.
    Gracias
    • Naylamp

      Naylamp 30/09/2016 Responder

      Hola Gonzalo, necesitas conectar diodos para eliminar las corrientes que se generan cuando conmutas la tensión. Las diodos conéctalos de la misma forma como se conectan los diodos en un puente H , esto si estas usando la misa fuente para el motor y el arduino. Si usas relees también deben tener su diodo en sentido inverso en paralelo a la bobina. Puedes agregar condensadores en paralelo a la fuente con el fin de eliminar el ruido.
      • Gonzalo Borja

        Gonzalo Borja 10/10/2016 Responder

        Muchas gracias, el problema es que el motorreductor no esta involucrado con arduino.
        El motorreductor esta alimentado por 220 V a la red de la empresa y el arduino por medio de usb de la computadora.
        Cabe mencionar que el motor no se controla con arduino, el arduino solo lo uso para la celda de carga y esto.
        Espero puedas ayudarme, Gracias
  • Danel

    Danel 24/09/2016 Responder

    Y como le colo la convercion para hacerlo Fuerza osea en Newtons
    • Naylamp

      Naylamp 30/09/2016 Responder

      Hola Daniel, solo multiplica el peso en kilogramos por el valor de la gravedad. O también has la calibración usando unidades de N en lugar de Kg.
  • Jeison Diaz

    Jeison Diaz 19/09/2016 Responder

    Hola buenos dias. Amigo observe tu proyecto y es excelente, Queria preguntarte una cosa, lo que pasa es que tengo que realizar un proyecto para el colegio y debo llenar envases de 100mL, entonces pienso hacerlo con electroválvulas que por medio del peso cuando la botella se llene estas se cierren, son 12 electroválvulas. No se si tu me puedes colaborar con cualquier información o recomendación o si es posible hacer este proyecto con tu sistema. Agradezco cualquier información que me puedas suministrar.
    Gracias.
    • Naylamp

      Naylamp 21/09/2016 Responder

      Hola Jesion, Si en tu proyecto no necesitas precisión para los 100mL puedes trabajar solo abriendo la válvula por un tiempo X, siempre y cuando el caudal sea constante. La otra forma de hacerlo es por peso, para esto a nuestro ejemplo solo agrégale una condición If() para comparar el peso y cerrar la electroválvula. Para trabajar las electroválvulas usa un Modulo relay
      • Engerberth

        Engerberth 11/10/2016 Responder

        estoy trabajando en un proyecto parecido pero cuando coloco la condición en el if y lo comparo con otro valor no lo reconoce
        aqui te dejo las modificaciones que he hecho a ver si puedes ayudarme


        #include "HX711.h"
        #include

        LiquidCrystal lcd( 2,3,4,5,6,7);
        int led = 12;
        float peso1 =0.00;


        #define DT1 A3 // Pin analógico A1 para el pin DT del transmisor de celda de carga HX711
        #define SCK1 A2 // Pin analógico A0 para el pin SCK del transmisor de celda de carga HX711


        // Creación del objeto para el transmisor de celda de carga HX711
        HX711 balanza1(DT1, SCK1);

        void setup() {
        pinMode ( led, OUTPUT);


        lcd.begin(16,2);
        Serial.begin(9600);

        Serial.print("Lectura del valor del ADC:t");
        Serial.println(balanza1.read()); // Comienzo de la lectura de la balanza digital
        Serial.println("No ponga ningun objeto sobre la balanza");
        Serial.println("Destarando...");
        Serial.println("...");
        balanza1.set_scale(5850); // Establecemos la ESCALA calculada anteriormente
        balanza1.tare(20); // El peso actual es considerado Tara.

        lcd.setCursor(0,0);
        lcd.print("BALANZA DIGITAL");
        lcd.setCursor(0,1);
        lcd.print("Listo para pesar");
        delay(5000); // Esperamos 5 segundos para comenzar a pesar

        peso1=((balanza1.get_units(20)));
        }

        void loop()
        {
        lcd.print("BALANZA DIGITAL");
        lcd.setCursor(0,1);
        lcd.print("Peso: ");
        lcd.print(balanza1.get_units(20),4); // Se obtiene el valor real del peso en Kg del elemento
        lcd.print("Kg");
        delay(1000);
  • José

    José 19/09/2016 Responder

    Buen día NayLamp.. ¿como puedo hacer para que el resutado lo mande a través de un modulo Bluetooth HC-05.?
    • Naylamp

      Naylamp 21/09/2016 Responder

      Hola José, trabájalo como si fuera una comunicación serial, sin modificar el código puedes instalar el bluetooth en el rx0 y tx0 del arduino, o si a la vez quieres también comunicarte con la PC, trabaja con un SoftwareSerial para el bluetooth o con los rx1 y tx1 en caso trabajes con Arduino mega. Guíate del Tutorial Bluetooth
  • josedu

    josedu 18/09/2016 Responder

    Hola amigo, excelente aporte, quisiera anexarle a este proyecto un bluetooth y una pantalla lcd, como lo puedo hacer, gracias, saludos
    • Naylamp

      Naylamp 21/09/2016 Responder

      Hola José, va a depender de que es lo que quieres enviar por el bluetooth, si solo es trasmitir lo mismo que en el ejemplo se envía a la PC, entonces sin modificar el código instala el bluetooth en el RX0 y TX0 del arduino y desde un terminal serial en Android podrás visualizar los datos, puedes guiarte del Tutorial Bluetooth
      . Para el caso del LCD instálalo en los Pines digitales que te sobren: Tutorial LCD
  • Bom

    Bom 14/09/2016 Responder

    Hola Naylamp tengo un problema en algunas de las librerias este en el error que me marca:

    /home/control02/sketchbook/libraries/HX711-master/HX711.cpp: In member function 'long int HX711::read_average(byte)':
    /home/control02/sketchbook/libraries/HX711-master/HX711.cpp:97:9: error: 'yield' was not declared in this scope
    yield();

    no se si me puedas ayudar.
    • Naylamp

      Naylamp 21/09/2016 Responder

      Hola, intenta instalar nuevamente la librería, y si persiste intenta probar con otra versión del IDE. Trabajando con el ejemplo que mostramos sin hacer ninguna modificación no te debe de salir ningún error. Saludos
  • Bon

    Bon 14/09/2016 Responder

    Hola Naylamp tengo un problema a la hora de ejecutar el programa me marca un error en alguna libreria este es el error que me marca:
    /home/control02/sketchbook/libraries/HX711-master/HX711.cpp: In member function 'long int HX711::read_average(byte)':
    /home/control02/sketchbook/libraries/HX711-master/HX711.cpp:97:9: error: 'yield' was not declared in this scope
    yield();

    no se a que se deba con la yield();
  • yeisson

    yeisson 07/09/2016 Responder

    Hola, estoy usando una celda de 350kg, despues de un tiempo comienza a descalibrarse se sube 2 kg y se nota entre mas peso, al estar sin peso no se nota que se cambie el peso siempre permanece en 0, pero al poner 20kilos sale 19 o 21 y en 60 sale 62 o 59, es como si el peso estuviera en función del tiempo, alguna idea para darle mas estabilidad.
    muchas gracias
    • lorenzo

      lorenzo 10/09/2017 Responder

      es verdad, tengo ese mismo problema, hice las pruebas del programa con un arreglo de 4 celdas, cada uno de 2 toneladas y tenia esa variacion, aumentaba o dismunia el peso, pues cuando las celdas estaban sin peso alguno, en vez de mostrarme 0, me mostraba 2kilos, y se subia aveces hasta 4 kilos sin peso alguno
    • angel

      angel 07/04/2017 Responder

      hola que tal, entre mas peso tenga la celda de carga al momento de la calibracion es mas exacta su medicion, es decir si tu celda es de 350kg, la debes calibrar minimo con 200kg. saludos
    • Naylamp

      Naylamp 14/09/2016 Responder

      Hola Yeisson, realiza la calibración usando un valor cercano al valor de tu celda por ejemplo 250Kg o 300Kg, ten en cuenta que al aumentar el rango la precisión disminuye, podría ser también que tu celda esté defectuosa. Si oscila puede ser por ruido en el peso(objetos con movimientos).
  • felipe cardona

    felipe cardona 29/08/2016 Responder

    Hola que interesante , quiero realizar esto mismo pero con una celda de 500 kg se puede realiza con el modulo hx 711 o lo realizamos con otro modulo gracias
    • Naylamp

      Naylamp 02/09/2016 Responder

      Hola Felipe, puedes usar el HX711 lo único que cambiaría seria la escala, que como explica en el tutorial se calcula fácilmente.
      • felipe cardona

        felipe cardona 27/09/2016 Responder

        gracias por su respuesta , ahora tengo la siguiente inquietud , deseo almacenar este peso en una eeprom , puedo almacenarla directamente obtenido de (balanza.get_units(20),3); ,, quisiera saber el tipo de dato ue me entrega esta linea de codigo , es un float ?? y si lo es lo puedo modificar por un long ??? gracias saludos desde colombia
  • DaNieL

    DaNieL 29/08/2016 Responder

    Hola buenas, necesito conectar dos celdas de 50 kg(cada una con tres cables) haciendo un puente y conectarlo al módulo HX711; me podrias decir que necesito y como conectarlas. Estuve mirando por aqui
    https://learn.sparkfun.com/tutorials/load-cell-amplifier-hx711-breakout-hookup-guide?_ga=1.86024477.420053681.1422640159

    pero no entiendo algunas cosas
    • Naylamp

      Naylamp 02/09/2016 Responder

      Hola Daniel, Las celdas de 3 hilos no tiene puente, por eso como explica en el link que comentas, necesitas 4 para formar el puente: las conexiones serian: https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/SparkFun%20Load%20Sensor%20Combinator%20v11.pdf
      • Omar Adrian

        Omar Adrian 29/04/2018 Responder

        Disculpa ya he buscado muchísima información y he encontrado la manera de conectar ese sensor de 50 kg haciendo un puente de wheatstone usando resistencias de 1 k ohm si es necesario te envio los diagramas que tengo y las conexiones sin embargo no estoy seguro y desconozco si este skecth sirve y funciona con esa conexión en teoría debería de funcionar ya que con el puente te arroja una señal A+ y A- con su respectivo E+ y E- sin embargo como comento aun no logro saber si la programación es correcta o incluso la conexión ya que hay muy poca información acerca de este sensor de peso y necesito realizarlo ya que es para un proyecto , cuento con dos sensores de 50 kg del mismo modelo sin embargo tengo problemas para calibrarlo como comento no se si es correcta la programación para ese tipo de sensores están conectados al amplificador Hx711
  • ber

    ber 23/08/2016 Responder

    Buen dia, me interesaria saber como poder ver la información el un lcd con teclado que acabo de adquirir, me podrias pasar info? Gracias
    • Naylamp

      Naylamp 26/08/2016 Responder

      Hola Ber, depende del modelo de LCD que tengas, puedes revisar nuestro tutorial LCD en caso tengas uno de esos modelos:
      http://www.naylampmechatronics.com/blog/34_Tutorial-LCD-conectando-tu-arduino-a-un-LCD1.html
  • Johnny

    Johnny 22/08/2016 Responder

    Hola señores de Naylamp buenas tardes. Quisiera saber si me pueden ayudar con la siguiente implementacion: Si el valor esta dentro del rango del cero y cambia por ejemplo a 500 g en 0,5 segundos, quisiera capturar el valor de peso cuando se cumpla ese periodo de tiempo. Es eso posible? Gracias por la ayuda.
  • Maxi

    Maxi 08/08/2016 Responder

    Hola, necesito leer una celda de carga a través de un modulo HX711 y mostrarlo en un diplay 16X2. ¿Se puede? ¿no hay un tutorial de eso?
    Saludos
    • Naylamp

      Naylamp 12/08/2016 Responder

      Maxi, claro que se puede. A este tutorial solo agrégale las conexiones y programación del LCD, es fácil, puedes guiarte nuestro tutorial LCD: http://www.naylampmechatronics.com/blog/34_Tutorial-LCD-conectando-tu-arduino-a-un-LCD1.html
  • fabio

    fabio 04/08/2016 Responder

    Boa noite!!

    fiz codigo em PIC para utilizar essa celula e modulo hx711,porem está mostrando os valores para 0 kg 8377146....e para 7 kg valor 10316782,já vi varios tutoriais e nada....alguem tem como me ajudar ajudar fazer tranformar esse valor em kg?
    utilizo celula de 10 kilos
    • Naylamp

      Naylamp 12/08/2016 Responder

      Fabio, disculpa la demora de la respuesta, obtén la medida de dos puntos, y con eso calcula la ecuación de la recta, con dicha ecuación puedes pasar del rango de los valores que lees a uno de 0 10kg. O puedes implementar una función similar pero en a esta pero en float: https://www.arduino.cc/en/Reference/Map Y usar peso=map(lectura, 8377146, 10316782,0,7);
  • Israel

    Israel 25/07/2016 Responder

    Hola, me a sido de gran utilidad, nada mas que yo estoy usando el sensor MD-PS002, ya que deseo censar vacío, tienes alguna experiencia con este caso? aún no sea con el mismo tipo de sensor, de antemano gracias, y felicidades esta muy claro todo.
    • Naylamp

      Naylamp 26/07/2016 Responder

      Hola Israel, no hemos trabajado con el sensor que mencionas, pero al tener salida de puente al igual que la celda de carga deberías poder realizar las lecturas con el HX711, prueba usando las funciones balanza.read() o balanza.read_average(n) estas funciones te devuelven la lectura del ADC, las otras funciones pueden alterar tus resultados ya que trabajan con el OFFSET (tara) y/o la escala.
  • Juan

    Juan 23/07/2016 Responder

    Buen día, primero que nada gracias por el aporte, es muy buen tutorial.

    Estoy haciendo un proyecto de una báscula a la que se le pueda programar set-points para realizar acciones (como abrir o cerrar relevadores), hasta ahorita logré que al llegar a un peso se encienda un led, todo bien hasta allí, lo que no logro hacer es como tomar el dato del HX711 y guardarlo en una variable de entero ejemplo "int peso" y poder usarla para hacer dichas acciones y mostrarla en mi lcd.

    Lo que tengo es una celda de 2Klb (2000 libras) con 3.0 mV/V quizá es grande, hice todo lo que sugieres para obtener la escala y tara, todo bien hasta allí pero me falta eso, a ver si alguien me puede ayudar.
    • Naylamp

      Naylamp 26/07/2016 Responder

      Hola Juan, prueba usando float peso=balanza.get_units(20); si quieres trabajar con enteros cambia a unidades más pequeñas para que no pierdas los decimales.
  • Greco

    Greco 22/07/2016 Responder

    hola! buen proyecto , me ha ayudado con el mio pero tengo una duda... que es como funciona el codigo balanza.read() y el balanza.get_units(x,x) , porque necesito obtener datos pero trabajando e paralelo con otros sensores y la programacion por si misma que tienes ahi me altera los otros y no solo por el delay sino por los codigos que mencione antes.
    de antemano muchas gracias!!
    • Naylamp

      Naylamp 26/07/2016 Responder

      Hola Greco, balanza.read() te devuelve el valor de lectura del ADC (valor sin escalar incluyendo la tara) y balanza.get_units(n) te devuelve el valor real del peso descontando la tara y con la escala establecida. Si el problema es el tiempo de lectura puedes tomar menos muestras balanza.get_units(1), por ejemplo una por bucle, si tienes mucho ruido en el peso puedes sacar el promediando las lecturas en los diferentes iteraciones. También, antes de relizar una lectura puedes usar la función balanza.is_ready() para verificar si los datos están disponibles para la lectura.
      • Jaime Cortes

        Jaime Cortes 21/01/2019 Responder

        Una pregunta, como puedo hacer para que mida en un tiempo menor a balanza.get_units(1), porque no lee numeros decimales.

        Saludos!
  • oscar

    oscar 21/07/2016 Responder

    buen dia .. buenisimos sus explicaciones,, me podria ayudar... como coloco tiempo a una celda de carga es para hacer balanza pesa personas con monedas.. quedo atento.
    • Naylamp

      Naylamp 26/07/2016 Responder

      Para condicionar con tiempo es mejor usar la función millis(). Por ejemplo
      if(millis()-timpo_inicio>10000) //ingresa a la condición durante 10 segundos, dentro de esta condición se deber de realizar las tareas deseadas, constantemente hay q estar censando la moneda y cada vez que se ingresa la moneda debe de actualizarse el valor de tiempo_inicio con el de millis() actual. Es uno de los varios métodos que pueden usar.
    • Antonio

      Antonio 23/07/2016 Responder

      Hola, amigos. Yo también estoy interesado en ponerle tiempo a la lectura del peso. El monedero es un pulsador que cuando pasa la moneda activa el pulsador y después vuelve a reposo?
      Alguien nos puede hechar una mano.
      Gracias y Salu2
  • Julian

    Julian 19/07/2016 Responder

    Amigo, ¿como haces para usar la imagen de la celda en Fritzing? Ya que Fritzing no tiene estas celdas por defecto. Gracias...
    • Naylamp

      Naylamp 20/07/2016 Responder

      Julián, las imágenes del tutorial no están trabajadas en fritzing. Saludos
  • Carlos Grajales

    Carlos Grajales 19/07/2016 Responder

    Hola,¿Como vas?. Amigo una pregunta. Si digamos, yo quisiera usar 6 balanzas,¿Como podría alimentar los Transistores de Celda de Carga?. Gracias por la Atención prestada.
    • Naylamp

      Naylamp 20/07/2016 Responder

      Carlos, para conectar más de un transmisor de celda, cada transmisor debe estar conectado a 2 pines del Arduino (DT y SCK), En el programa debes crear un objeto por cada transmisor de celda, asignando sus respectivos pines a los que está conectado. Ejemplo:
      HX711 balanza1(A1, A0);
      HX711 balanza2(D2, D3);
      • Adrian May

        Adrian May 27/04/2018 Responder

        Amig disculpa una gran duda si me puedes ayudar estoy un poco atascado estoy haciendo el mismo proyecto sin embargo yo estoy usando celdas de carga de 50 kg pero solo tienen 3 hilos tengo 2 segun lo que he encontraro se deben de conectar en medio puente pero al cargar todas los sketchs que he encontrado son para celdas de carga tipo barra como la de este post y a veces me manda lecturas en negativo y aveces en positivo podrias apoyarme? Te dejo mi correo o si puedes decirme como puedo contactar contigo adriammay009@gmail.com
      • CRISTIAN

        CRISTIAN 24/11/2017 Responder

        hola disculpa estuve intentando podria facilitarme uin codigo de ejempolo para mas de un transmisor de selda
  • andres

    andres 13/07/2016 Responder

    hola compre una selda de carga de 1kg, quisiera programarla para que cuando el peso llegue a 500gr me de una señal positiva en una salida alguien podría ayudarme?
    • Naylamp

      Naylamp 14/07/2016 Responder

      Andres, sigue los ejemplos del tutorial y verifica si estas sensando correctamente el peso. Posteriormente solo agrega una condición para comparar con 0.5Kg y activar la salida digital. Ej:
      float peso=balanza.get_units(20);
      if(peso>0.5)
      digitalWrite(13, HIGH);
      else
      digitalWrite(13, LOW);
      • andres

        andres 27/07/2016 Responder

        use lo q me dijiste y me sale esto

        exit status 1
        expected unqualified-id before 'if'
      • Juan

        Juan 15/07/2016 Responder

        Hola, estoy creando un proyecto que utilizará una celda de carga, tengo algunos problemas.

        Ya estoy usando el convertidor HX711, ya logré que me imprima el peso pero esta vez en un LCD 16x2 y lo muestra bien, pero, al momento de yo querer utilizar ese peso como una variable no logro hacerlo, esto es para que con ese peso, más bien a ciertos pesos ejecute una acción por medio de if.

        void calcularPeso()
        {
        balanza.set_scale(7400L); //La escala por defecto es 1
        }

        void mostrarPeso()
        {
        lcd.setCursor(0, 1);
        lcd.print("PESO: ");
        lcd.setCursor(6, 1);
        lcd.print(balanza.get_units(1),0); Esto quiero utilizarlo como variable, y no lo logro.
        lcd.print(" KG");

        espero me puedas ayudar, gracias.
  • Ivan coronel

    Ivan coronel 10/07/2016 Responder

    hoola , me parece excelente este proyecto
    yo tengo un proyecto parecido pero yo quiero pesar liquido (tinher acrilico) y quiero que lo pesado(lo registrado por la celda) lo tradusca a litros en una pantalla electronica
    • Naylamp

      Naylamp 11/07/2016 Responder

      Hola Ivan, para obtener el volumen solo hay que dividir el peso entre la densidad del líquido, teniendo en cuenta siempre las unidades respectivas y destarando correctamente.
      • yañez

        yañez 02/05/2017 Responder

        hola. me gustaria sabr si me podrias ayudar en algo. yo tengo un proyecto parecido solo que el problema es que el hx711 yo lo tengo que hacer. osea tengo que hacer un opamp que funcione igual, yo compre el hx11 para ver que funciones tenia y que componentes tenia pero la verdad estoy en balnco. sabes como podria hacerlo ?
  • Alvaro Soto

    Alvaro Soto 04/07/2016 Responder

    Si mira en la función balanza me manda un erro me podrías decir porque ? y si es posible me podrías ayudar
    • RAMÓN

      RAMÓN 06/07/2019 Responder

      ESTE LES FUNCIONARA cortesía. Un saludo.
      ¿Porque no les funciona los códigos del post? RESPUESTA : Porque no se inicializá HX711 (vean mi código). En cuanto a la biblioteca HX711, hay quien se dedica a modificar las bibliotecas que actualiza Arduino, bien por ignorancia, bien de mala fé dejan de funcionar y hay que coger la original ó una versión anterior.
      El cambio de unidades a liquidos es facil, PESO=VOLUMEN X DENSIDAD, 1g=1x1cm3 para el agua, 1g/densidad=x cm3.
      CÓDIGO:

      /*
      BALANZA CON CÉLULA HX711
      BIBLIOTECA https://github.com/bogde/HX711
      16/06/2019 RAMÓN +-0.1 gramos

      Initialize library with data output pin, clock input pin and gain factor.
      Channel selection is made by passing the appropriate gain:
      - With a gain factor of 64 or 128, channel A is selected
      - With a gain factor of 32, channel B is selected
      By omitting the gain factor parameter, the library
      default "128" (Channel A) is used here.
      */
      #include "
      HX711 scale; //objeto scale

      const int DT_PIN = 2; //PINES DIGITALES
      const int SCK_PIN = 3;

      void setup() {
      Serial.begin(9600);
      scale.begin(DT_PIN, SCK_PIN); // inicializando

      //----------------------------ESTABLECER LA ESCALA------------------------------------------
      Serial.println("CELULA HX711");
      Serial.println("Parametros para la escala: ");

      Serial.print("Lectura: ");
      Serial.println(scale.read()); // print a raw lectura del ADC

      Serial.print("Media de las lecturas: ");
      Serial.println(scale.read_average()); // print la media de lecturas del ADC

      Serial.print("Obtener valor: ");

      float valores=scale.get_value(); // 10 valores

      Serial.println(valores);


      Serial.print("Unidades: ");
      float unidades=scale.get_units();
      Serial.println(unidades);

      scale.set_scale(2280.f); // this value is obtained by calibrating the scale with known weights 2280.f
      scale.tare(10); // reset the scale to 0 tener encuenta la tara
      }
      //----------------------------------------------------------------------------------------------------------
      void loop() {

      float PESO=-scale.get_units(10)*4.914709414; //CONVERSION DE UNIDAD a gramos *4.914709414 10 medidas

      Serial.print(" PESO APROX: ");
      Serial.print(PESO);
      Serial.println(" gramos");

      scale.power_down(); // put the ADC in sleep mode
      delay(1000);
      scale.power_up();
      }
    • Naylamp

      Naylamp 05/07/2016 Responder

      Alvaro, ¿Que error te sale y en qué línea de código? Verifica que tengas instalada la librería correctamente.
      • Alvaro DAniel

        Alvaro DAniel 30/10/2017 Responder

        Solucione el problema la verdad es que no recuerdo de que fue pero se soluciono
        Me podrias decir de donde puedo conseguir mas datos técnicos de la celda de carga de 10k
        • Julio Tlamayanco

          Julio Tlamayanco 27/11/2017 Responder

          Yo tengo una de 5 y estoy realizando un proyecto.Daniel me podrias decir como le hiciste con tu erro?
          • Jhon

            Jhon 12/05/2019 Responder

            me sale este error en la codigo de calibracion
            (no hay función coincidente para la llamada a 'HX711 :: HX711 (const uint8_t &, const uint8_t &)')
            • edwin

              edwin 19/05/2019 Responder

              Jhon, me sale el mismo error, lo pudiste solucionar?
              • DANY ROJAS

                DANY ROJAS 23/05/2019 Responder

                SEÑORES CORDIAL SALUDO,ESTOY REALIZANDO ESTE MISMO PROYECTO PERO A LA HORA DE COMPILAR ME SALE EL MISMO ERROR, ALGUEN LO LOGRO SOLUCIONAR? Y SI ES ASI DE QUE MANERA LO LOGRARON?
                (no hay función coincidente para la llamada a 'HX711 :: HX711 (const uint8_t &, const uint8_t &)')
                • Taco007

                  Taco007 23/10/2019 Responder

                  Si te sale el siguiente error: 'HX711 :: HX711 (const uint8_t &, const uint8_t &)'), puedes inicializar la librería de la siguiente manera : HX711 balanza(); en lugar de HX711 balanza(DOUT, CLK);
                  • Jorge Güiza

                    Jorge Güiza 17/11/2019 Responder

                    Me aparecia el mismo error, lo unico que hay que hacer es ingresar al link al inicio de esta pagina donde aparecen las librerias, descargarlo y adjuntarlo como libreria.ZIP, despues de esto validar que el puerto com sea el correcto y adicional mirar que este en la placa arduino genuino UNO, y listo problema resuelto.
                  • Vanessa

                    Vanessa 29/10/2019 Responder

                    Taco007 cambio esa línea de código pero después me sale un error en la línea Serial.println(balanza.read());
                    me dice esto:
                    request for member 'read' in 'balanza', which is of non-class type 'HX711()'
                • marcelo

                  marcelo 07/06/2019 Responder

                  Busca la libreria HX711 0.1, ya que las versiones mas nuevas tienen ese problema
      • ygnacio salmerón

        ygnacio salmerón 28/08/2016 Responder

        Deseo adaptar éste sistema y módulos a una celda de 1k libras. Es posible?
Dejar un comentario
Deja su comentario

Menú

Ajustes

Crear una cuenta gratuita para usar listas de deseos.

Registrarse