Vous êtes sur la page 1sur 20

jueves, 2 de junio de 2016

Balanza digital de hasta 20Kg con celda de carga y transmisor HX711

En el POST de hoy vamos a trabajar con una celda de carga de 20Kg, un transmisor de celda de carga HX711, un display LCD 1602,
frecuentemente utilizado a lo largo de todo el BLOG y por último una estructura que fabricaremos en “DM”, que no es más que un tipo de
aglomerado de madera muy resistente, para crear una precisa y práctica balanza digital capaz de pesar elementos de hasta 20Kg. Para comenzar
este proyecto es muy interesante conocer que es y para que se utiliza la celda de carga, además de ver por qué es necesario utilizar un transmisor
de celda de carga HX711 para comunicar la celda de carga con nuestro Arduino y que mediante el mismo podamos interpretar las señales
eléctricas recibidas para mostrar a través del LCD 1602 el peso real de los elementos que nos interesen.
Una celda de carga es un transductor utilizado para convertir una fuerza en una señal eléctrica. Esta conversión empieza a partir de un dispositivo
mecánico, es decir, la fuerza que se desea medir, deforma la galga extensiométrica y por medio de medidores de deformación, que son pequeños
patrones de resistencias utilizados como indicadores de tensión, obtenemos una señal eléctrica con la cual podemos obtener el valor de la fuerza.
Los medidores están unidos a la viga que se deforma cuando se aplica peso, a su vez, deformando el indicador de tensión. Cuando se deforma el
medidor de deformación la resistencia eléctrica cambia en proporción a la carga. Esto se logra por medio de un puente de Wheastone, el cual se
utiliza para medir resistencias desconocidas mediante el equilibrio de “brazos” del puente. Estos están construidos por cuatro resistencias que
forman un circuito cerrado. En el caso de las celdas de carga las resistencias son los medidores de deformación. La celda de carga es ideal para
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
poder medir variaciones sobre presión en una superficie o como simple transductor para medir un peso de algún elemento en contacto con el
dispositivo, como es en nuestro caso. En este POST utilizaremos una celda de carga de 20Kg que es el valor máximo que podrá pesar nuestra
balanza digital.

Celda de carga de 20Kg

El transmisor de celda de carga HX711 es una interface entre la celda de carga y nuestro Arduino, permitiendo poder leer el peso de manera
sencilla. Internamente se encarga de la lectura del puente de Wheastone formado por los medidores de deformación de la celda de carga,
convirtiendo la lectura analógica en digital con su conversor A/D interno de 24 bits. La comunicación con nuestro Arduino se realiza a través de
los pines SCK (Reloj) y DT (Datos) que el transmisor de celda de carga HX711 tiene como SALIDAS.

Transmisor de celda de carga HX711

Por otra parte las ENTRADAS del transmisor de celda de carga HX711 van cableadas a la celda de carga de la siguiente manera:

- Pin E+ del transmisor HX711 à Cable Rojo de la celda de carga de 20Kg.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


- Pin E- del transmisor HX711 à Cable Negro de la celda de carga de 20Kg.
- Pin A- del transmisor HX711 à Cable Blanco de la celda de carga de 20Kg.
- Pin A+ del transmisor HX711 à Cable Verde de la celda de carga de 20Kg.

Como se ha mencionado con anterioridad, toda la estructura de la balanza digital está fabricada en “DM”, que es un aglomerado elaborado con
fibras de madera aglutinadas con resinas sintéticas mediante fuerte presión y calor, en seco, hasta alcanzar una densidad media, ideal para resistir
grandes esfuerzos con un espesor reducido. Cabe decir que las uniones realizadas entre las tablas de DM o entre la celda de carga y las tablas de
DM se realizan mediante tirafondos de 3mm de diámetro en diferentes longitudes y cabeza plana, además de aplicar adhesivo de contacto de
secado rápido en todas las superficies a unir. Como se puede observar en la siguiente imagen, la celda de carga está dotada de una parte hueca
(parte central de la celda de carga), que tiene que quedar en suspensión para su correcto funcionamiento, además hay que tener en cuenta que el
sentido de la flecha indica la dirección de la fuerza o peso a aplicar a la hora de instalar la celda de carga dentro de la estructura de DM.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Despiece y montaje de la estructura de la balanza digital

Para programar correctamente nuestro Arduino y poder visualizar el peso real de los elementos que nos interesen a través del LCD 1602, lo
primero que tenemos que hacer es cargar el programa llamado “Balanza_digital_calibrado.ino” para calibrar la balanza digital, que consiste
básicamente en hallar el valor de la escala que se usará, es decir, hallar el factor de conversión para convertir el 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
un peso conocido, en otras palabras, debemos saber el peso real del objeto que vamos a poner sobre la balanza digital. 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 8Kg pues nuestra celda es
de 20Kg, y por mi casa no he encontrado un peso conocido mayor.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Después de poner el peso en la balanza, a través del monitor serial se mostraran las lecturas del peso, son lecturas sin escalar, por lo que les deben
aparecer números grandes. Muy importante es que el programa comience a funcionar sin el peso colocado en la balanza digital, pues al inicio de
programa se calcula la tara. Posteriormente tendremos que abrir el monitor serie del IDE de Arduino, esperaremos a que el programa reste la tara,
para finalmente poner el objeto de 8Kg (o el peso conocido más cercano a 20Kg que encontremos por casa) y así obtener una serie de valores a
través del monitor serie.

Monitor serie

Con uno o el promedio de estos valores, que en mi caso he utilizado el valor 858000 para redondear, calculamos el valor de la escala que
utilizaremos con la siguiente formula:

Fórmula para el cálculo de la ESCALA

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Con este dato ya obtenido pasamos a programar el sketch que vamos a utilizar para pesar llamado “ Balanza_digital_final.ino”, únicamente
tendremos que sustituir la cantidad entre paréntesis de la línea de código balanza.set_scale(107250) por el valor que hayamos obtenido nosotros,
para que la balanza digital nos pese correctamente. Una vez modificado el valor, validaremos y cargaremos el programa en nuestro Arduino. Una
vez que se esté ejecutando el programa en nuestro Arduino debemos de esperar unos instantes hasta que se quite la tara, para que posteriormente
aparezca a través del LCD 1602 el peso de cualquier elemento que pongamos sobre la balanza digital, siempre y cuando este no exceda de los
20Kg.
Para realizar los dos programas anteriormente mencionados nos ayudaremos de las funciones ya programadas y definidas para trabajar con el
transmisor de celda de carga HX711, que vienen incluidas dentro de la librería #include”HX711.h” que os podréis descargar desde uno de los
primeros POST de este BLOG. A continuación os muestro una descripción de las principales funciones con las que se trabaja:
· HX711(byte PinData, byte PinClock): Es el constructor del objeto HX711, se puede trabajar con cualquiera de los pines.
· void 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;
· void 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;
· long read(): Espera hasta que el dispositivo esté listo y devuelve la lectura del ADC del HX711.
· long read_average(byte n): Realiza n veces la lectura del ADC y devuelve el promedio.
· double 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.
· float 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.

Lista de Materiales:

· Arduino UNO Rev.3.

· Cable USB tipo A-B.

· Celda de carga de 20Kg.


Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
· Transmisor de celda de carga HX711.

· Módulo LCM 1602 I2C V1.

· Display 16x2 LCD 1602.

· Estructura de la balanza digital:


o Tablas de DM:
§ 1 de 150x200mm, 1 de 60x75mm y 1 de 60x60mm.
o Tirafondos de cabeza plana:
§ 4 de 3x20mm, 2 de 3x25mm y 2 de 3x35mm.
o Adhesivo de contacto de secado rápido.

· Protoboard.

· Cables de conexión.

Código del programa:

· Balanza_digital_calibrado:

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


DATA HOSTED WITH ♥ BY PASTEBIN.COM - DOWNLOAD RAW - SEE ORIGINAL

1. /* TITULO: Balanza digital de hasta 20Kg con celda de carga y transmisor HX711 - Balanza_digital_calibrado
2.
3. AUTOR:
4.
5. MARIANO DEL CAMPO GARCÍA (@2016) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
6. - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
7. - TWITTER: https://twitter.com/MarianoCampoGa
8. - CORREO: marianodc83@gmail.com
9.
10.
11. DESCRIPCIÓN DEL PROGRAMA
12.
13. Con este programa simplemente vamos a obtener un valor a través del monitor serie para poder
14. calcular la ESCALA necesaria para calibrar la balanza digital, es decir, convertir un valor sin
15. sentido alguno en un peso en Kg. Dicho valor de ESCALA le debemos de introducir en el programa
16. "Balanza_digital_final", justo en la línea de código "balanza.set_scale(ESCALA)".
17.
18.

Descarga del Programa para el calibrado

· Balanza_digital_final:

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


DATA HOSTED WITH ♥ BY PASTEBIN.COM - DOWNLOAD RAW - SEE ORIGINAL

1. /* TITULO: Balanza digital de hasta 20Kg con celda de carga y transmisor HX711 - Balanza_digital_final
2.
3. AUTOR:
4.
5. MARIANO DEL CAMPO GARCÍA (@2016) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
6. - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
7. - TWITTER: https://twitter.com/MarianoCampoGa
8. - CORREO: marianodc83@gmail.com
9.
10.
11. DESCRIPCIÓN DEL PROGRAMA
12.
13. Con este programa, al modificar la línea de código "balanza.set_scale(ESCALA)", por el valor de ESCALA
14. calculado anteriormente, podremos pesar elementos de hasta 20Kg con nuestra balanza digital y los
15. visualizaremos a través del LCD 1602 que tenemos conectado a nuestro Arduino.
16.
17.
18. ESQUEMA DE CONEXION

Descarga del Programa final

Video:

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Mariano del Campo García en 9:30

Compartir

51 comentarios:

john pira 20 de septiembre de 2016, 15:09


hola buenas tardes, estoy armando su proyecto pero tengo una duda, porque dice que sirve hasta 20Kgs que tiene que ver si utilizo una celda
de mayor capacidad? agradezco su colaboracion.
Responder

Respuestas

Mariano del Campo García 21 de septiembre de 2016, 2:40


Claramente porque yo utilizo una celda de carga de 20kg. Si utilizas una mayor podrás pesar mayores cantidades

Responder

john pira 26 de septiembre de 2016, 19:51


ok, muchas gracias por la aclaracion pense que era algun tipo de restriccion, ahora que he intentado replicar su proyecto me encuentro que no
tengo la misma libreria y no me reconoce balanza.set_Scale me puede colaborar con cual libreria trabaaj ud y si no es mucha molestia una
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
aclaracion si necesitara conectar dos celdas de carga al mismo arduino como podria hacerlo, le agradezco toda su colaboracion
Responder

Respuestas

Mariano del Campo García 27 de septiembre de 2016, 1:45


Si quieres conectar dos celdas de carga en un mismo Arduino te hacen falta dos HX711 y en la programación tienes que crear dos
objetos de ese tipo con las salidas DT y SCK conectadas en diferentes entradas analogicas, por ejemplo para la primera celda A0 y
A1, y para la segunda A2 y A3. Las librerías se encuentran dentro de uni de los primeros POST del BLOG (Diciembre de 2015).
Saludos

jhernandez 19 de diciembre de 2016, 7:01


disculpa tendras el link de la libreria que utilisaste?

Responder

Jesus Herrera 6 de octubre de 2016, 22:03


Hola e seguido tu post y trato de implementar el peso de la celda en un pequeño proyecto de auromatizacion pero al tratar de encontrar el valor
de encontrar la escala el valor de tara me da 0 o negativo estoy asiendo todo al pie de la letra que ago mal??
Responder

Respuestas

Mariano del Campo García 10 de noviembre de 2016, 14:49


No lo se. Revisa las conexiones y la alimentación de la celda de carga y del conversor AD

Responder

Unknown 8 de noviembre de 2016, 15:00


Hola que tal, me podrías proporcionar los diagramas de conexiones?
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
Responder

Respuestas

Mariano del Campo García 10 de noviembre de 2016, 14:50


iano del Campo García dijo...
Están dentro del programa que tienes en descarga directa. Se encuentran justo debajo de la cabecera del código. Saludos

Responder

Unknown 21 de noviembre de 2016, 15:37


hola como esta, he seguido el codigo pero necesito calibrar una celda de carga de 1kg como hago?
Responder

L. Catherine Benavides 8 de diciembre de 2016, 14:49


Hola tengo una duda, este codigo puede ser utilizado con arduino ,mega??
Responder

Heriberto Fernando Vargas Losada 27 de diciembre de 2016, 17:11


Yo tengo ese mismo codigo con una celda de 200kg y la calibro y funciona bien. La pregunta es la siguiente. ¿Porque luego de un tiempo
encendida la celda ya empieza a pesar con un faltante (patron de 20 kg y pesa 19.7 o 19.8) o si la enciendo otro dia la calibracion realizada
dias anteriores no sirve. Que debo hcer para que la calibracion sirva de forma definitiva?
Responder

Unknown 26 de enero de 2017, 8:54


Sólo quiero ver esquema de modo gráfico ya que así por medio de esas líneas no puedo armar este proyecto, osea si teienes el esquema en el
programa Fritzing u algo así estimado !! le agradeceré de antemano...
Responder

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


yasha107 (tutoriales) 1 de febrero de 2017, 3:55
Me puedes pasar el código de cómo hago que se ejecute un código cuando llegue a un peso determinado, en este caso 100g y que ese valor
se pueda modificar
Responder

Ronaldo Fernay Hernandez Gomez 27 de abril de 2017, 15:26


hola amigo me podrias pasar tus librerias ??
Responder

Respuestas

Mariano del Campo García 28 de abril de 2017, 7:13


http://miarduinounotieneunblog.blogspot.com.es/2015/12/anadiendo-las-librerias.html

Responder

Jessica Baez Sanchez 2 de mayo de 2017, 20:13


hola me podrías explicar como conecto la lcd
Responder

Mariano del Campo García 3 de mayo de 2017, 4:07


Tu LCD 1602 tiene que tener soldado un modulo conversor I2C a sus pines de datos y control. Se hace de manera directa puesto que ya
vienen preparados para tal función. Una vez añadido el I2C simplemente tienes que unir los pines SDA y SCL del módulo a los pines I2C de
Arduino y alimentar correctamente el LCD. Te recomiendo que visites el POST donde lo explico con más detalle (Diciembre 2015) debtro del
BLOG.
Responder

Jessica Baez Sanchez 10 de mayo de 2017, 9:24

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Hola implemente tu programación pero me sale el siguiente error y no se que hacer 'Clase Q2HX711' no tiene ningún miembro llamado
'set_scale'
Responder

Mariano del Campo García 11 de mayo de 2017, 7:45


Carga las librerías del siguiente enlace: http://miarduinounotieneunblog.blogspot.com.es/2015/12/anadiendo-las-librerias.html
Responder

Евгений мой 16 de mayo de 2017, 23:49


Hello.as I can not find you the LiquidCrystal_I2C library.h,without it is not working sketch.please give a direct link.
Responder

Respuestas

Mariano del Campo García 17 de mayo de 2017, 4:23


http://miarduinounotieneunblog.blogspot.com.es/2015/12/anadiendo-las-librerias.html?m=1

Responder

Jessica Baez Sanchez 17 de mayo de 2017, 7:31


ya cargue las librerías y me aparece el mismo error me podrías ayudar es urgente exit status 1
'class Q2HX711' has no member named 'scale'
Responder

Евгений мой 18 de mayo de 2017, 10:51


I do not understand how where to download the library at this link
Responder

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Евгений мой 18 de mayo de 2017, 11:31
yo como no entiendo de donde descargar la biblioteca en este enlace
Responder

HECTOR ANCIZAR BENAVIDES VALLEJO 29 de mayo de 2017, 20:07


Hola, me pueden ayudar estoy utilizando una celda de 500kg con el HX711, y me esta dando variaciones de 10 hasta 50 gramos con respecto
al patrón de 20kg que utilizo para calibrar la bascula.

Gracias.
Responder

Mariano del Campo García 30 de mayo de 2017, 3:33


Si es de 500kg es recomendable calibrarla con un peso patron lo más cercano a 500kg y no de 20kg...
Responder

HECTOR ANCIZAR BENAVIDES VALLEJO 30 de mayo de 2017, 7:23


Buen día, Mariano gracias por responder, tiene lógica tu comentario... pero ahora tengo otro inconveniente es el siguiente... cuando la bascula
no tiene ningún peso encima de la celda debería quedar en cero, lo hace por unos segundos luego en pieza a variar hasta quedar en -16
gramos, me puedes guiar mil gracias.
Responder

Respuestas

Mariano del Campo García 31 de mayo de 2017, 3:46


Eso lo puedes solucionar con un if. If (peso<0) peso =0; para que nunca pueda tener una tara negativa.

carlos mendoza 31 de julio de 2017, 20:16


Buenas, me podrias enviar a este correo mendozaoliva22@hotmail.com el codigo donde incluya la parte de que la tara no sea
negativa. Agradecería tu Respuesta.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Responder

Евгений мой 30 de mayo de 2017, 23:24


ayuda por favor,no la puedo encontrar por su referencia a la biblioteca.puede que me envía al correo electrónico evgeniy1966@yandex.ru
Responder

Respuestas

Mariano del Campo García 31 de mayo de 2017, 3:47


http://miarduinounotieneunblog.blogspot.com.es/2015/12/anadiendo-las-librerias.html?m=1

Responder

KARITAS :D 21 de junio de 2017, 11:56


disculpa tengo una celda de carga de 50kg pero solo tiene 3 cables (negro.rojo.blanco) como lo conecto con el hx711 y cual seria el programa?
me puedes ayudar porfabor
Responder

Respuestas

Mariano del Campo García 21 de junio de 2017, 14:44


Envíame la referencia o modelo de la celda de carga que estás utilizando para intentar ayudarte

KARITAS :D 22 de junio de 2017, 14:04


http://www.usinainfo.com.br/sensores-para-arduino/sensor-de-peso-celula-de-peso-50kg-para-arduino-2573.html

en ese enlace esta la celda de carga que tengo


espero y me puedas ayudar llevo 2 semanas con el proyecto y mi profesor se esta enojando

Responder
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
KARITAS :D 27 de junio de 2017, 10:25
pudiste resolverlo :D :o
Responder

Respuestas

Mariano del Campo García 27 de junio de 2017, 13:12


Te envíe el proyecto al correo

KARITAS :D 11 de septiembre de 2017, 18:38


no lo tengo ni en spam
me lo podrias volver a enviar porfavor

Mariano del Campo García 12 de septiembre de 2017, 9:11


Ya no lo tengo yo tampoco. Te lo envíe hace ya meses

Responder

Unknown 28 de agosto de 2017, 10:52


Hola ¿Qué voltajes de entrada analógica maneja el HX711? Porque estoy con un proyecto que utiliza un sensor óptico que entrega de 0 a 5V.
Responder

Respuestas

Caminante 14 de noviembre de 2017, 13:50


No estoy muy seguro pero las celdas de carga (sensores de peso) normalmente se alimentan con 5v en excitación y regresan 2.3v
por las señales.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Responder

Unknown 4 de septiembre de 2017, 23:06


Hola amigo una consulta porque me sale error diciendo que esta variable no esta definida "POSITIVE"

// Creación del objeto para el LCD con comunicación I2C


LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
Responder

Respuestas

Mariano del Campo García 7 de septiembre de 2017, 6:00


Instala mis librerías. http://miarduinounotieneunblog.blogspot.com.es/2015/12/anadiendo-las-librerias.html

Responder

Oscar Tiburcio Martinez 6 de septiembre de 2017, 12:23


disculpa tengo un problema no me muestra nada en el lcd ni el monitor serial cuando ejecuto el programa final
Responder

Respuestas

Mariano del Campo García 7 de septiembre de 2017, 6:01


Si solo me dices eso no se cual puede ser tu problema. Revisa las conexiones y lo mostrado en el POST. Saludos

Oscar Tiburcio Martinez 7 de septiembre de 2017, 11:03


solo se puede hacer con el arduino uno?

Responder

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Kennet Guerrero 17 de octubre de 2017, 15:04
hola, tengo una cosulta estoy haciendo una bascula con capacidad de 80kg pero, se pueden utilizar 4 galgas de 20kg?? al igual que se pueden
unir para hacer la sumatoria??
Responder

Respuestas

Mariano del Campo García 19 de octubre de 2017, 3:11


Claro que se pueden unir

Responder

Antonio Pacheco 1 de noviembre de 2017, 15:52


Buenas tardes, si deseo utilizar una celda de 200kg, seria el mismo programa? y otra duda se podria implementar un push button para el
cambio de kg a libras? Gracias
Responder

Respuestas

Caminante 14 de noviembre de 2017, 13:48


No soy el del Blog, pero sí se puede utilizar una celda de 200kg sólo que tu resolución debe cambiar ya que si intentas pesar
gramos con esta será muy inestable.

También podrías agregar ese botón que mencionas con una simple operación sabiendo que 1kg equivale a 2.2 libras. Saludos

Responder

Caminante 7 de noviembre de 2017, 17:46


Yo tengo un programa similar, sólo que no logro como hacer para hacer el peso más estable. ¿Alguna idea?

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Responder

Introduce tu comentario...

Comentar como: Seleccionar perfil...

Publicar Vista previa

‹ Página principal ›
Ver versión web

Con la tecnología de Blogger.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf

Vous aimerez peut-être aussi