Busca en nuestro Blog. Encontrarás múltiples aplicaciones, soluciones, ejemplos de código. Navega utilizando la nube de etiquetas o busca utilizando criterios específicos

How to connect and configure a load cell using HX711 transmitter with Arduino based PLCs

Introducción

En este post se muestra cómo utilizar un transductor de células de carga utilizando nuestros equipos. La célula de carga es un transductor que genera una señal eléctrica directamente proporcional a la fuerza medida.

En el mercado hay diferentes transmisores que pueden convertir esta señal analógica a digital. En este ejemplo se utiliza el HX711 que es muy utilizado en aplicaciones industriales.  HX711 obtiene y convierte la señal analógica de la célula de carga a digital con su convertidor interno A / D de 24 bits.

Requisitos

Ethernet or 20 I/Os PLC:  
Ethernet PLC20IOs PLC
HX711 Transmitter and its library :
HX711 TransmitterHX711.h Arduino Library
5kg Load cell: 
Célula de carga 

Asignación de pines 

¿Cómo conectar los diferentes dispositivos?

Las conexiones entre la célula de carga HX711 se muestran a continuación:

Célula de carga 

HX711

Cable Rojo

E+

Cable  Negro 

E-

Cable  Blanco

A+

Cable  Verde

A-

 

Y las conexiones entre HX711 y uno de nuestros PLC se muestran a continuación: 

HX711

Industrial Shields PLC

GND

GND

DT

PIN 2

SCK

PIN 3

VCC

5V

 

IMPORTANTE: La frecuencia del reloj es bastante alta, por lo que debemos usar PIN3 para Ardbox y PIN2 o PIN3 para  M-Duino !!!

Una vez que hay todos los cables conectados podemos proceder con el software para obtener los valores de derechos del HX711.

Una vez instalada la biblioteca HX711, podemos proceder a calibrar las básculas de pesaje. Básicamente para encontrar el valor de la escala, es decir, encontrar el factor de conversión para convertir el valor de lectura en unidad de peso.

Después de eso, necesitamos encontrar un objeto con peso conocido. Es mejor si el peso conocido está más cerca con el valor máximo del rango de trabajo de nuestra célula de carga.En este ejemplo se ha utilizado un peso de 4 kg porque el valor máximo del rango de trabajo de nuestra célula de carga es de 5 kg. 

El siguiente paso es cargar el siguiente sketch a nuestro PLC:

#include "HX711.h"

#define DOUT  2

#define CLK  3

HX711 weighingScales(DOUT, CLK);

void setup() {

  Serial.begin(9600);

  while(!Serial); // This is not necessary if you have an M-Duino

  Serial.print("Read ADC value:  ");

  Serial.println(weighingScales.read());

  Serial.println("Don't put any weight to the weighing scale");

  weighingScales.set_scale(); //The default scale is 1

  weighingScales.tare(20);  //The actual weight is Tare.

  Serial.println("Put the known weight:");

}

void loop() {

  Serial.print("Read Value:  ");

  Serial.println(weighingScales.get_value(10),0);

  delay(500);

}

 

El programa tiene que ejecutarse sin el peso conocido, porque cuando el programa comienza a calcular la tare. Después de abrir el monitor serie y esperar a reiniciar la tare, podemos poner el peso conocido.

Después de poner el peso conocido, en el monitor serie veremos los valores de lecturas de peso, este valor son sin escala.Esto significa que los valores deben ser números grandes.

Con un promedio de estos valores podemos calcular el valor de la escala, siguiendo esa fórmula:


Una vez calculado el valor de escala, tenemos todos los requisitos para configurar la celda de carga. Sólo tenemos que escribir el valor de escala en la función SET_scale() de HX711. A continuación se muestra un ejemplo de cómo puede buscar un programa final para una célula de carga:

#include "HX711.h"

#define DOUT  2

#define CLK  3

HX711 weighingScales(DOUT, CLK);

void setup() {

  Serial.begin(9600);

  while(!Serial); // This is not necessary if you have an M-Duino


  Serial.println("Calculating tare...");

  Serial.println("...");

  weighingScales.set_scale(433456.25); // Set up our scale

  weighingScales.tare(20);  //The actual weight is Tare.

  Serial.println("Ready to weigh"); 

}

void loop() {

  Serial.print("Weight: ");

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

  Serial.println(" kg");

  delay(500);

}

Video

 
 

¿Quieres más información?

Con la tecnología Open Source, puedes ejecutar tus propias instalaciones.

Rellena el formulario y contactaremos contigo lo más pronto posible.

Enviar  Por favor, completa el formulario correctamente.