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 existen diferentes transmisores que pueden convertir esta señal analógica en digital. En este ejemplo se utiliza el HX711 que se utiliza mucho en las aplicaciones industriales. HX711obtiene y convierte la señal analógica de la célula de carga a digital con tu convertidor interno A/D de 24 bits.
Requisitos
Ethernet or 20 I/Os PLC: | Ethernet PLC >>> | 20IOs PLC >>> |
Transmisor HX711 y su librería : | Transmissor HX711 >>> | HX711.h Librería Arduino >>> |
5kg Célula de carga: | Célula de carga >>> |
Asignación de pines
¿Cómo se conectan los diferentes dispositivos?
Las conexiones entre la célula de carga y 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 el 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 utilizar el PIN3 para Ardbox and PIN2 o PIN3 por M-Duino !!!
Una vez que están todos los cables conectados podemos proceder con el software para obtener los valores de los derechos del HX711.
Una vez instalada la librería HX711, podemos proceder a calibrar las balanzas. Básicamente, encontrar el valor de la balanza, es decir, encontrar el factor de conversión para convertir el valor leído en unidad de peso.
Después, tenemos que encontrar un objeto con un peso conocido. Es mejor si el peso conocido está más cerca del 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 subir 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 de serie veremos los valores de las lecturas de peso, este valor es sin escala. Esto significa que los valores deben ser números grandes.
Con una media 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); }