Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin
Cintas transportadoras con detector de metal
En un mercado competitivo es necesario ofrecer productos homogneos, de calidad y sin contaminantes a los
clientes. Los sistemas de cinta transportadora con deteccin de metales ofrecen soluciones de inspeccin 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 deteccin de metales rectangulares o cuadradas pueden integrarse con sistemas de cinta
transportadora estndares o a medida con el fin de automatizar por completo los procesos de inspeccin de
productos.
Los sistemas se pueden disear y componer de modo que se adapten a los requisitos especficos de los procesos;
estos pueden variar desde sencillos sistemas de parada en caso de deteccin hasta sistemas completamente
automticos de deteccin y rechazo, que usan una amplia gama de dispositivos de eliminacin.
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 hmedo, seco, refrigerado, congelado,
suelto o envasado, los flexibles sistemas de cinta transportadora con deteccin de metales podrn ofrecer una
respuesta a los retos de inspeccin alimentaria.
Aunque la instalacin de un sistema de deteccin de metales puede reducir el riesgo, las posibilidades de que un
contaminante metlico llegue al consumidor final siguen siendo demasiadas en algunos casos. Las investigaciones
apuntan a fallos de procedimientos y sistemas ms 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 gestin del sistema de
inspeccin, lo que garantiza que el circuito proporcione una deteccin de metales de alto rendimiento y un mayor
nivel de funcionalidad a prueba de fallos.
Sin lugar a dudas la comunicacin va bluetooth ha logrado posicionarse como una de las favoritas para los usuarios
de dispositivos mviles, sustituyendo a la anterior comunicacin Infrarroja (IR), y es que permite enlazar a los
dispositivos de una forma inalmbrica y sin necesidad de estar relativamente cerca el uno del otro. Por esta razn es
que distintas compaas se han empeado en facilitar cada vez ms el acercar este tipo de tecnologa para incluirla
en nuestra vida diaria, tanto que ahora es posible encontrar mdulos bluetooth de bajo coste mismos que son
totalmente configurables y de fcil implantacin en nuestros proyectos de electrnica.
Arduino uno R3
Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de
desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares.
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los
microcontroladores ms usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste
que permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que
implementa el lenguaje de programacin Processing/Wiring y el cargador de arranque que es ejecutado en la placa.
Cdigo de Arduino
#include <FreqCounter.h>
unsigned long frec = 0UL;
int LedAl = 2;
int LedFe = 3;
int FotoTrans = 4;
int Motor = 6;
int cntAl = 0;
int error1 = 8;
int error2 = 9;
int cntFe = 0;
int habilitar = 0;
int velocidad = 0;
int flag = 0;
//**************************************************************//
void setup() {
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;
}
Circuito Oscilador
Resetea la cuenta