Cinta Transportadora Arduino
Cinta Transportadora Arduino
Cinta Transportadora Arduino
Introducción
En un mercado competitivo es necesario ofrecer productos homogéneos, de calidad y sin contaminantes a los
clientes. Los sistemas de cinta transportadora con detección de metales ofrecen soluciones de inspección flexibles
que se adaptan a una amplia gama de aplicaciones alimentarias y no alimentarias para todo tipo de cargas de
trabajo, ya sean elevadas o bajas.
Las bobinas de detección de metales rectangulares o cuadradas pueden integrarse con sistemas de cinta
transportadora estándares o a medida con el fin de automatizar por completo los procesos de inspección de
productos.
Los sistemas se pueden diseñar y componer de modo que se adapten a los requisitos específicos de los procesos;
estos pueden variar desde sencillos sistemas de parada en caso de detección hasta sistemas completamente
automáticos de detección y rechazo, que usan una amplia gama de dispositivos de eliminación.
Los detectores de metales con cinta transportadora ofrecen soluciones flexibles que pueden funcionar en casi todos
los entornos de trabajo. Así que, independientemente de si el producto es húmedo, seco, refrigerado, congelado,
suelto o envasado, los flexibles sistemas de cinta transportadora con detección de metales podrán ofrecer una
respuesta a los retos de inspección alimentaria.
Aunque la instalación de un sistema de detección de metales puede reducir el riesgo, las posibilidades de que un
contaminante metálico llegue al consumidor final siguen siendo demasiadas en algunos casos. Las investigaciones
apuntan a fallos de procedimientos y sistemas más que a fallos relativos al detector de metales como la causa
principal; sin embargo, la mejora de la diligencia debida aumenta el nivel de control y gestión del sistema de
inspección, lo que garantiza que el circuito proporcione una detección de metales de alto rendimiento y un mayor
nivel de funcionalidad a prueba de fallos.
Los sistemas de detección de metales con cinta transportadora se pueden configurar con una gama de sistemas de
rechazo dinámicos totalmente automatizados. En el caso de los productos envasados, los sistemas de rechazo
incluyen un sistema de sincronización por fotodetector para garantizar que siempre se rechazará el paquete
adecuado. Estos sistemas también se pueden complementar con una amplia variedad de dispositivos de advertencia,
contenedores de recogida de productos de rechazo e innovadores sistemas a prueba de fallos opcionales para
respaldar la conformidad.
Arduino uno R3
Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de
desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los
microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste
que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que
implementa el lenguaje de programación Processing/Wiring y el cargador de arranque que es ejecutado en la placa.
Código de Arduino
#include <FreqCounter.h>
Serial.begin(9600);
pinMode(FotoTrans, INPUT_PULLUP);
pinMode(LedAl, OUTPUT);
pinMode(error1, OUTPUT);
pinMode(error2, OUTPUT);
pinMode(LedFe, OUTPUT);
pinMode(Motor, OUTPUT);
FreqCounter::f_comp = 81;
FreqCounter::start(100);
while (FreqCounter::f_ready == 0)
frec = FreqCounter::f_freq;
Serial.print("Frecuencia: ");
Serial.println(frec);
analogWrite(Motor, velocidad);
}
//**************************************************************//
void loop() {
if(velocidad != 0) {
digitalWrite(error1, LOW);
digitalWrite(error2, LOW);
while(digitalRead(FotoTrans)) {
FreqCounter::f_comp=81;
FreqCounter::start(100);
while (FreqCounter::f_ready == 0)
frec=FreqCounter::f_freq;
digitalWrite(LedFe, LOW);
digitalWrite(LedAl, LOW);
digitalWrite(error1, LOW);
digitalWrite(error2, LOW);
analogWrite(Motor, 55);
flag++;
if(velocidad == 55 || velocidad == 90) {
if(flag > 24) {
analogWrite(Motor, 0);
velocidad = 0;
flag = 0;
digitalWrite(LedFe, LOW);
digitalWrite(LedAl, LOW);
digitalWrite(error1, HIGH);
digitalWrite(error2, HIGH);
frec = 0;
break;
}
}
else if(velocidad == 110 || velocidad == 130 || velocidad == 160) {
if(flag > 15) {
analogWrite(Motor, 0);
velocidad = 0;
flag = 0;
digitalWrite(LedFe, LOW);
digitalWrite(LedAl, LOW);
digitalWrite(error1, HIGH);
digitalWrite(error2, HIGH);
frec = 0;
break;
}
}
else {
if(flag > 10) {
analogWrite(Motor, 0);
velocidad = 0;
flag = 0;
digitalWrite(LedFe, LOW);
digitalWrite(LedAl, LOW);
digitalWrite(error1, HIGH);
digitalWrite(error2, HIGH);
frec = 0;
break;
}
}
flag++;
habilitar = 1;
}
}
if(habilitar) {
analogWrite(Motor, velocidad);
Serial.print("\n");
Serial.print("Frecuencia: ");
Serial.println(frec);
flag = 0;
if(frec == 0) {
digitalWrite(LedFe, LOW);
digitalWrite(LedAl, LOW);
Serial.print("\n");
Serial.println("\tERROR!!!");
}
else if(frec >= 119200 || frec <= 116500) {
digitalWrite(LedFe, HIGH);
digitalWrite(LedAl, LOW);
digitalWrite(error1, LOW);
digitalWrite(error2, LOW);
cntFe++;
Serial.print("\n");
Serial.print("Hierro: ");
Serial.println(cntFe);
}
else if(frec < 119200) {
digitalWrite(LedFe, LOW);
digitalWrite(LedAl, HIGH);
digitalWrite(error1, LOW);
digitalWrite(error2, LOW);
cntAl++;
Serial.print("\n");
Serial.print("Aluminio: ");
Serial.println(cntAl);
}
habilitar = 0;
}
if(Serial.available() > 0) {
char comando = Serial.read();
if(comando == '0') {
analogWrite(Motor, 0);
velocidad = 0;
digitalWrite(LedFe, LOW);
digitalWrite(LedAl, LOW);
}
else if(comando == '1') {
analogWrite(Motor, 55);
velocidad = 55;
}
else if(comando == '2') {
analogWrite(Motor, 90);
velocidad = 90;
}
else if(comando == '3') {
analogWrite(Motor, 110);
velocidad = 110;
}
else if(comando == '4') {
analogWrite(Motor, 130);
velocidad = 130;
}
else if(comando == '5') {
analogWrite(Motor, 160);
velocidad = 160;
}
else if(comando == '6') {
analogWrite(Motor, 180);
velocidad = 180;
}
else if(comando == '7') {
analogWrite(Motor, 200);
velocidad = 200;
}
else if(comando == '8') {
analogWrite(Motor, 220);
velocidad = 230;
}
else if(comando == '9') {
analogWrite(Motor, 255);
velocidad = 255;
}
else if(comando == 'r' || comando == 'R') {
cntFe = 0;
cntAl = 0;
Serial.print("\n");
Serial.print("\tREINICIAR");
Serial.print("\n");
Serial.print("\n");
Serial.print("Aluminio: ");
Serial.print(cntAl);
Serial.print("\tHierro: ");
Serial.println(cntFe);
}
else if(comando == 'C' || comando == 'c') {
Serial.print("\n");
Serial.print("\tCUENTA");
Serial.print("\n");
Serial.print("\n");
Serial.print("Aluminio: ");
Serial.print(cntAl);
Serial.print("\tHierro: ");
Serial.println(cntFe);
}
}
}
//************************************************************//
Resetea la cuenta