Вы находитесь на странице: 1из 10

MEMORIA DE CALCULO DE SISTEMA DE CONTROL DE PESAJE

1.- General

La presente sección de la memoria de cálculo describe los criterios, métodos, materiales y


aparatos empleados en la programación del control del pesaje del empaquetado del proyecto
llamado CLASIFICADORA DE LIMONES POR TAMAÑO construido con la finalidad de aplicar los
conceptos y métodos de control instruidos en la materia CONTROLES ELECTRICOS.

2.- MATERIALES UTILIZADOS

2.1. Sensores

Para el sensado y medición del peso de los limones se emplearon celdas de carga con un rango de
0 a 10 kg. Las cuales son unas estructuras diseñadas para soportar cargas de compresión, tenssion
y flexion, en cuyo interior se encuentran uno o varios sensores de deformación llamados Strain
Gauges que detectan los valores de deformación

Imagen xxx. Conexión de celda de carga con arduino mediante transmisor hx711

2.2 Transistor hx711

2.3 Arduino

2.4 Relevadores

Son relevadores 5vcc para la comunicación de arduino a plc

2.5 PLC SIEMENS SIMATICS S7 1212 DC/DC/DC


3. Programacion empleada
3.1 Sensado con arduino
échate un verbo de para que es este programa
Programa utilizado para la calibración de la celda de carga; en este sketch se conocen los
parámetros con los cuales podemos calibrar la celda de carga. Primeramente una vez cargado el
sketch, se procede al monitor en serie del programa Arduino. Y procederemos a poner sobre la
celda un objeto del cual conocemos su peso. Ya teniendo esto, el monitor nos mostrara un valor el
cual tenemos que dividir entre el peso conocido del objeto utilizado y se obtiene un valor el cual
es llamada ESCALA.

#include "HX711.h" // Librería para utilizar el transmisor de celda de carga HX711

#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);

void setup()

Serial.begin(9600); // Comienzo de la comunicación con el monitor serie

Serial.print("Lectura del valor del ADC:t");

Serial.println(balanza.read()); // Comienzo de la lectura de la balanza digital

Serial.println("No ponga ningun objeto sobre la balanza");

Serial.println("Destarando...");//"Balanza_digital_final.ino"

balanza.set_scale(); // La escala por defecto es 1

balanza.tare(10); // 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); // Se obtiene el valor necesario para calcular la ESCALA

delay(100);

Serial.print("valor de peso: a");

delay(10);

El siguiente formato muestra los comandos y la estructura empleada en arduino para poder sensar
las cajas de limones, es necesaria la librería del transmisor hx711. Ya una vez comprobado el
programa y conectado todos los sensores, ingresamos la escala de cada sensor (que debido a
distintas variables podría variar entre ellas). Tambien se agrega en la sección loop, una condición
en la cual una vez que el programa detecta en el sensor un determinado peso, una salida digital se
activará la cual será el vaciado de las cajas.

// Librería para utilizar el transmisor de celda de carga HX711

#include "HX711.h"

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

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

#define DT2 A3 // Pin analógico A3 para el pin DT2 del transmisor de celda de carga HX711

#define SCK2 A2 // Pin analógico A2 para el pin SCK2 del transmisor de celda de carga HX711

#define DT3 A5 // Pin analógico A5 para el pin DT3 del transmisor de celda de carga HX711

#define SCK3 A4 // Pin analógico A4 para el pin SCK3 del transmisor de celda de carga HX711

int peso1=0; //Declaras variable para guardar datos

int peso2=0; //Declaras variable para guardar datos

int peso3=0; //Declaras variable para guardar datos


// Creación del objeto para el transmisor de celda de carga HX711

HX711 balanza1(DT1, SCK1);

HX711 balanza2(DT2, SCK2);

HX711 balanza3(DT3, SCK3);

void setup()

pinMode(2,OUTPUT); //Declaras pin digitl 2 como salida de señal

pinMode(3,OUTPUT); //Declaras pin digitl 3 como salida de señal

pinMode(4,OUTPUT); //Declaras pin digitl 4 como salida de señal

Serial.begin(9600); // Comienzo de la comunicación con el monitor serie

Serial.print("Lectura del valor del ADC:t");

Serial.println(balanza1.read()); // Comienzo de la lectura de la balanza digital

Serial.println(balanza2.read()); // Comienzo de la lectura de la balanza digital

Serial.println(balanza3.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(130300); // Establecemos la ESCALA calculada anteriormente

balanza1.tare(10); // El peso actual es considerado Tara.

balanza2.set_scale(146666); // Establecemos la ESCALA calculada anteriormente

balanza2.tare(10); // El peso actual es considerado Tara.

balanza3.set_scale(208500); // Establecemos la ESCALA calculada anteriormente

balanza3.tare(10); // El peso actual es considerado Tara.

Serial.print(0,0);

Serial.print("BALANZA DIGITAL");

Serial.print(0,1);
Serial.print("Listo para pesar");

delay(500); // Esperamos .5 segundos para comenzar a pesar

void loop()

Serial.println("BALANZA1 DIGITAL");

Serial.println(" Peso(Kg): ");

Serial.println(balanza1.get_units(10)); // Se obtiene el valor real del peso en Kg del elemento}

if (balanza1.get_units(10)>0.20){ //Comparacion medida > 2Kg

digitalWrite(2,HIGH); //Activar el pin 2 para mandar señal de 5v a 2mA

Serial.println("SALIDA ACTIVADA"); //Escribes en puerto que la salida este activada

else{ //si no se cumple la condicion, mantener salida digital 2 en bajo (0V)

digitalWrite(2,LOW); //Declarar salida digital en bajo

Serial.println("SALIDA DESACTIVADA");

Serial.println("BALANZA2 DIGITAL");

Serial.println(" Peso(Kg): ");

Serial.println(balanza2.get_units(10)); // Se obtiene el valor real del peso en Kg del elemento}

if (balanza2.get_units(10)>0.20){ //Comparacion medida > 2Kg

digitalWrite(3,HIGH); //Activar el pin 2 para mandar señal de 5v a 2mA

Serial.println("SALIDA ACTIVADA"); //Escribes en puerto que la salida este activada

else{ //si no se cumple la condicion, mantener salida digital 2 en bajo (0V)

digitalWrite(3,LOW); //Declarar salida digital en bajo

Serial.println("SALIDA DESACTIVADA");

Serial.println("BALANZA3 DIGITAL");
Serial.println(" Peso(Kg): ");

Serial.println(balanza3.get_units(10)); // Se obtiene el valor real del peso en Kg del elemento}

if (balanza3.get_units(10)>0.2){ //Comparacion medida > 2Kg

digitalWrite(4,HIGH); //Activar el pin 2 para mandar señal de 5v a 2mA

Serial.println("SALIDA ACTIVADA"); //Escribes en puerto que la salida este activada

else{ //si no se cumple la condicion, mantener salida digital 2 en bajo (0V)

digitalWrite(4,LOW); //Declarar salida digital en bajo

Serial.println("SALIDA DESACTIVADA");

3.2 Comunicación arduino con PLC

Para la comunicación de las salidas digitales de arduino (5Vcc); siendo esta la señal de que en el
sensor ya hay el peso deseado; hacia las entradas de PLC SIEMENS SIMATICS 1212 DC/DC/DC de
24Vcc, se utilizan relevadores de 5Vcc-24Vcc
3.3 PLC SIEMENS

El siguiente programa obtiene la señal de entrada del sensor mediante el relevador, haciendo
posible así la activación de la electroválvula. Un temporizador para poder cortar la alimentación de
la electroválvula haciendo al pistón regresar a su punto de inicio.
4. Resultados obtenido

s
ENLACES EXTERNOS

https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/TAL220M4M5Update.pdf

https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/hx711_english.pdf